--- mqtt/src/mqttd_calls.c 2012/06/19 08:32:17 1.2.2.22 +++ mqtt/src/mqttd_calls.c 2012/06/20 09:23:28 1.2.2.23 @@ -87,8 +87,9 @@ pubOnce(struct tagSession *sess, char * __restrict psT } if (!regexec(&re, psTopic, 1, &match, 0)) { /* MATCH */ + ioDEBUG(1, "+++ dlen=%d\n", datlen); p = mkPkt(sess->sess_buf->msg_base, datlen); - schedWrite(root, sendPacket, p, sess->sess_sock, NULL, 0); + schedWrite(root, sendPacket, p, s->sess_sock, NULL, 0); } regfree(&re); @@ -145,7 +146,7 @@ cmdPUBLISH(void *srv, int len, void *arg) hdr = (struct mqtthdr*) sess->sess_buf->msg_base; switch (hdr->mqtt_msg.qos) { case MQTT_QOS_ACK: - pubAck(sess, szTopic, siz); + pubAck(sess, szTopic, mqtt_pktLen(hdr)); siz = mqtt_msgPUBACK(sess->sess_buf, mid); if (siz == -1) { ioDEBUG(5, "Error:: in msgPUBACK #%d - %s", @@ -154,7 +155,7 @@ cmdPUBLISH(void *srv, int len, void *arg) } break; case MQTT_QOS_EXACTLY: - pubExactly(sess, szTopic, siz); + pubExactly(sess, szTopic, mqtt_pktLen(hdr)); siz = mqtt_msgPUBREC(sess->sess_buf, mid); if (siz == -1) { ioDEBUG(5, "Error:: in msgPUBREC #%d - %s", @@ -163,7 +164,7 @@ cmdPUBLISH(void *srv, int len, void *arg) } break; case MQTT_QOS_ONCE: - pubOnce(sess, szTopic, siz); + pubOnce(sess, szTopic, mqtt_pktLen(hdr)); default: return 0; }