version 1.94, 2001/02/28 12:55:07 |
version 1.95, 2001/02/28 21:27:48 |
|
|
int |
int |
channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset) |
channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset) |
{ |
{ |
|
struct termios tio; |
int len; |
int len; |
|
|
/* Send buffered output data to the socket. */ |
/* Send buffered output data to the socket. */ |
|
|
return -1; |
return -1; |
} |
} |
if (compat20 && c->isatty) { |
if (compat20 && c->isatty) { |
struct termios tio; |
|
if (tcgetattr(c->wfd, &tio) == 0 && |
if (tcgetattr(c->wfd, &tio) == 0 && |
!(tio.c_lflag & ECHO) && (tio.c_lflag & ICANON)) { |
!(tio.c_lflag & ECHO) && (tio.c_lflag & ICANON)) { |
/* |
/* |
* Simulate echo to reduce the impact of |
* Simulate echo to reduce the impact of |
* traffic analysis. |
* traffic analysis. We need too match the |
|
* size of a SSH2_MSG_CHANNEL_DATA message |
|
* (4 byte channel id + data) |
*/ |
*/ |
packet_start(SSH2_MSG_IGNORE); |
packet_send_ignore(4 + len); |
memset(buffer_ptr(&c->output), 0, len); |
|
packet_put_string(buffer_ptr(&c->output), len); |
|
packet_send(); |
packet_send(); |
} |
} |
} |
} |