commit - 9fff9f6a2b1f113513b95eae3eaa3c55052f8b91
commit + 765dc320f11f117d63e5285a903dfe8af4a48795
blob - 98a054344031d57c0c9e82b98fd4a66d46d3d200
blob + af79c13feddbbb208a2b887aafef7e73a5e4c95f
--- src/ngircd/conn.c
+++ src/ngircd/conn.c
/* Update connection statistics */
My_Connections[Idx].bytes_in += len;
+ My_Connections[Idx].bps += Handle_Buffer(Idx);
+ /* Make sure that there is still a valid client registered */
+ c = Conn_GetClient(Idx);
+ if (!c)
+ return;
+
/* Update timestamp of last data received if this connection is
* registered as a user, server or service connection. Don't update
* otherwise, so users have at least Conf_PongTimeout seconds time to
* register with the IRC server -- see Check_Connections().
* Update "lastping", too, if time shifted backwards ... */
- c = Conn_GetClient(Idx);
- if (c && (Client_Type(c) == CLIENT_USER
- || Client_Type(c) == CLIENT_SERVER
- || Client_Type(c) == CLIENT_SERVICE)) {
+ if (Client_Type(c) == CLIENT_USER
+ || Client_Type(c) == CLIENT_SERVER
+ || Client_Type(c) == CLIENT_SERVICE) {
t = time(NULL);
if (My_Connections[Idx].lastdata != t)
My_Connections[Idx].bps = 0;
}
/* Look at the data in the (read-) buffer of this connection */
- My_Connections[Idx].bps += Handle_Buffer(Idx);
if (Client_Type(c) != CLIENT_SERVER
&& Client_Type(c) != CLIENT_UNKNOWNSERVER
&& Client_Type(c) != CLIENT_SERVICE