--- libaitmqtt/example/cmds.c 2012/04/27 15:15:12 1.1.1.1.2.2 +++ libaitmqtt/example/cmds.c 2012/06/21 13:47:29 1.2.2.1 @@ -14,7 +14,7 @@ main() mqtthdr_connack_t cack; u_short ka, msgID; int i, len; - char cid[BUFSIZ], user[BUFSIZ], pass[BUFSIZ], topic[BUFSIZ], message[BUFSIZ], *t, *msg; + char cid[BUFSIZ], user[BUFSIZ], pass[BUFSIZ], topic[BUFSIZ], *t, *msg, *pub; struct mqtthdr *hdr; u_char *qoses; @@ -48,13 +48,14 @@ main() printf("publish=%d/%d\n", m->msg_len, mqtt_msgPUBLISH(m, "AAA/bbb/CCC/ddd", 7, 0, 2, 0, "OLE!!!", 7)); for (i = 0; i < m->msg_len; i++) printf("%d\n", ((u_char*) m->msg_base)[i]); - len = sizeof message; - if (!mqtt_readPUBLISH(m, topic, sizeof topic, &msgID, message, &len)) { + if (!(len = mqtt_readPUBLISH(m, topic, sizeof topic, &msgID, (void**) &pub))) { printf("Error:: mqtt_readPUBLISH() #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); return 2; - } + } else + 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("++> topic=%s MessageID=%d DATA=(%d)%s\n", topic, msgID, len, message); + printf("++> topic=%s MessageID=%d DATA=(%d)%s\n", topic, msgID, len, pub); + free(pub); printf("puback=%d/%d\n", m->msg_len, mqtt_msgPUBACK(m, 10)); for (i = 0; i < m->msg_len; i++) printf("%d\n", ((u_char*) m->msg_base)[i]);