|
|
| 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; |
| } | } |