From e909bde2c5692b5bef3957405ef5fffc44638cf1 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Wed, 5 May 2021 11:33:31 -0700 Subject: [PATCH] examples/ssh_client: Check SIGWINCH is defined before using it since not all POSIX platform support SIGWINCH signal and remove the global variable chan Signed-off-by: Xiang Xiao Reviewed-by: Jakub Jelen Change-Id: I70217020c84b056270ed680008a1871383b5fc7b --- examples/ssh_client.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/examples/ssh_client.c b/examples/ssh_client.c index 7304da85..782287fb 100644 --- a/examples/ssh_client.c +++ b/examples/ssh_client.c @@ -174,22 +174,25 @@ static void do_exit(int i) exit(0); } -static ssh_channel chan; static int signal_delayed = 0; +#ifdef SIGWINCH static void sigwindowchanged(int i) { (void) i; signal_delayed = 1; } +#endif static void setsignal(void) { +#ifdef SIGWINCH signal(SIGWINCH, sigwindowchanged); +#endif signal_delayed = 0; } -static void sizechanged(void) +static void sizechanged(ssh_channel chan) { struct winsize win = { .ws_row = 0, @@ -227,7 +230,7 @@ static void select_loop(ssh_session session,ssh_channel channel) while (ssh_channel_is_open(channel)) { if (signal_delayed) { - sizechanged(); + sizechanged(channel); } rc = ssh_event_dopoll(event, 60000); if (rc == SSH_ERROR) { @@ -267,10 +270,9 @@ static void shell(ssh_session session) ssh_channel_free(channel); return; } - chan = channel; if (interactive) { ssh_channel_request_pty(channel); - sizechanged(); + sizechanged(channel); } if (ssh_channel_request_shell(channel)) {