diff --git a/lib/connect.c b/lib/connect.c index f0f36914..69e98216 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -230,6 +230,6 @@ int mosquitto_disconnect_with_properties(struct mosquitto *mosq, const mosquitto pthread_mutex_unlock(&mosq->state_mutex); if(mosq->sock == INVALID_SOCKET) return MOSQ_ERR_NO_CONN; - return send__disconnect(mosq, properties); + return send__disconnect(mosq, reason_code, properties); } diff --git a/lib/send_disconnect.c b/lib/send_disconnect.c index d29a153e..120ef82f 100644 --- a/lib/send_disconnect.c +++ b/lib/send_disconnect.c @@ -32,7 +32,7 @@ Contributors: #include "send_mosq.h" -int send__disconnect(struct mosquitto *mosq, const mosquitto_property *properties) +int send__disconnect(struct mosquitto *mosq, uint8_t reason_code, const mosquitto_property *properties) { struct mosquitto__packet *packet = NULL; int rc; @@ -66,7 +66,7 @@ int send__disconnect(struct mosquitto *mosq, const mosquitto_property *propertie return rc; } if(mosq->protocol == mosq_p_mqtt5){ - packet__write_byte(packet, 0); + packet__write_byte(packet, reason_code); property__write_all(packet, properties); } diff --git a/lib/send_mosq.h b/lib/send_mosq.h index fdf3b7ea..c26615be 100644 --- a/lib/send_mosq.h +++ b/lib/send_mosq.h @@ -24,7 +24,7 @@ int send__command_with_mid(struct mosquitto *mosq, uint8_t command, uint16_t mid int send__real_publish(struct mosquitto *mosq, uint16_t mid, const char *topic, uint32_t payloadlen, const void *payload, int qos, bool retain, bool dup, const mosquitto_property *properties); int send__connect(struct mosquitto *mosq, uint16_t keepalive, bool clean_session, const mosquitto_property *properties); -int send__disconnect(struct mosquitto *mosq, const mosquitto_property *properties); +int send__disconnect(struct mosquitto *mosq, uint8_t reason_code, const mosquitto_property *properties); int send__pingreq(struct mosquitto *mosq); int send__pingresp(struct mosquitto *mosq); int send__puback(struct mosquitto *mosq, uint16_t mid);