version 1.365, 2017/05/31 08:58:52 |
version 1.366, 2017/08/30 03:59:08 |
|
|
} |
} |
|
|
static void |
static void |
channel_handler(chan_fn *ftab[], fd_set *readset, fd_set *writeset, |
channel_handler(struct ssh *ssh, chan_fn *ftab[], |
time_t *unpause_secs) |
fd_set *readset, fd_set *writeset, time_t *unpause_secs) |
{ |
{ |
static int did_init = 0; |
static int did_init = 0; |
u_int i, oalloc; |
u_int i, oalloc; |
|
|
* select bitmasks. |
* select bitmasks. |
*/ |
*/ |
void |
void |
channel_prepare_select(fd_set **readsetp, fd_set **writesetp, int *maxfdp, |
channel_prepare_select(struct ssh *ssh, fd_set **readsetp, fd_set **writesetp, |
u_int *nallocp, time_t *minwait_secs, int rekeying) |
int *maxfdp, u_int *nallocp, time_t *minwait_secs) |
{ |
{ |
u_int n, sz, nfdset; |
u_int n, sz, nfdset; |
|
|
|
|
memset(*readsetp, 0, sz); |
memset(*readsetp, 0, sz); |
memset(*writesetp, 0, sz); |
memset(*writesetp, 0, sz); |
|
|
if (!rekeying) |
if (!ssh_packet_is_rekeying(ssh)) |
channel_handler(channel_pre, *readsetp, *writesetp, |
channel_handler(ssh, channel_pre, *readsetp, *writesetp, |
minwait_secs); |
minwait_secs); |
} |
} |
|
|
|
|
* events pending. |
* events pending. |
*/ |
*/ |
void |
void |
channel_after_select(fd_set *readset, fd_set *writeset) |
channel_after_select(struct ssh *ssh, fd_set *readset, fd_set *writeset) |
{ |
{ |
channel_handler(channel_post, readset, writeset, NULL); |
channel_handler(ssh, channel_post, readset, writeset, NULL); |
} |
} |
|
|
|
|