Explorar o código

* Check server lag every 30 seconds now instead of every 5 minutes

svn: 1470
Bryan Drewery %!s(int64=21) %!d(string=hai) anos
pai
achega
d2c9a986b6
Modificáronse 3 ficheiros con 12 adicións e 6 borrados
  1. 1 0
      doc/UPDATES
  2. 10 6
      src/mod/server.mod/server.c
  3. 1 0
      src/mod/server.mod/servmsg.c

+ 1 - 0
doc/UPDATES

@@ -60,6 +60,7 @@ This is a summary of ChangeLog basically.
 * cmd_su/cmd_relay no longer work through .botcmd
 * Added some simple dcc ip sanity checking back in.
 * All dns resolving is now asynchronous, all dns bugs now fixed.
+* Check server lag every 30 seconds, not every 5 minutes.
 
 1.1.9
 

+ 10 - 6
src/mod/server.mod/server.c

@@ -974,19 +974,22 @@ static void server_secondly()
     connect_server();
 }
 
+static void server_check_lag()
+{
+  if (server_online && !waiting_for_awake && !trying_server) {
+    dprintf(DP_MODE, "PING :%li\n", now);
+    waiting_for_awake = 1;
+  }
+}
+
 static void server_5minutely()
 {
-  if (server_online) {
-    if (waiting_for_awake) {
+  if (server_online && waiting_for_awake && ((now - lastpingtime) >= 300)) {
       /* Uh oh!  Never got pong from last time, five minutes ago!
        * Server is probably stoned.
        */
       disconnect_server(servidx, DO_LOST);
       putlog(LOG_SERV, "*", IRC_SERVERSTONED);
-    } else if (!trying_server) {
-      /* Check for server being stoned. */
-      dprintf(DP_MODE, "PING :%li\n", now);
-      waiting_for_awake = 1;
     }
   }
 }
@@ -1119,6 +1122,7 @@ void server_init()
 
   timer_create_secs(1, "server_secondly", (Function) server_secondly);
   timer_create_secs(10, "server_10secondly", (Function) server_10secondly);
+  timer_create_secs(30, "server_check_lag", (Function) server_check_lag);
   timer_create_secs(300, "server_5minutely", (Function) server_5minutely);
   timer_create_secs(60, "minutely_checks", (Function) minutely_checks);
   mq.head = hq.head = modeq.head = NULL;

+ 1 - 0
src/mod/server.mod/servmsg.c

@@ -725,6 +725,7 @@ static int gotpong(char *from, char *msg)
   fixcolon(msg);		/* Scrap server name */
 
   server_lag = now - my_atoul(msg);
+
   if (server_lag > 99999) {
     /* IRCnet lagmeter support by drummer */
     server_lag = now - lastpingtime;