From 83eb1ecf61e80ba23781f936daeeb35799cb843b Mon Sep 17 00:00:00 2001 From: gc87 Date: Fri, 16 Sep 2022 14:06:34 +0800 Subject: [PATCH] fix(mqtt): non-user login to rabbitmq auth failed - empty user name login to rqbbitmq login failed for user '' --- src/connection/mqtt_c_client.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/connection/mqtt_c_client.c b/src/connection/mqtt_c_client.c index 67b6c3d1..2f883bae 100644 --- a/src/connection/mqtt_c_client.c +++ b/src/connection/mqtt_c_client.c @@ -509,9 +509,19 @@ static void client_reconnect(struct mqtt_client *mqtt, void **p_reconnect_state) const char *will_payload = state->will_payload; size_t payload_len = state->will_payload_len; - enum MQTTErrors rc = mqtt_connect( - mqtt, client_id, will_topic, will_payload, payload_len, state->username, - state->password, connect_flags, state->keepalive); + char *username = NULL; + if (NULL != state->username && 0 < strlen(state->username)) { + username = state->username; + } + + char *password = NULL; + if (NULL != state->password && 0 < strlen(state->password)) { + password = state->password; + } + + enum MQTTErrors rc = + mqtt_connect(mqtt, client_id, will_topic, will_payload, payload_len, + username, password, connect_flags, state->keepalive); if (MQTT_OK != rc) { return;