- markus@cvs.openbsd.org 2001/06/20 13:56:39
     [channels.c channels.h clientloop.c packet.c serverloop.c]
     move from channel_stop_listening to channel_free_all,
     call channel_free_all before calling waitpid() in serverloop.
     fixes the utmp handling; report from Lutz.Jaenicke@aet.TU-Cottbus.DE
diff --git a/serverloop.c b/serverloop.c
index bafbfb0..1ce6c91 100644
--- a/serverloop.c
+++ b/serverloop.c
@@ -35,7 +35,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: serverloop.c,v 1.68 2001/06/04 23:07:20 markus Exp $");
+RCSID("$OpenBSD: serverloop.c,v 1.69 2001/06/20 13:56:39 markus Exp $");
 
 #include "xmalloc.h"
 #include "packet.h"
@@ -608,8 +608,7 @@
 		close(fdin);
 	fdin = -1;
 
-	/* Stop listening for channels; this removes unix domain sockets. */
-	channel_stop_listening();
+	channel_free_all();
 
 	/* We no longer want our SIGCHLD handler to be called. */
 	signal(SIGCHLD, SIG_DFL);
@@ -700,10 +699,11 @@
 	if (writeset)
 		xfree(writeset);
 
+	channel_free_all();
+
 	signal(SIGCHLD, SIG_DFL);
 	while ((pid = waitpid(-1, &status, WNOHANG)) > 0)
 		session_close_by_pid(pid, status);
-	channel_stop_listening();
 }
 
 void