Module: ngircd.git Branch: master Commit: 6349ec8bb33d74aa73f0ffa17c29d54119ab9d77 URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=6349e...
Author: Alexander Barton alex@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; } }