]> arthur.barton.de Git - ngircd-alex.git/commitdiff
Don't reset My_Connections[Idx].lastping when reading data
authorAlexander Barton <alex@barton.de>
Thu, 19 Aug 2010 13:58:55 +0000 (15:58 +0200)
committerAlexander Barton <alex@barton.de>
Thu, 19 Aug 2010 13:58:55 +0000 (15:58 +0200)
This fixes PING-PONG lag calculation (which resulted in "0" before).

The "lastping" time is still reset it if a time shift backwards has
been detected to prevent the daemon from miscalculating ping timeouts.

src/ngircd/conn.c

index 58a3cbfd20d7159903776a3d6060258becbb4aae..d0548c98ebf86c1ce6307fea027d2c2db2e0aae4 100644 (file)
@@ -1507,7 +1507,7 @@ Read_Request( CONN_ID Idx )
         * 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().
-        * Set "lastping", too, so we can handle time shifts backwards ... */
+        * Update "lastping", too, if time shifted backwards ... */
        c = Conn_GetClient(Idx);
        if (c && (Client_Type(c) == CLIENT_USER
                  || Client_Type(c) == CLIENT_SERVER
@@ -1517,7 +1517,8 @@ Read_Request( CONN_ID Idx )
                        My_Connections[Idx].bps = 0;
 
                My_Connections[Idx].lastdata = t;
-               My_Connections[Idx].lastping = My_Connections[Idx].lastdata;
+               if (My_Connections[Idx].lastping > t)
+                       My_Connections[Idx].lastping = t;
        }
 
        /* Look at the data in the (read-) buffer of this connection */