X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/39934deb5202149f98198c111a35c21cb4d0d0f8..e99bb8bfc8d2c1a47b6ae90ef43683d191c30f66:/pinger.c diff --git a/pinger.c b/pinger.c index c9b75033..3f533ae6 100644 --- a/pinger.c +++ b/pinger.c @@ -8,18 +8,18 @@ struct pinger_tag { int interval; int pending; - long next; + unsigned long next; Backend *back; void *backhandle; }; static void pinger_schedule(Pinger pinger); -static void pinger_timer(void *ctx, long now) +static void pinger_timer(void *ctx, unsigned long now) { Pinger pinger = (Pinger)ctx; - if (pinger->pending && now - pinger->next >= 0) { + if (pinger->pending && now == pinger->next) { pinger->back->special(pinger->backhandle, TS_PING); pinger->pending = FALSE; pinger_schedule(pinger); @@ -43,11 +43,11 @@ static void pinger_schedule(Pinger pinger) } } -Pinger pinger_new(Config *cfg, Backend *back, void *backhandle) +Pinger pinger_new(Conf *conf, Backend *back, void *backhandle) { Pinger pinger = snew(struct pinger_tag); - pinger->interval = cfg->ping_interval; + pinger->interval = conf_get_int(conf, CONF_ping_interval); pinger->pending = FALSE; pinger->back = back; pinger->backhandle = backhandle; @@ -56,10 +56,11 @@ Pinger pinger_new(Config *cfg, Backend *back, void *backhandle) return pinger; } -void pinger_reconfig(Pinger pinger, Config *oldcfg, Config *newcfg) +void pinger_reconfig(Pinger pinger, Conf *oldconf, Conf *newconf) { - if (oldcfg->ping_interval != newcfg->ping_interval) { - pinger->interval = newcfg->ping_interval; + int newinterval = conf_get_int(newconf, CONF_ping_interval); + if (conf_get_int(oldconf, CONF_ping_interval) != newinterval) { + pinger->interval = newinterval; pinger_schedule(pinger); } }