]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conn.c
startup: open /dev/null before chroot
[ngircd-alex.git] / src / ngircd / conn.c
index f059d917b25f4443f900b6d531a0d7643e2c45de..58a3cbfd20d7159903776a3d6060258becbb4aae 100644 (file)
@@ -419,6 +419,23 @@ Conn_Exit( void )
 } /* Conn_Exit */
 
 
+/**
+ * Close all sockets (file descriptors) of open connections.
+ * This is useful in forked child processes, for example, to make sure that
+ * they don't hold connections open that the main process wants to close.
+ */
+GLOBAL void
+Conn_CloseAllSockets(void)
+{
+       CONN_ID idx;
+
+       for(idx = 0; idx < Pool_Size; idx++) {
+               if(My_Connections[idx].sock > NONE)
+                       close(My_Connections[idx].sock);
+       }
+}
+
+
 static unsigned int
 ports_initlisteners(array *a, const char *listen_addr, void (*func)(int,short))
 {
@@ -1074,10 +1091,6 @@ Conn_Close( CONN_ID Idx, const char *LogMsg, const char *FwdMsg, bool InformClie
                    in_k, out_k);
        }
 
-       /* Kill possibly running subprocess */
-       if (Proc_InProgress(&My_Connections[Idx].proc_stat))
-               Proc_Kill(&My_Connections[Idx].proc_stat);
-
        /* Servers: Modify time of next connect attempt? */
        Conf_UnsetServer( Idx );