commit - 560492a4a4bd2182e3eaa32a5d5db7582be97963
commit + cf93881dfbd7b6317d2a41f87e9751b74354203b
blob - f059d917b25f4443f900b6d531a0d7643e2c45de
blob + d8df6274ab7ac376db618a44c6bd77e02d9d8ad4
--- src/ngircd/conn.c
+++ src/ngircd/conn.c
} /* 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))
{
blob - a63fcbb602ea5f7fe7dd72231538f76346177802
blob + a0bddaac95d090735bf652e3d3829e9436c4a376
--- src/ngircd/conn.h
+++ src/ngircd/conn.h
GLOBAL void Conn_Init PARAMS((void ));
GLOBAL void Conn_Exit PARAMS(( void ));
+GLOBAL void Conn_CloseAllSockets PARAMS((void));
+
GLOBAL unsigned int Conn_InitListeners PARAMS(( void ));
GLOBAL void Conn_ExitListeners PARAMS(( void ));