diff --git a/src/handle_auth.c b/src/handle_auth.c index c2908f84..bcf9c98d 100644 --- a/src/handle_auth.c +++ b/src/handle_auth.c @@ -129,10 +129,12 @@ int handle__auth(struct mosquitto *context) will__clear(context); } if(rc == MOSQ_ERR_AUTH){ - send__connack(context, 0, MQTT_RC_NOT_AUTHORIZED, NULL); if(context->state == mosq_cs_authenticating){ + send__connack(context, 0, MQTT_RC_NOT_AUTHORIZED, NULL); mosquitto__free(context->id); context->id = NULL; + }else{ + send__disconnect(context, MQTT_RC_NOT_AUTHORIZED, NULL); } return MOSQ_ERR_PROTOCOL; }else if(rc == MOSQ_ERR_NOT_SUPPORTED){