summaryrefslogtreecommitdiffstats
path: root/server-fn.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2012-03-17 18:24:07 +0000
committerNicholas Marriott <nicm@openbsd.org>2012-03-17 18:24:07 +0000
commitd3c842d3678e52275c944123f00a2a974eb5d965 (patch)
treed0b234a4364504e17f53d90aa3e635134c0f01cc /server-fn.c
parenta597e3546cf667c2db91aea5545d2cb2125366f5 (diff)
Check event_initialized before event_del if event may not have been set
up; libevent2 complains about this. Reported by Moriyoshi Koizumi.
Diffstat (limited to 'server-fn.c')
-rw-r--r--server-fn.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/server-fn.c b/server-fn.c
index b9b7b714..66298571 100644
--- a/server-fn.c
+++ b/server-fn.c
@@ -453,7 +453,8 @@ server_set_identify(struct client *c)
tv.tv_sec = delay / 1000;
tv.tv_usec = (delay % 1000) * 1000L;
- evtimer_del(&c->identify_timer);
+ if (event_initialized (&c->identify_timer))
+ evtimer_del(&c->identify_timer);
evtimer_set(&c->identify_timer, server_callback_identify, c);
evtimer_add(&c->identify_timer, &tv);
@@ -491,7 +492,8 @@ server_update_event(struct client *c)
events |= EV_READ;
if (c->ibuf.w.queued > 0)
events |= EV_WRITE;
- event_del(&c->event);
+ if (event_initialized(&c->event))
+ event_del(&c->event);
event_set(&c->event, c->ibuf.fd, events, server_client_callback, c);
event_add(&c->event, NULL);
}