mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-12 09:50:29 +00:00
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.
This commit is contained in:
parent
8d68fe3f86
commit
6349ec8bb3
@ -1139,32 +1139,32 @@ Conn_CountAccepted(void)
|
|||||||
} /* Conn_CountAccepted */
|
} /* Conn_CountAccepted */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Synchronize established connections and configured server structures
|
||||||
|
* after a configuration update and store the correct connection IDs, if any.
|
||||||
|
*/
|
||||||
GLOBAL void
|
GLOBAL void
|
||||||
Conn_SyncServerStruct( void )
|
Conn_SyncServerStruct(void)
|
||||||
{
|
{
|
||||||
/* Synchronize server structures (connection IDs):
|
|
||||||
* connections <-> configuration */
|
|
||||||
|
|
||||||
CLIENT *client;
|
CLIENT *client;
|
||||||
CONN_ID i;
|
CONN_ID i;
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
for( i = 0; i < Pool_Size; i++ ) {
|
for (i = 0; i < Pool_Size; i++) {
|
||||||
/* Established connection? */
|
if (My_Connections[i].sock == NONE)
|
||||||
if (My_Connections[i].sock < 0)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Server connection? */
|
/* Server link? */
|
||||||
client = Conn_GetClient( i );
|
client = Conn_GetClient(i);
|
||||||
if(( ! client ) || ( Client_Type( client ) != CLIENT_SERVER )) continue;
|
if (!client || Client_Type(client) != CLIENT_SERVER)
|
||||||
|
continue;
|
||||||
|
|
||||||
for( c = 0; c < MAX_SERVERS; c++ )
|
for (c = 0; c < MAX_SERVERS; c++) {
|
||||||
{
|
|
||||||
/* Configured server? */
|
/* Configured server? */
|
||||||
if( ! Conf_Server[c].host[0] ) continue;
|
if (!Conf_Server[c].host[0])
|
||||||
|
continue;
|
||||||
|
|
||||||
/* Duplicate? */
|
if (strcasecmp(Conf_Server[c].name, Client_ID(client)) == 0)
|
||||||
if( strcmp( Conf_Server[c].name, Client_ID( client )) == 0 )
|
|
||||||
Conf_Server[c].conn_id = i;
|
Conf_Server[c].conn_id = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user