repo: ngircd action: commit revision: path_from: revision_from: cf93881dfbd7b6317d2a41f87e9751b74354203b: path_to: revision_to:
commit cf93881dfbd7b6317d2a41f87e9751b74354203b Author: Alexander BartonDate: Wed Jul 14 10:27:55 2010 +0200 New function Conn_CloseAllSockets() to close all open sockets 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. diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
--- a/src/ngircd/conn.c
+++ b/src/ngircd/conn.c
@@ -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))
{
diff --git a/src/ngircd/conn.h b/src/ngircd/conn.h
--- a/src/ngircd/conn.h +++ b/src/ngircd/conn.h @@ -102,6 +102,8 @@ GLOBAL long WCounter; 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 ));
-----END OF PAGE-----