version 1.2.2.26, 2012/05/05 15:04:29
|
version 1.2.2.29, 2012/05/08 14:27:46
|
Line 39 initSession(int sock, ait_val_t * __restrict v)
|
Line 39 initSession(int sock, ait_val_t * __restrict v)
|
} |
} |
|
|
/* init server actor */ |
/* init server actor */ |
sess->sess_srv = mqtt_srv_Init(sock, sess->sess_buf); | sess->sess_srv = mqtt_srv_Init(sock, sess->sess_buf, sess->sess_ka); |
if (!sess->sess_srv) { |
if (!sess->sess_srv) { |
ioDEBUG(3, "Error:: in srv_Init #%d - %s", mqtt_GetErrno(), mqtt_GetError()); |
ioDEBUG(3, "Error:: in srv_Init #%d - %s", mqtt_GetErrno(), mqtt_GetError()); |
mqtt_msgFree(&sess->sess_buf, 42); |
mqtt_msgFree(&sess->sess_buf, 42); |
Line 70 finiSession(struct tagSession *sess)
|
Line 70 finiSession(struct tagSession *sess)
|
if (!sess) |
if (!sess) |
return; |
return; |
|
|
if (call.FiniSessPUB) | if (sess->sess_clean) { |
call.FiniSessPUB(&cfg, pub, sess->sess_cid, sess->sess_user, "%"); | if (call.FiniSessPUB) |
| call.FiniSessPUB(&cfg, pub, sess->sess_cid, sess->sess_user, "%"); |
| if (call.DeletePUB_subscribe) |
| call.DeletePUB_subscribe(&cfg, pub, sess->sess_cid, "%", sess->sess_user, "%"); |
| if (call.WipePUB_topic) |
| call.WipePUB_topic(&cfg, pub, sess->sess_cid, sess->sess_user, -1); |
| } |
|
|
while ((store = SLIST_FIRST(&sess->sess_subscr))) { |
while ((store = SLIST_FIRST(&sess->sess_subscr))) { |
SLIST_REMOVE_HEAD(&sess->sess_subscr, st_node); |
SLIST_REMOVE_HEAD(&sess->sess_subscr, st_node); |
Line 153 dispatchSession(sched_task_t *task)
|
Line 159 dispatchSession(sched_task_t *task)
|
do { |
do { |
/* dispatch message type */ |
/* dispatch message type */ |
if ((len = mqtt_srv_Dispatch(sess->sess_srv, ret, sess)) < 0) { |
if ((len = mqtt_srv_Dispatch(sess->sess_srv, ret, sess)) < 0) { |
if (len == -1) | if (len == -1) { |
ioLIBERR(mqtt); |
ioLIBERR(mqtt); |
TAILQ_REMOVE(&Sessions, sess, sess_node); | finiSession(sess); |
finiSession(sess); | } else if (len == -2) { |
| TAILQ_REMOVE(&Sessions, sess, sess_node); |
| finiSession(sess); |
| } else if (len == -3) |
| schedEvent(root, startSession, NULL, (u_long) TASK_FD(task), sess, ret); |
} else |
} else |
ret -= len; |
ret -= len; |
} while (len > 0 && ret > 0); |
} while (len > 0 && ret > 0); |
Line 219 startSession(sched_task_t *task)
|
Line 229 startSession(sched_task_t *task)
|
sess->sess_will.qos = flg.will_qos; |
sess->sess_will.qos = flg.will_qos; |
sess->sess_will.retain = flg.will_retain; |
sess->sess_will.retain = flg.will_retain; |
sess->sess_will.flag = flg.will_flg; |
sess->sess_will.flag = flg.will_flg; |
|
|
|
sess->sess_srv->timeout = sess->sess_ka; |
} |
} |
|
|
/* check online table for user */ |
/* check online table for user */ |