|
|
| version 1.3, 2012/06/28 11:06:17 | version 1.3.12.2, 2022/09/16 04:14:03 |
|---|---|
| Line 2 | Line 2 |
| #include <stdlib.h> | #include <stdlib.h> |
| #include <string.h> | #include <string.h> |
| #include <sys/types.h> | #include <sys/types.h> |
| #include <limits.h> | |
| #include <elwix.h> | |
| #include <aitmqtt.h> | #include <aitmqtt.h> |
| Line 18 main() | Line 20 main() |
| struct mqtthdr *hdr; | struct mqtthdr *hdr; |
| u_char *qoses; | u_char *qoses; |
| m = mqtt_msgAlloc(0); | |
| /* conn* */ | /* conn* */ |
| printf("connect=%d/%d\n", m->msg_len, mqtt_msgCONNECT(m, "MRYN", 0, "aaaaa", NULL, "bbb", NULL, 0, 0, 0)); | m = mqtt_msgCONNECT("MRYN", 4, 0, "aaaaa", NULL, "bbb", NULL, 0, 0, 0); |
| printf("connect=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| t = msg = NULL; | t = msg = NULL; |
| Line 30 main() | Line 32 main() |
| flg.clean_sess, flg.will_flg, flg.will_qos, flg.will_retain, flg.password, flg.username); | flg.clean_sess, flg.will_flg, flg.will_qos, flg.will_retain, flg.password, flg.username); |
| if (flg.reserved) { | if (flg.reserved) { |
| printf("Error:: mqtt_readCONNECT() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); | printf("Error:: mqtt_readCONNECT() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); |
| mqtt_msgFree(&m, 0); | |
| return 1; | return 1; |
| } | } |
| printf("++> KA=%d sec, ConnID=%s User=%s Pass=%s Will_Topic=%s Will_Message=%s\n", ka, | printf("++> KA=%d sec, ConnID=%s User=%s Pass=%s Will_Topic=%s Will_Message=%s\n", ka, |
| cid, user, pass, t, msg); | cid, user, pass, t, msg); |
| if (t) | if (t) |
| free(t); | e_free(t); |
| if (msg) | if (msg) |
| free(msg); | e_free(msg); |
| printf("connack=%d/%d\n", m->msg_len, mqtt_msgCONNACK(m, 1)); | mqtt_msgFree(&m, 0); |
| m = mqtt_msgCONNACK(1); | |
| printf("connack=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read connack=%d\n", mqtt_readCONNACK(m)); | printf("read connack=%d\n", mqtt_readCONNACK(m)); |
| mqtt_msgFree(&m, 0); | |
| getchar(); | getchar(); |
| /* pub* */ | /* pub* */ |
| printf("publish=%d/%d\n", m->msg_len, mqtt_msgPUBLISH(m, "AAA/bbb/CCC/ddd", 7, 0, 2, 0, "OLE!!!", 7)); | m = mqtt_msgPUBLISH("AAA/bbb/CCC/ddd", 7, 0, 2, 0, "OLE!!!", 7); |
| printf("publish=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| if (!(len = mqtt_readPUBLISH(m, topic, sizeof topic, &msgID, (void**) &pub))) { | if (!(len = mqtt_readPUBLISH(m, topic, sizeof topic, &msgID, (void**) &pub))) { |
| printf("Error:: mqtt_readPUBLISH() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); | printf("Error:: mqtt_readPUBLISH() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); |
| mqtt_msgFree(&m, 0); | |
| return 2; | return 2; |
| } else | } else |
| hdr = (struct mqtthdr*) m->msg_base; | hdr = (struct mqtthdr*) m->msg_base; |
| printf("read publish: dup=%d qos=%d retain=%d\n", hdr->mqtt_msg.dup, hdr->mqtt_msg.qos, hdr->mqtt_msg.retain); | printf("read publish: dup=%d qos=%d retain=%d\n", hdr->mqtt_msg.dup, hdr->mqtt_msg.qos, hdr->mqtt_msg.retain); |
| printf("++> topic=%s MessageID=%d DATA=(%d)%s\n", topic, msgID, len, pub); | printf("++> topic=%s MessageID=%d DATA=(%d)%s\n", topic, msgID, len, pub); |
| free(pub); | mqtt_msgFree(&m, 0); |
| printf("puback=%d/%d\n", m->msg_len, mqtt_msgPUBACK(m, 10)); | e_free(pub); |
| m = mqtt_msgPUBACK(10); | |
| printf("puback=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read puback=%d\n", mqtt_readPUBACK(m)); | printf("read puback=%d\n", mqtt_readPUBACK(m)); |
| printf("pubrec=%d/%d\n", m->msg_len, mqtt_msgPUBREC(m, 11)); | mqtt_msgFree(&m, 0); |
| m = mqtt_msgPUBREC(11); | |
| printf("pubrec=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read pubrec=%d\n", mqtt_readPUBREC(m)); | printf("read pubrec=%d\n", mqtt_readPUBREC(m)); |
| printf("pubrel=%d/%d\n", m->msg_len, mqtt_msgPUBREL(m, 12)); | mqtt_msgFree(&m, 0); |
| m = mqtt_msgPUBREL(12); | |
| printf("pubrel=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read pubrel=%d\n", mqtt_readPUBREL(m)); | printf("read pubrel=%d\n", mqtt_readPUBREL(m)); |
| printf("pubcomp=%d/%d\n", m->msg_len, mqtt_msgPUBCOMP(m, 13)); | mqtt_msgFree(&m, 0); |
| m = mqtt_msgPUBCOMP(13); | |
| printf("pubcomp=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read pubcomp=%d\n", mqtt_readPUBCOMP(m)); | printf("read pubcomp=%d\n", mqtt_readPUBCOMP(m)); |
| mqtt_msgFree(&m, 0); | |
| getchar(); | getchar(); |
| /* sub* */ | /* sub* */ |
| memset(s, 0, sizeof s); | memset(s, 0, sizeof s); |
| s[0].sub_topic.msg_len = 3; | s[0].sub_topic.msg_len = 3; |
| s[0].sub_topic.msg_base = "a/b"; | s[0].sub_topic.msg_base = "a/b"; |
| s[0].sub_ret = MQTT_QOS_ACK; | s[0].sub_qos = MQTT_QOS_ACK; |
| s[1].sub_topic.msg_len = 3; | s[1].sub_topic.msg_len = 3; |
| s[1].sub_topic.msg_base = "c/d"; | s[1].sub_topic.msg_base = "c/d"; |
| s[1].sub_ret = MQTT_QOS_ONCE; | s[1].sub_qos = MQTT_QOS_ONCE; |
| s[2].sub_topic.msg_len = 7; | s[2].sub_topic.msg_len = 7; |
| s[2].sub_topic.msg_base = "x/y/z/Q"; | s[2].sub_topic.msg_base = "x/y/z/Q"; |
| s[2].sub_ret = MQTT_QOS_EXACTLY; | s[2].sub_qos = MQTT_QOS_EXACTLY; |
| printf("subscribe=%d/%d\n", m->msg_len, mqtt_msgSUBSCRIBE(m, s, 10, 0, 0)); | m = mqtt_msgSUBSCRIBE(s, 10); |
| printf("subscribe=%d/%p\n", m->msg_len, m); | |
| /* | |
| for (i = 0; i < m->msg_len; i++) | for (i = 0; i < m->msg_len; i++) |
| printf("%d\n", ((u_char*) m->msg_base)[i]); | printf("%d\n", ((u_char*) m->msg_base)[i]); |
| */ | |
| if (mqtt_readSUBSCRIBE(m, &msgID, &ss) == -1) { | if (mqtt_readSUBSCRIBE(m, &msgID, &ss) == -1) { |
| printf("Error:: mqtt_readSUBSCRIBE() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); | printf("Error:: mqtt_readSUBSCRIBE() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); |
| mqtt_msgFree(&m, 0); | |
| return 3; | return 3; |
| } | } |
| printf("read subscribe: dup=%d qos=%d retain=%d\n", hdr->mqtt_msg.dup, hdr->mqtt_msg.qos, hdr->mqtt_msg.retain); | printf("read subscribe: dup=%d qos=%d retain=%d\n", hdr->mqtt_msg.dup, hdr->mqtt_msg.qos, hdr->mqtt_msg.retain); |
| printf("++> MessageID=%d\n", msgID); | printf("++> MessageID=%d\n", msgID); |
| for (i = 0; ss[i].sub_topic.msg_base; i++) | for (i = 0; ss[i].sub_topic.msg_base; i++) |
| printf(" >>> QoS=%d Topic(%d)=%s\n", ss[i].sub_ret, ss[i].sub_topic.msg_len, | printf(" >>> QoS=%d Topic(%d)=%s\n", ss[i].sub_qos, ss[i].sub_topic.msg_len, |
| (char*) ss[i].sub_topic.msg_base); | (char*) ss[i].sub_topic.msg_base); |
| mqtt_msgFree(&m, 0); | |
| mqtt_subFree(&ss); | mqtt_subFree(&ss); |
| printf("suback=%d/%d\n", m->msg_len, mqtt_msgSUBACK(m, s, 10)); | |
| m = mqtt_msgSUBACK(s, 10); | |
| printf("suback=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read suback=%d\n", (len = mqtt_readSUBACK(m, &msgID, &qoses))); | printf("read suback=%d\n", (len = mqtt_readSUBACK(m, &msgID, &qoses))); |
| for (i = 0; i < len; i++) | for (i = 0; i < len; i++) |
| printf(" >>> QoS=%d\n", qoses[i]); | printf(" >>> QoS=%d\n", qoses[i]); |
| free(qoses); | mqtt_msgFree(&m, 0); |
| printf("unsubscribe=%d/%d\n", m->msg_len, mqtt_msgUNSUBSCRIBE(m, s, 10, 0, 1)); | e_free(qoses); |
| m = mqtt_msgUNSUBSCRIBE(s, 10, 0, 1); | |
| printf("unsubscribe=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| if (mqtt_readUNSUBSCRIBE(m, &msgID, &ss) == -1) { | if (mqtt_readUNSUBSCRIBE(m, &msgID, &ss) == -1) { |
| printf("Error:: mqtt_readUNSUBSCRIBE() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); | printf("Error:: mqtt_readUNSUBSCRIBE() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); |
| mqtt_msgFree(&m, 0); | |
| return 3; | return 3; |
| } | } |
| printf("read unsubscribe: dup=%d qos=%d retain=%d\n", hdr->mqtt_msg.dup, hdr->mqtt_msg.qos, hdr->mqtt_msg.retain); | printf("read unsubscribe: dup=%d qos=%d retain=%d\n", hdr->mqtt_msg.dup, hdr->mqtt_msg.qos, hdr->mqtt_msg.retain); |
| printf("++> MessageID=%d\n", msgID); | printf("++> MessageID=%d\n", msgID); |
| for (i = 0; ss[i].sub_topic.msg_base; i++) | for (i = 0; ss[i].sub_topic.msg_base; i++) |
| printf(" >>> Topic(%d)=%s\n", ss[i].sub_topic.msg_len, (char*) ss[i].sub_topic.msg_base); | printf(" >>> Topic(%d)=%s\n", ss[i].sub_topic.msg_len, (char*) ss[i].sub_topic.msg_base); |
| mqtt_msgFree(&m, 0); | |
| mqtt_subFree(&ss); | mqtt_subFree(&ss); |
| printf("unsuback=%d/%d\n", m->msg_len, mqtt_msgUNSUBACK(m, 10)); | |
| m = mqtt_msgUNSUBACK(10); | |
| printf("unsuback=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read unsuback=%d\n", mqtt_readUNSUBACK(m)); | printf("read unsuback=%d\n", mqtt_readUNSUBACK(m)); |
| mqtt_msgFree(&m, 0); | |
| getchar(); | getchar(); |
| /* ping* */ | /* ping* */ |
| printf("pingreq=%d/%d\n", m->msg_len, mqtt_msgPINGREQ(m)); | m = mqtt_msgPINGREQ(); |
| printf("pingreq=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read pingreq=%d\n", mqtt_readPINGREQ(m)); | printf("read pingreq=%d\n", mqtt_readPINGREQ(m)); |
| printf("pingresp=%d/%d\n", m->msg_len, mqtt_msgPINGRESP(m)); | mqtt_msgFree(&m, 0); |
| m = mqtt_msgPINGRESP(); | |
| printf("pingresp=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read pingresp=%d\n", mqtt_readPINGRESP(m)); | printf("read pingresp=%d\n", mqtt_readPINGRESP(m)); |
| mqtt_msgFree(&m, 0); | |
| printf("disconnect=%d/%d\n", m->msg_len, mqtt_msgDISCONNECT(m)); | m = mqtt_msgDISCONNECT(); |
| printf("disconnect=%d/%p\n", m->msg_len, m); | |
| // for (i = 0; i < m->msg_len; i++) | // for (i = 0; i < m->msg_len; i++) |
| // printf("%d\n", ((u_char*) m->msg_base)[i]); | // printf("%d\n", ((u_char*) m->msg_base)[i]); |
| printf("read disconnect=%d\n", mqtt_readDISCONNECT(m)); | printf("read disconnect=%d\n", mqtt_readDISCONNECT(m)); |
| mqtt_msgFree(&m, 0); | |
| mqtt_msgFree(&m, 42); | |
| return 0; | return 0; |
| } | } |