mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-09-26 03:43:47 +08:00
Do proper cleanup, including websockets.
This commit is contained in:
@@ -130,7 +130,11 @@ int mosquitto_main_loop(struct mosquitto_db *db, int *listensock, int listensock
|
||||
}
|
||||
context->pollfd_index = -1;
|
||||
|
||||
#ifdef WITH_WEBSOCKETS
|
||||
if(context->sock != INVALID_SOCKET || context->wsi){
|
||||
#else
|
||||
if(context->sock != INVALID_SOCKET){
|
||||
#endif
|
||||
#ifdef WITH_BRIDGE
|
||||
if(context->bridge){
|
||||
_mosquitto_check_keepalive(db, context);
|
||||
@@ -348,6 +352,9 @@ static void do_disconnect(struct mosquitto_db *db, struct mosquitto *context)
|
||||
}
|
||||
}
|
||||
mqtt3_context_disconnect(db, context);
|
||||
if(context->clean_session){
|
||||
mqtt3_context_cleanup(db, context, true);
|
||||
}
|
||||
}
|
||||
|
||||
/* Error ocurred, probably an fd has been closed.
|
||||
|
||||
+5
-1
@@ -129,7 +129,11 @@ static int callback_mqtt(struct libwebsocket_context *context,
|
||||
|
||||
case LWS_CALLBACK_CLOSED:
|
||||
mosq = u->mosq;
|
||||
mqtt3_context_cleanup(db, mosq, true);
|
||||
mqtt3_context_disconnect(db, mosq);
|
||||
if(context->clean_session){
|
||||
mqtt3_context_cleanup(db, mosq, true);
|
||||
}
|
||||
mosq->wsi = NULL;
|
||||
break;
|
||||
|
||||
case LWS_CALLBACK_SERVER_WRITEABLE:
|
||||
|
||||
Reference in New Issue
Block a user