From 06abb1098a90a344d2aabfb486f56b8c5aada342 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Fri, 12 Oct 2018 19:28:39 +0200 Subject: ssh: fix spinning due to sticky intr flag on connection timeout --- sys/src/cmd/ssh.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) (limited to 'sys/src/cmd/ssh.c') diff --git a/sys/src/cmd/ssh.c b/sys/src/cmd/ssh.c index 51514aa80..14e8ef2e5 100644 --- a/sys/src/cmd/ssh.c +++ b/sys/src/cmd/ssh.c @@ -110,8 +110,6 @@ wasintr(void) char err[ERRMAX]; int r; - if(intr) - return 1; memset(err, 0, sizeof(err)); errstr(err, sizeof(err)); r = strcmp(err, "interrupted") == 0; @@ -1331,25 +1329,25 @@ Next1: switch(recvpkt()){ qlock(&sl); if(send.eof) break; - if(n < 0 && wasintr()){ + if(n < 0 && wasintr()) + intr = 1; + if(intr){ if(!raw) break; - if(intr){ - getdim(); - sendpkt("busbuuuu", MSG_CHANNEL_REQUEST, - send.chan, - "window-change", 13, - 0, - tty.cols, - tty.lines, - tty.xpixels, - tty.ypixels); - sendpkt("busbs", MSG_CHANNEL_REQUEST, - send.chan, - "signal", 6, - 0, - "INT", 3); - intr = 0; - } + getdim(); + sendpkt("busbuuuu", MSG_CHANNEL_REQUEST, + send.chan, + "window-change", 13, + 0, + tty.cols, + tty.lines, + tty.xpixels, + tty.ypixels); + sendpkt("busbs", MSG_CHANNEL_REQUEST, + send.chan, + "signal", 6, + 0, + "INT", 3); + intr = 0; continue; } if(n <= 0) -- cgit v1.2.3