Send puback for qos > 0

This commit is contained in:
Sergey Lyubka committed 2022-06-08 19:51:03 +01:00
1 parent bcb6c2675f
commit d4106b5cbd
2 files changed
+11 -1

No files matched your search

+6 -1
View File
@@ -1610,7 +1610,7 @@ static void listdir(struct mg_connection *c, struct mg_http_message *hm,
MG_VERSION);
n = mg_snprintf(tmp, sizeof(tmp), "%lu", (unsigned long) (c->send.len - off));
if (n > sizeof(tmp)) n = 0;
memcpy(c->send.buf + off - 10, tmp, n); // Set content length
memcpy(c->send.buf + off - 12, tmp, n); // Set content length
}
static void remove_double_dots(char *s) {
@@ -3332,6 +3332,11 @@ static void mqtt_cb(struct mg_connection *c, int ev, void *ev_data,
case MQTT_CMD_PUBLISH: {
MG_DEBUG(("%lu [%.*s] -> [%.*s]", c->id, (int) mm.topic.len,
mm.topic.ptr, (int) mm.data.len, mm.data.ptr));
if (mm.qos > 0) {
uint16_t id = mg_htons(mm.id);
mg_mqtt_send_header(c, MQTT_CMD_PUBACK, 0, sizeof(id));
mg_send(c, &id, sizeof(id));
}
mg_call(c, MG_EV_MQTT_MSG, &mm);
break;
}
+5
View File
@@ -228,6 +228,11 @@ static void mqtt_cb(struct mg_connection *c, int ev, void *ev_data,
case MQTT_CMD_PUBLISH: {
MG_DEBUG(("%lu [%.*s] -> [%.*s]", c->id, (int) mm.topic.len,
mm.topic.ptr, (int) mm.data.len, mm.data.ptr));
if (mm.qos > 0) {
uint16_t id = mg_htons(mm.id);
mg_mqtt_send_header(c, MQTT_CMD_PUBACK, 0, sizeof(id));
mg_send(c, &id, sizeof(id));
}
mg_call(c, MG_EV_MQTT_MSG, &mm);
break;
}