--- mqtt/src/daemon.c 2012/07/03 07:57:16 1.2.2.46 +++ mqtt/src/daemon.c 2012/07/03 08:39:39 1.2.2.47 @@ -222,6 +222,7 @@ startSession(sched_task_t *task) int ret, wlen; mqtt_subscr_t *subs; struct timespec ts = { RETAIN_TIMEOUT, 0 }; + intptr_t sock; ioTRACE(4); @@ -285,7 +286,8 @@ startSession(sched_task_t *task) TAILQ_FOREACH(s, &Sessions, sess_node) if (!strcmp(s->sess_cid, sess->sess_cid)) { /* found stale session & disconnect it! */ - schedCancelby(root, taskMAX, CRITERIA_FD, (void*) s->sess_sock, NULL); + sock = s->sess_sock; + schedCancelby(root, taskMAX, CRITERIA_FD, (void*) sock, NULL); schedWrite(root, leaveClient, s, s->sess_sock, NULL, 0); break; }