From 2d53d2213d046b1130bedd311fd5dee50cc34080 Mon Sep 17 00:00:00 2001 From: Michiel Broek Date: Mon, 18 Apr 2005 11:52:53 +0000 Subject: [PATCH] Added dead server handling --- mbtask/taskibc.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mbtask/taskibc.c b/mbtask/taskibc.c index 3e23bafb..de4915a6 100644 --- a/mbtask/taskibc.c +++ b/mbtask/taskibc.c @@ -310,6 +310,7 @@ void check_servers(void) } Syslog('r', "next call in %d %d seconds", CFG.dialdelay, j); tnsl->action = now + (time_t)j; + changed = TRUE; break; case NCS_CONNECT: /* @@ -317,7 +318,14 @@ void check_servers(void) */ Syslog('r', "%s connect", tnsl->server); if (((int)now - (int)tnsl->last) > 70) { - Syslog('r', "Server %s is dead", tnsl->server); + Syslog('+', "IBC: server %s connection is dead", tnsl->server); + tnsl->state = NCS_DEAD; + tnsl->action = now + (time_t)120; // 2 minutes delay before calling again. + tnsl->gotpass = FALSE; + tnsl->gotserver = FALSE; + tnsl->token = 0; + changed = TRUE; + break; } if (((int)now - (int)tnsl->last) > 60) { sprintf(csbuf, "PING\r\n"); @@ -329,6 +337,13 @@ void check_servers(void) case NCS_HANGUP: Syslog('r', "%s hangup", tnsl->server); tnsl->action = now + (time_t)1; tnsl->state = NCS_CALL; + changed = TRUE; + break; + + case NCS_DEAD: Syslog('r', "%s dead", tnsl->server); + tnsl->action = now + (time_t)1; + tnsl->state = NCS_CALL; + changed = TRUE; break; } }