mirror of
https://github.com/osmarks/ngircd.git
synced 2025-11-17 05:57:12 +00:00
Connection counter: count outgoing connections as well.
This patch lets ngIRCd count outgoing connections as well as incoming connections (up to now only outgoing connections have been counted). This change is required because the Conn_Close() function doesn't know whether it closes an outgoing connection or not and therefore would decrement the counter below zero when an outgoing connection existed -- which would trigger an assert() call ... Please note that this patch changes the (so far undocumented but now fixed) behaviour of the "MaxConnections" configuration option to account the sum of the in- and outbound connections!
This commit is contained in:
@@ -116,6 +116,7 @@ cb_listen(int sock, short irrelevant)
|
||||
(void) irrelevant;
|
||||
if (New_Connection( sock ) >= 0)
|
||||
NumConnections++;
|
||||
LogDebug("Total number of connections now %ld.", NumConnections);
|
||||
}
|
||||
|
||||
|
||||
@@ -130,6 +131,7 @@ cb_listen_ssl(int sock, short irrelevant)
|
||||
return;
|
||||
|
||||
NumConnections++;
|
||||
LogDebug("Total number of connections now %ld.", NumConnections);
|
||||
io_event_setcb(My_Connections[fd].sock, cb_clientserver_ssl);
|
||||
}
|
||||
#endif
|
||||
@@ -1035,7 +1037,8 @@ Conn_Close( CONN_ID Idx, char *LogMsg, char *FwdMsg, bool InformClient )
|
||||
assert(NumConnections > 0);
|
||||
if (NumConnections)
|
||||
NumConnections--;
|
||||
LogDebug("Shutdown of connection %d completed", Idx );
|
||||
LogDebug("Shutdown of connection %d completed, %ld connection%s left.",
|
||||
Idx, NumConnections, NumConnections != 1 ? "s" : "");
|
||||
} /* Conn_Close */
|
||||
|
||||
|
||||
@@ -1717,8 +1720,9 @@ New_Server( int Server , ng_ipaddr_t *dest)
|
||||
Conf_Server[Server].conn_id = NONE;
|
||||
}
|
||||
#endif
|
||||
LogDebug("Registered new connection %d on socket %d.",
|
||||
new_sock, My_Connections[new_sock].sock );
|
||||
NumConnections++;
|
||||
LogDebug("Registered new connection %d on socket %d (%ld in total).",
|
||||
new_sock, My_Connections[new_sock].sock, NumConnections);
|
||||
Conn_OPTION_ADD( &My_Connections[new_sock], CONN_ISCONNECTING );
|
||||
} /* New_Server */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user