@ -7,6 +7,8 @@
@@ -7,6 +7,8 @@
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
# include "NetworkServer.h"
# include "ResourceManager.h"
# include "LogManager.h"
# include <cstring>
# ifndef WIN32
@ -33,6 +35,17 @@ const char yes = 1;
@@ -33,6 +35,17 @@ const char yes = 1;
using namespace std : : chrono_literals ;
NetworkClientInfo : : ~ NetworkClientInfo ( )
{
if ( client_sock ! = INVALID_SOCKET )
{
LOG_NOTICE ( " Closing server connection: %s " , client_ip ) ;
delete client_listen_thread ;
shutdown ( client_sock , SD_RECEIVE ) ;
closesocket ( client_sock ) ;
}
}
NetworkServer : : NetworkServer ( std : : vector < RGBController * > & control ) : controllers ( control )
{
port_num = OPENRGB_SDK_PORT ;
@ -280,17 +293,17 @@ void NetworkServer::StopServer()
@@ -280,17 +293,17 @@ void NetworkServer::StopServer()
server_online = false ;
ServerClientsMutex . lock ( ) ;
for ( unsigned int client_idx = 0 ; client_idx < ServerClients . size ( ) ; client_idx + + )
{
shutdown ( ServerClients [ client_idx ] - > client_sock , SD_RECEIVE ) ;
closesocket ( ServerClients [ client_idx ] - > client_sock ) ;
delete ServerClients [ client_idx ] ;
}
ServerClients . clear ( ) ;
shutdown ( server_sock , SD_RECEIVE ) ;
closesocket ( server_sock ) ;
ServerClients . clear ( ) ;
ServerClientsMutex . unlock ( ) ;
if ( ConnectionThread )
@ -726,9 +739,6 @@ void NetworkServer::ListenThreadFunction(NetworkClientInfo * client_info)
@@ -726,9 +739,6 @@ void NetworkServer::ListenThreadFunction(NetworkClientInfo * client_info)
}
listen_done :
printf ( " Server connection closed \r \n " ) ;
shutdown ( client_info - > client_sock , SD_RECEIVE ) ;
closesocket ( client_info - > client_sock ) ;
ServerClientsMutex . lock ( ) ;
@ -736,13 +746,14 @@ listen_done:
@@ -736,13 +746,14 @@ listen_done:
{
if ( ServerClients [ this_idx ] = = client_info )
{
delete client_info - > client_listen_thread ;
delete client_info ;
ServerClients . erase ( ServerClients . begin ( ) + this_idx ) ;
break ;
}
}
client_info = nullptr ;
ServerClientsMutex . unlock ( ) ;
/*-------------------------------------------------*\