projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix a stupid sign bug in run_timers() that broke Windows Plink (and
[u/mdw/putty]
/
pinger.c
diff --git
a/pinger.c
b/pinger.c
index
c9b7503
..
3f533ae
100644
(file)
--- a/
pinger.c
+++ b/
pinger.c
@@
-8,18
+8,18
@@
struct pinger_tag {
int interval;
int pending;
struct pinger_tag {
int interval;
int pending;
- long next;
+
unsigned
long next;
Backend *back;
void *backhandle;
};
static void pinger_schedule(Pinger pinger);
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;
{
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);
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(Conf
ig *cfg
, Backend *back, void *backhandle)
+Pinger pinger_new(Conf
*conf
, Backend *back, void *backhandle)
{
Pinger pinger = snew(struct pinger_tag);
{
Pinger pinger = snew(struct pinger_tag);
- pinger->interval = c
fg->ping_interval
;
+ pinger->interval = c
onf_get_int(conf, CONF_ping_interval)
;
pinger->pending = FALSE;
pinger->back = back;
pinger->backhandle = backhandle;
pinger->pending = FALSE;
pinger->back = back;
pinger->backhandle = backhandle;
@@
-56,10
+56,11
@@
Pinger pinger_new(Config *cfg, Backend *back, void *backhandle)
return pinger;
}
return pinger;
}
-void pinger_reconfig(Pinger pinger, Conf
ig *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);
}
}
pinger_schedule(pinger);
}
}