diff options
author | Ben Lindstrom <mouring@eviladmin.org> | 2001-07-04 05:26:06 +0000 |
---|---|---|
committer | Ben Lindstrom <mouring@eviladmin.org> | 2001-07-04 05:26:06 +0000 |
commit | 809744e9125bb96c7115922bf747dc88c60a199e (patch) | |
tree | 035d4463a602c130e058348e20552da1af469c09 /serverloop.c | |
parent | 0047764526a5abcadc5cad7fe00d244e0dc47f75 (diff) |
- markus@cvs.openbsd.org 2001/07/02 22:52:57
[channels.c channels.h serverloop.c]
improve cleanup/exit logic in ssh2:
stop listening to channels, detach channel users (e.g. sessions).
wait for children (i.e. dying sessions), send exit messages,
cleanup all channels.
Diffstat (limited to 'serverloop.c')
-rw-r--r-- | serverloop.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/serverloop.c b/serverloop.c index 773292a9..1db1c725 100644 --- a/serverloop.c +++ b/serverloop.c @@ -35,7 +35,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: serverloop.c,v 1.73 2001/07/02 13:59:14 markus Exp $"); +RCSID("$OpenBSD: serverloop.c,v 1.74 2001/07/02 22:52:57 markus Exp $"); #include "xmalloc.h" #include "packet.h" @@ -711,7 +711,8 @@ server_loop2(Authctxt *authctxt) * there is a race between channel_free_all() killing children and * children dying before kill() */ - channel_free_all(); + channel_detach_all(); + channel_stop_listening(); while (session_have_children()) { pid = waitpid(-1, &status, 0); @@ -722,6 +723,7 @@ server_loop2(Authctxt *authctxt) break; } } + channel_free_all(); } static void |