diff options
author | Matt Johnston <matt@ucc.asn.au> | 2014-08-19 23:08:56 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2014-08-19 23:08:56 +0800 |
commit | 6d2d3669f39f12182b79a0067f477b58948897f6 (patch) | |
tree | 710285eb2899e8dc49108f0d690edceb811d0644 /svr-chansession.c | |
parent | 1387654cc8ac3f14b1c144f838fee5d0f51921c0 (diff) |
Make keepalive handling more robust, this should now match what OpenSSH does
Diffstat (limited to 'svr-chansession.c')
-rw-r--r-- | svr-chansession.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/svr-chansession.c b/svr-chansession.c index 2a99362..6c73778 100644 --- a/svr-chansession.c +++ b/svr-chansession.c @@ -53,6 +53,7 @@ static void sesssigchild_handler(int val); static void closechansess(struct Channel *channel); static int newchansess(struct Channel *channel); static void chansessionrequest(struct Channel *channel); +static int sesscheckclose(struct Channel *channel); static void send_exitsignalstatus(struct Channel *channel); static void send_msg_chansess_exitstatus(struct Channel * channel, @@ -61,6 +62,14 @@ static void send_msg_chansess_exitsignal(struct Channel * channel, struct ChanSess * chansess); static void get_termmodes(struct ChanSess *chansess); +const struct ChanType svrchansess = { + 0, /* sepfds */ + "session", /* name */ + newchansess, /* inithandler */ + sesscheckclose, /* checkclosehandler */ + chansessionrequest, /* reqhandler */ + closechansess, /* closehandler */ +}; /* required to clear environment */ extern char** environ; @@ -968,16 +977,6 @@ static void execchild(void *user_data) { dropbear_exit("Child failed"); } -const struct ChanType svrchansess = { - 0, /* sepfds */ - "session", /* name */ - newchansess, /* inithandler */ - sesscheckclose, /* checkclosehandler */ - chansessionrequest, /* reqhandler */ - closechansess, /* closehandler */ -}; - - /* Set up the general chansession environment, in particular child-exit * handling */ void svr_chansessinitialise() { |