15 lines
596 B
Diff
15 lines
596 B
Diff
|
diff -up openssh-5.6p1/channels.c.exit-deadlock openssh-5.6p1/channels.c
|
||
|
--- openssh-5.6p1/channels.c.exit-deadlock 2010-08-05 15:09:48.000000000 +0200
|
||
|
+++ openssh-5.6p1/channels.c 2010-08-23 12:41:43.000000000 +0200
|
||
|
@@ -1647,6 +1647,10 @@ channel_handle_wfd(Channel *c, fd_set *r
|
||
|
u_int dlen, olen = 0;
|
||
|
int len;
|
||
|
|
||
|
+ if(c->wfd != -1 && buffer_len(&c->output) > 0 && c->ostate == CHAN_OUTPUT_WAIT_DRAIN) {
|
||
|
+ debug("channel %d: forcing write", c->self);
|
||
|
+ FD_SET(c->wfd, writeset);
|
||
|
+ }
|
||
|
/* Send buffered output data to the socket. */
|
||
|
if (c->wfd != -1 &&
|
||
|
FD_ISSET(c->wfd, writeset) &&
|