Module: ngircd.git
Branch: master
Commit: 6349ec8bb33d74aa73f0ffa17c29d54119ab9d77
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=6349ec8b…
Author: Alexander Barton <alex(a)barton.de>
Date: Wed Sep 8 02:02:01 2010 +0200
Conn_SyncServerStruct(): test all connections; and work case insensitive
Fix synchronization of established connections and configured server
structures after a configuration update:
- Not only test servers that already have a connection, but also check
and update configured servers to which a new connection is beeing
established (SERVER_WAIT state).
- And do the server name comparision case-insensitive.
---
src/ngircd/conn.c | 30 +++++++++++++++---------------
1 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
index a8e93a2..78a20b0 100644
--- a/src/ngircd/conn.c
+++ b/src/ngircd/conn.c
@@ -1139,32 +1139,32 @@ Conn_CountAccepted(void)
} /* Conn_CountAccepted */
+/**
+ * Synchronize established connections and configured server structures
+ * after a configuration update and store the correct connection IDs, if any.
+ */
GLOBAL void
-Conn_SyncServerStruct( void )
+Conn_SyncServerStruct(void)
{
- /* Synchronize server structures (connection IDs):
- * connections <-> configuration */
-
CLIENT *client;
CONN_ID i;
int c;
- for( i = 0; i < Pool_Size; i++ ) {
- /* Established connection? */
- if (My_Connections[i].sock < 0)
+ for (i = 0; i < Pool_Size; i++) {
+ if (My_Connections[i].sock == NONE)
continue;
- /* Server connection? */
- client = Conn_GetClient( i );
- if(( ! client ) || ( Client_Type( client ) != CLIENT_SERVER )) continue;
+ /* Server link? */
+ client = Conn_GetClient(i);
+ if (!client || Client_Type(client) != CLIENT_SERVER)
+ continue;
- for( c = 0; c < MAX_SERVERS; c++ )
- {
+ for (c = 0; c < MAX_SERVERS; c++) {
/* Configured server? */
- if( ! Conf_Server[c].host[0] ) continue;
+ if (!Conf_Server[c].host[0])
+ continue;
- /* Duplicate? */
- if( strcmp( Conf_Server[c].name, Client_ID( client )) == 0 )
+ if (strcasecmp(Conf_Server[c].name, Client_ID(client)) == 0)
Conf_Server[c].conn_id = i;
}
}