diff --git a/src/sp/protocol/mqtt/mqtt_parser.c b/src/sp/protocol/mqtt/mqtt_parser.c index e5e2c942..30871e80 100644 --- a/src/sp/protocol/mqtt/mqtt_parser.c +++ b/src/sp/protocol/mqtt/mqtt_parser.c @@ -683,8 +683,8 @@ nmq_connack_encode(nng_msg *msg, conn_param *cparam, uint8_t reason) nng_msg_header_append(msg, &cmd, 1); nng_msg_header_append(msg, var_len, bytes); - print_hex("Header: ", nni_msg_header(msg), nni_msg_header_len(msg)); - print_hex("Body: ", nni_msg_body(msg), nni_msg_len(msg)); + // print_hex("Header: ", nni_msg_header(msg), nni_msg_header_len(msg)); + // print_hex("Body: ", nni_msg_body(msg), nni_msg_len(msg)); } /** @@ -949,7 +949,8 @@ nano_msg_notify_disconnect(conn_param *cparam, uint8_t code) string.len = strlen(string.body); topic.body = DISCONNECT_TOPIC; topic.len = strlen(DISCONNECT_TOPIC); - msg = nano_msg_composer(&msg, 0, 0, &string, &topic, cparam->pro_ver); + // V4 notification msg as default + msg = nano_msg_composer(&msg, 0, 0, &string, &topic, PROTOCOL_VERSION_v311); return msg; } @@ -966,7 +967,7 @@ nano_msg_notify_connect(conn_param *cparam, uint8_t code) string.len = strlen(string.body); topic.body = CONNECT_TOPIC; topic.len = strlen(CONNECT_TOPIC); - msg = nano_msg_composer(&msg, 0, 0, &string, &topic, cparam->pro_ver); + msg = nano_msg_composer(&msg, 0, 0, &string, &topic, PROTOCOL_VERSION_v311); return msg; } diff --git a/src/sp/protocol/mqtt/nmq_mqtt.c b/src/sp/protocol/mqtt/nmq_mqtt.c index 7a6edacf..d3dc29f3 100644 --- a/src/sp/protocol/mqtt/nmq_mqtt.c +++ b/src/sp/protocol/mqtt/nmq_mqtt.c @@ -756,8 +756,7 @@ nano_pipe_close(void *arg) // depends on MQTT V5 reason code // create disconnect event msg if (p->event) { - msg = - nano_msg_notify_disconnect(p->conn_param, p->reason_code); + msg = nano_msg_notify_disconnect(p->conn_param, p->reason_code); if (msg == NULL) { nni_mtx_unlock(&s->lk); return; @@ -773,6 +772,7 @@ nano_pipe_close(void *arg) nni_list_remove(&s->recvq, ctx); nni_mtx_unlock(&s->lk); nni_aio_set_msg(aio, msg); + // must be sync due to conn_param racing. nni_aio_finish_sync(aio, 0, nni_msg_len(msg)); return; } else {