--- mqtt/src/mqttd_calls.c 2012/06/26 08:05:58 1.2.2.26 +++ mqtt/src/mqttd_calls.c 2012/06/26 13:43:59 1.2.2.27 @@ -103,8 +103,10 @@ pubAck(struct tagSession *sess, u_short mid, char * __ hdr = (struct mqtthdr*) sess->sess_buf->msg_base; /* write topic to database */ + call.DeletePUB_topic(&cfg, pub, sess->sess_cid, mid, psTopic, sess->sess_user, + sess->sess_addr, hdr->mqtt_msg.retain); call.WritePUB_topic(&cfg, pub, sess->sess_cid, mid, psTopic, AIT_GET_BUF(p), AIT_LEN(p), - sess->sess_user, sess->sess_addr, hdr->mqtt_msg.retain); + sess->sess_user, sess->sess_addr, hdr->mqtt_msg.qos, hdr->mqtt_msg.retain); TAILQ_FOREACH(s, &Sessions, sess_node) { SLIST_FOREACH(st, &s->sess_subscr, st_node) { @@ -127,7 +129,8 @@ pubAck(struct tagSession *sess, u_short mid, char * __ if (!flg) freePkt(&p); - call.DeletePUB_topic(&cfg, pub, sess->sess_cid, mid, psTopic, sess->sess_user, sess->sess_addr, -1); + call.DeletePUB_topic(&cfg, pub, sess->sess_cid, mid, psTopic, sess->sess_user, + sess->sess_addr, 0); return 0; }