IP and Port from config

This commit is contained in:
HikikoMarmy
2025-02-20 02:38:30 +00:00
parent 9d26fcc01a
commit 5123cc95f8
3 changed files with 23 additions and 17 deletions

View File

@@ -1,16 +1,16 @@
#include "../../global_define.h" #include "../../global_define.h"
#include "GetServerAddressEvent.h" #include "GetServerAddressEvent.h"
void RequestGetServerAddress::Deserialize( sptr_tcp_socket socket, sptr_byte_stream stream ) void RequestGetServerAddress::Deserialize( sptr_byte_stream stream )
{ {
DeserializeHeader( stream ); DeserializeHeader( stream );
} }
sptr_generic_response RequestGetServerAddress::ProcessRequest( sptr_tcp_socket socket, sptr_byte_stream stream ) sptr_generic_response RequestGetServerAddress::ProcessRequest( sptr_byte_stream stream )
{ {
Deserialize( socket, stream ); Deserialize( stream);
return std::make_shared< ResultGetServerAddress >( this, "192.168.1.248", 40810 ); return std::make_shared< ResultGetServerAddress >( this, Config::service_ip, Config::lobby_port );
} }
ResultGetServerAddress::ResultGetServerAddress( GenericRequest *request, std::string ip, int32_t port ) : GenericResponse( *request ) ResultGetServerAddress::ResultGetServerAddress( GenericRequest *request, std::string ip, int32_t port ) : GenericResponse( *request )

View File

@@ -6,8 +6,8 @@ public:
{ {
return std::make_unique< RequestGetServerAddress >(); return std::make_unique< RequestGetServerAddress >();
} }
sptr_generic_response ProcessRequest( sptr_tcp_socket socket, sptr_byte_stream stream ) override; sptr_generic_response ProcessRequest( sptr_byte_stream stream ) override;
void Deserialize( sptr_tcp_socket socket, sptr_byte_stream stream ) override; void Deserialize( sptr_byte_stream stream ) override;
}; };
class ResultGetServerAddress : public GenericResponse { class ResultGetServerAddress : public GenericResponse {

View File

@@ -51,7 +51,15 @@ void GatewayServer::Start( std::string ip, int32_t port )
sockaddr_in service; sockaddr_in service;
service.sin_family = AF_INET; service.sin_family = AF_INET;
service.sin_port = htons( port ); service.sin_port = htons( port );
service.sin_addr.s_addr = ADDR_ANY;
if( ip == "0.0.0.0" )
{
service.sin_addr.s_addr = ADDR_ANY;
}
else
{
service.sin_addr.s_addr = inet_addr( ip.c_str() );
}
if( bind( m_listenSocket, ( SOCKADDR * )&service, sizeof( service ) ) == SOCKET_ERROR ) if( bind( m_listenSocket, ( SOCKADDR * )&service, sizeof( service ) ) == SOCKET_ERROR )
{ {
@@ -147,12 +155,13 @@ void GatewayServer::AcceptNewClient()
auto new_client = std::make_shared< RealmTCPSocket >(); auto new_client = std::make_shared< RealmTCPSocket >();
new_client->fd = clientSocket; new_client->fd = clientSocket;
new_client->remote_address = clientInfo; new_client->remote_addr = clientInfo;
new_client->peer_ip_address = inet_ntoa( clientInfo.sin_addr ); new_client->remote_ip = inet_ntoa( clientInfo.sin_addr );
new_client->remote_port = ntohs( clientInfo.sin_port );
m_clientSockets.push_back( new_client ); m_clientSockets.push_back( new_client );
Log::Info( "[GATEWAY] New client connected : (%s)", new_client->peer_ip_address.c_str() ); Log::Info( "[GATEWAY] New client connected : (%s)", new_client->remote_ip.c_str() );
} }
void GatewayServer::ReadSocket( sptr_tcp_socket socket ) void GatewayServer::ReadSocket( sptr_tcp_socket socket )
@@ -194,8 +203,6 @@ void GatewayServer::ReadSocket( sptr_tcp_socket socket )
break; break;
} }
Log::Packet( socket->m_pendingReadBuffer, packetSize, false );
auto stream = std::make_shared< ByteStream >( socket->m_pendingReadBuffer.data() + 4, packetSize - 4 ); auto stream = std::make_shared< ByteStream >( socket->m_pendingReadBuffer.data() + 4, packetSize - 4 );
// Erase the packet from the buffer // Erase the packet from the buffer
@@ -220,8 +227,6 @@ void GatewayServer::WriteSocket( sptr_tcp_socket socket )
size_t totalBytesSent = 0; size_t totalBytesSent = 0;
Log::Packet( socket->m_pendingWriteBuffer, ( int )socket->m_pendingWriteBuffer.size(), true );
while( true ) while( true )
{ {
auto chunkSize = std::min< size_t >( socket->m_pendingWriteBuffer.size(), 1024 ); auto chunkSize = std::min< size_t >( socket->m_pendingWriteBuffer.size(), 1024 );
@@ -264,7 +269,8 @@ void GatewayServer::HandleRequest( sptr_tcp_socket socket, sptr_byte_stream stre
Log::Debug( "[GATEWAY] Request processed : 0x%04X", packetId ); Log::Debug( "[GATEWAY] Request processed : 0x%04X", packetId );
auto request = it->second(); auto request = it->second();
auto res = request->ProcessRequest( socket, stream ); if (auto res = request->ProcessRequest(stream))
{
socket->send( res ); socket->send(res);
}
} }