aboutsummaryrefslogtreecommitdiffstats
path: root/echld/echld-util.c
diff options
context:
space:
mode:
authorLuis Ontanon <luis.ontanon@gmail.com>2013-06-27 03:41:48 +0000
committerLuis Ontanon <luis.ontanon@gmail.com>2013-06-27 03:41:48 +0000
commite48b0084e19eacc30a2d8a8e274cc284973e0a2c (patch)
tree4f1f9c467037e08567984dd003687057777ec431 /echld/echld-util.c
parentffe6d9c4d6fe36d7f2498154cdb12159b6b60aff (diff)
MS: Pong from the dispatcher!
svn path=/trunk/; revision=50183
Diffstat (limited to 'echld/echld-util.c')
-rw-r--r--echld/echld-util.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/echld/echld-util.c b/echld/echld-util.c
index 6519e81c90..02d4e3c2f5 100644
--- a/echld/echld-util.c
+++ b/echld/echld-util.c
@@ -47,16 +47,21 @@ static gboolean pong(echld_msg_type_t type, GByteArray* ba _U_, void* data) {
struct timeval t;
long ret = -1;
gettimeofday(&t,NULL);
+
switch (type) {
case ECHLD_PONG:
ret = timevaldiff(&(p->tv),&t);
+ break;
default:
ret = -1;
+ break;
}
if (p->cb) p->cb(ret, p->cb_data);
+ g_free(p);
+
return TRUE;
}
@@ -68,7 +73,7 @@ extern echld_state_t echld_ping(int chld_id, echld_ping_cb_t pcb, void* cb_data)
p->cb_data = cb_data;
gettimeofday(&(p->tv),NULL);
- return echld_reqh(chld_id, 0, ECHLD_PING, NULL, pong, p);
+ return echld_reqh(chld_id, ECHLD_PING, 0, NULL, pong, p);
}