From 708bd2e3cf0a7aa825e6da96caaec55bd271f896 Mon Sep 17 00:00:00 2001 From: fusion32 Date: Tue, 7 Oct 2025 22:28:46 -0300 Subject: worker initialization robustness + query processing --- src/connections.cc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'src/connections.cc') diff --git a/src/connections.cc b/src/connections.cc index ecd8d4e..91fde30 100644 --- a/src/connections.cc +++ b/src/connections.cc @@ -244,6 +244,12 @@ void CheckConnectionInput(TConnection *Connection, int Events){ } } +void ProcessQuery(TConnection *Connection){ + ASSERT(Connection->Query != NULL); + QueryEnqueue(Connection->Query); + Connection->State = CONNECTION_RESPONSE; +} + void SendQueryResponse(TConnection *Connection){ ASSERT(Connection->Query != NULL); if(Connection->State != CONNECTION_RESPONSE){ @@ -322,7 +328,7 @@ void CheckConnectionQueryRequest(TConnection *Connection){ Connection->RemoteAddress, LoginData); Connection->Authorized = true; Connection->ApplicationType = APPLICATION_TYPE_GAME; - QueryEnqueue(Query); + ProcessQuery(Connection); }else{ // TODO(fusion): This should probably be a PANIC? LOG_ERR("Rejecting connection %s: unable to rewrite login query..." @@ -377,7 +383,7 @@ void CheckConnectionQueryRequest(TConnection *Connection){ || QueryType == QUERY_EXCLUDE_FROM_AUCTIONS || QueryType == QUERY_CANCEL_HOUSE_TRANSFER || QueryType == QUERY_LOAD_WORLD_CONFIG){ - QueryEnqueue(Connection->Query); + ProcessQuery(Connection); }else{ LOG_ERR("Unknown GAME query %d from %s", QueryType, Connection->RemoteAddress); @@ -385,7 +391,7 @@ void CheckConnectionQueryRequest(TConnection *Connection){ } }else if(Connection->ApplicationType == APPLICATION_TYPE_LOGIN){ if(QueryType == QUERY_LOGIN_ACCOUNT){ - QueryEnqueue(Connection->Query); + ProcessQuery(Connection); }else{ LOG_ERR("Unknown LOGIN query %d from %s", QueryType, Connection->RemoteAddress); @@ -400,7 +406,7 @@ void CheckConnectionQueryRequest(TConnection *Connection){ || QueryType == QUERY_GET_WORLDS || QueryType == QUERY_GET_ONLINE_CHARACTERS || QueryType == QUERY_GET_KILL_STATISTICS){ - QueryEnqueue(Connection->Query); + ProcessQuery(Connection); }else{ LOG_ERR("Unknown WEB query %d from %s", QueryType, Connection->RemoteAddress); @@ -555,11 +561,6 @@ bool InitConnections(void){ ASSERT(g_Listener == -1); ASSERT(g_Connections == NULL); - LOG("Query manager port: %d", g_Config.QueryManagerPort); - LOG("Query buffer size: %d", g_Config.QueryBufferSize); - LOG("Max connections: %d", g_Config.MaxConnections); - LOG("Max connection idle time: %dms", g_Config.MaxConnectionIdleTime); - g_Listener = ListenerBind((uint16)g_Config.QueryManagerPort); if(g_Listener == -1){ LOG_ERR("Failed to bind listener"); -- cgit v1.2.3