diff --git a/src/handle_connect.c b/src/handle_connect.c index 4246af16..a510df77 100644 --- a/src/handle_connect.c +++ b/src/handle_connect.c @@ -578,6 +578,7 @@ int handle__connect(struct mosquitto_db *db, struct mosquitto *context) } found_context->clean_session = true; + found_context->state = mosq_cs_expiring; do_disconnect(db, found_context); } diff --git a/src/loop.c b/src/loop.c index 507b81be..1c7b4d2e 100644 --- a/src/loop.c +++ b/src/loop.c @@ -608,7 +608,9 @@ void do_disconnect(struct mosquitto_db *db, struct mosquitto *context) }else{ id = ""; } - if(context->state != mosq_cs_disconnecting){ + if (context->state == mosq_cs_expiring){ + log__printf(NULL, MOSQ_LOG_NOTICE, "Expiring old client session %s, disconnecting.", id); + }else if(context->state != mosq_cs_disconnecting){ log__printf(NULL, MOSQ_LOG_NOTICE, "Socket error on client %s, disconnecting.", id); }else{ log__printf(NULL, MOSQ_LOG_NOTICE, "Client %s disconnected.", id);