version 1.2.2.10, 2012/04/25 07:37:16
|
version 1.2.2.13, 2012/04/25 13:33:53
|
Line 239 thrSession(struct tagSession *sess)
|
Line 239 thrSession(struct tagSession *sess)
|
io_freeVar(v); |
io_freeVar(v); |
} else |
} else |
ioLIBERR(mqtt); |
ioLIBERR(mqtt); |
|
|
|
SESS_LOCK; |
|
TAILQ_REMOVE(&Sessions, sess, sess_node); |
|
SESS_UNLOCK; |
|
|
locKill ^= locKill; |
locKill ^= locKill; |
continue; | break; |
case MQTT_TYPE_DISCONNECT: |
case MQTT_TYPE_DISCONNECT: |
ioDEBUG(5, "Exec DISCONNECT session"); |
ioDEBUG(5, "Exec DISCONNECT session"); |
finiSession(sess); |
finiSession(sess); |
|
|
|
SESS_LOCK; |
|
TAILQ_REMOVE(&Sessions, sess, sess_node); |
|
SESS_UNLOCK; |
|
|
locKill ^= locKill; |
locKill ^= locKill; |
continue; |
continue; |
case MQTT_TYPE_PUBLISH: |
case MQTT_TYPE_PUBLISH: |
Line 262 thrSession(struct tagSession *sess)
|
Line 272 thrSession(struct tagSession *sess)
|
case MQTT_TYPE_PINGREQ: |
case MQTT_TYPE_PINGREQ: |
ioDEBUG(5, "Exec PINGREQ session"); |
ioDEBUG(5, "Exec PINGREQ session"); |
break; |
break; |
|
case MQTT_TYPE_PINGRESP: |
|
ioDEBUG(5, "Exec PINGRESP session"); |
|
break; |
default: |
default: |
ioDEBUG(5, "Error:: Session %s, wrong command %d - DISCARDED", |
ioDEBUG(5, "Error:: Session %s, wrong command %d - DISCARDED", |
sess->sess_cid, hdr->mqtt_msg.type); |
sess->sess_cid, hdr->mqtt_msg.type); |
Line 271 thrSession(struct tagSession *sess)
|
Line 284 thrSession(struct tagSession *sess)
|
|
|
pthread_cleanup_pop(locKill); |
pthread_cleanup_pop(locKill); |
pthread_exit(NULL); |
pthread_exit(NULL); |
|
return NULL; |
} |
} |
|
|
static void * |
static void * |
Line 333 startSession(sched_task_t *task)
|
Line 347 startSession(sched_task_t *task)
|
ioDEBUG(1, "Login:: ALLOWED for username %s ...", sess->sess_user); |
ioDEBUG(1, "Login:: ALLOWED for username %s ...", sess->sess_user); |
ret = MQTT_RETCODE_ACCEPTED; |
ret = MQTT_RETCODE_ACCEPTED; |
} |
} |
|
|
if (call.FiniSessPUB(&cfg, pub, sess->sess_cid, sess->sess_user, "%") > 0) { |
if (call.FiniSessPUB(&cfg, pub, sess->sess_cid, sess->sess_user, "%") > 0) { |
ioDEBUG(2, "Old session %s should be disconnect!", sess->sess_cid); |
ioDEBUG(2, "Old session %s should be disconnect!", sess->sess_cid); |
TAILQ_FOREACH(s, &Sessions, sess_node) |
TAILQ_FOREACH(s, &Sessions, sess_node) |
Line 342 startSession(sched_task_t *task)
|
Line 357 startSession(sched_task_t *task)
|
break; |
break; |
} |
} |
} |
} |
|
|
if (call.InitSessPUB(&cfg, pub, sess->sess_cid, sess->sess_user, sess->sess_addr, |
if (call.InitSessPUB(&cfg, pub, sess->sess_cid, sess->sess_user, sess->sess_addr, |
sess->sess_will.flag, sess->sess_will.topic, sess->sess_will.msg, |
sess->sess_will.flag, sess->sess_will.topic, sess->sess_will.msg, |
sess->sess_will.qos, sess->sess_will.retain) == -1) { |
sess->sess_will.qos, sess->sess_will.retain) == -1) { |
Line 425 acceptClient(sched_task_t *task)
|
Line 441 acceptClient(sched_task_t *task)
|
ioDEBUG(1, "Terminated client with socket=%d", cli); |
ioDEBUG(1, "Terminated client with socket=%d", cli); |
} |
} |
end: |
end: |
schedRead(TASK_ROOT(task), acceptClient, NULL, TASK_FD(task), NULL, 0); | if (!schedRead(TASK_ROOT(task), acceptClient, NULL, TASK_FD(task), NULL, 0)) |
| ioLIBERR(sched); |
return NULL; |
return NULL; |
} |
} |
|
|