mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-09-25 11:15:54 +08:00
Disconnect websockets clients properly.
context->state was being overwritten when websockets clients attempted to disconnect, leaving them in limbo. This has been fixed. Thanks to FeelyChau.
This commit is contained in:
+3
-4
@@ -353,8 +353,9 @@ void do_disconnect(struct mosquitto_db *db, struct mosquitto *context)
|
||||
libwebsocket_callback_on_writable(context->ws_context, context->wsi);
|
||||
}
|
||||
context->sock = INVALID_SOCKET;
|
||||
}else{
|
||||
}else
|
||||
#endif
|
||||
{
|
||||
if(db->config->connection_messages == true){
|
||||
if(context->state != mosq_cs_disconnecting){
|
||||
_mosquitto_log_printf(NULL, MOSQ_LOG_NOTICE, "Socket error on client %s, disconnecting.", context->id);
|
||||
@@ -375,10 +376,8 @@ void do_disconnect(struct mosquitto_db *db, struct mosquitto *context)
|
||||
context->id = NULL;
|
||||
}
|
||||
}
|
||||
#ifdef WITH_WEBSOCKETS
|
||||
context->state = mosq_cs_disconnected;
|
||||
}
|
||||
#endif
|
||||
context->state = mosq_cs_disconnected;
|
||||
}
|
||||
|
||||
/* Error ocurred, probably an fd has been closed.
|
||||
|
||||
Reference in New Issue
Block a user