version 1.1.2.20, 2011/12/14 15:09:31
|
version 1.1.2.23, 2011/12/16 02:09:20
|
Line 139 startSession(sched_task_t *task)
|
Line 139 startSession(sched_task_t *task)
|
if (call.LoginACC(&cfg, acc, sess->sess_user, sess->sess_pass) < 1) { |
if (call.LoginACC(&cfg, acc, sess->sess_user, sess->sess_pass) < 1) { |
ioDEBUG(0, "Login:: DENIED for username %s and password %s", |
ioDEBUG(0, "Login:: DENIED for username %s and password %s", |
sess->sess_user, sess->sess_pass); |
sess->sess_user, sess->sess_pass); |
|
ret = MQTT_RETCODE_DENIED; |
goto end; |
goto end; |
} else | } else { |
ioDEBUG(0, "Login:: ALLOWED for username %s ...", sess->sess_user); |
ioDEBUG(0, "Login:: ALLOWED for username %s ...", sess->sess_user); |
|
ret = MQTT_RETCODE_ACCEPTED; |
|
} |
|
if (call.FiniSessPUB(&cfg, pub, sess->sess_cid, sess->sess_user, "%") > 0) { |
|
// TODO: disconnect client |
|
} |
|
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.qos, sess->sess_will.retain) == -1) { |
|
ioDEBUG(0, "Session %s DENIED for username %s", sess->sess_cid, sess->sess_user); |
|
ret = MQTT_RETCODE_DENIED; |
|
goto end; |
|
} else { |
|
ioDEBUG(0, "Session %s from %s and username %s is started", |
|
sess->sess_cid, sess->sess_addr, sess->sess_user); |
|
ret = MQTT_RETCODE_ACCEPTED; |
|
} |
|
|
ret = mqtt_msgCONNACK(&msg, ret); |
ret = mqtt_msgCONNACK(&msg, ret); |
if ((ret = send(sess->sess_sock, msg.msg_base, ret, 0)) == -1) { |
if ((ret = send(sess->sess_sock, msg.msg_base, ret, 0)) == -1) { |
Line 163 startSession(sched_task_t *task)
|
Line 180 startSession(sched_task_t *task)
|
pthread_create(&sess->sess_tid, &attr, (void*(*)(void*)) thrSession, sess); |
pthread_create(&sess->sess_tid, &attr, (void*(*)(void*)) thrSession, sess); |
pthread_mutex_unlock(&mtx_sess); |
pthread_mutex_unlock(&mtx_sess); |
|
|
ioDEBUG(1, "ConnID=%s(%s) for %s login OK!", sess->sess_cid, sess->sess_user, sess->sess_addr); | call.LOG(logg, "Session %s started from %s for user %s OK!\n", sess->sess_cid, |
| sess->sess_addr, sess->sess_user); |
|
|
pthread_attr_destroy(&attr); |
pthread_attr_destroy(&attr); |
return NULL; |
return NULL; |
Line 192 thrSched(void *arg __unused)
|
Line 210 thrSched(void *arg __unused)
|
ioTRACE(1); |
ioTRACE(1); |
|
|
schedRun(root, &Kill); |
schedRun(root, &Kill); |
printf("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"); |
|
|
|
TAILQ_FOREACH(sess, &Sessions, sess_node) |
TAILQ_FOREACH(sess, &Sessions, sess_node) |
if (sess->sess_tid) |
if (sess->sess_tid) |
Line 208 Run(int sock)
|
Line 225 Run(int sock)
|
int cli; |
int cli; |
pthread_t tid; |
pthread_t tid; |
ait_val_t *v; |
ait_val_t *v; |
|
char str[STRSIZ]; |
|
|
ioTRACE(1); |
ioTRACE(1); |
|
|
Line 224 Run(int sock)
|
Line 242 Run(int sock)
|
} |
} |
|
|
while (!Kill) { |
while (!Kill) { |
printf("%%%%%%%%%%rrrrrrrrrrrrrrrrrrrrr errno=%d\n", errno); |
|
if ((cli = accept(sock, &sa.sa, &sslen)) == -1) { |
if ((cli = accept(sock, &sa.sa, &sslen)) == -1) { |
printf("rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr errno=%d\n", errno); |
|
if (!Kill) |
if (!Kill) |
continue; |
continue; |
ioLOGERR(0); |
ioLOGERR(0); |
Line 236 Run(int sock)
|
Line 252 Run(int sock)
|
if (!v) { |
if (!v) { |
ioLIBERR(mqtt); |
ioLIBERR(mqtt); |
break; |
break; |
} else | } else { |
io_n2addr(&sa, v); | memset(str, 0, sizeof str); |
ioDEBUG(1, "Connected client with socket=%d from %s:%d", cli, | snprintf(str, sizeof str, "%s:%hu", io_n2addr(&sa, v), io_n2port(&sa)); |
AIT_GET_STR(v), io_n2port(&sa)); | AIT_SET_STR(v, str); |
| } |
| ioDEBUG(1, "Connected client with socket=%d from %s", cli, AIT_GET_STR(v)); |
|
|
/* |
|
if (!schedRead(root, startSession, v, cli)) { |
if (!schedRead(root, startSession, v, cli)) { |
io_freeVar(v); |
io_freeVar(v); |
close(cli); |
close(cli); |
ioDEBUG(1, "Terminated client with socket=%d", cli); |
ioDEBUG(1, "Terminated client with socket=%d", cli); |
} |
} |
*/ |
|
} |
} |
printf("rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr\n"); |
|
|
|
return 0; |
return 0; |
} |
} |