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 "GetServerAddressEvent.h"
void RequestGetServerAddress::Deserialize( sptr_tcp_socket socket, sptr_byte_stream stream )
void RequestGetServerAddress::Deserialize( sptr_byte_stream 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 )

View File

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

View File

@@ -51,7 +51,15 @@ void GatewayServer::Start( std::string ip, int32_t port )
sockaddr_in service;
service.sin_family = AF_INET;
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 )
{
@@ -147,12 +155,13 @@ void GatewayServer::AcceptNewClient()
auto new_client = std::make_shared< RealmTCPSocket >();
new_client->fd = clientSocket;
new_client->remote_address = clientInfo;
new_client->peer_ip_address = inet_ntoa( clientInfo.sin_addr );
new_client->remote_addr = clientInfo;
new_client->remote_ip = inet_ntoa( clientInfo.sin_addr );
new_client->remote_port = ntohs( clientInfo.sin_port );
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 )
@@ -194,8 +203,6 @@ void GatewayServer::ReadSocket( sptr_tcp_socket socket )
break;
}
Log::Packet( socket->m_pendingReadBuffer, packetSize, false );
auto stream = std::make_shared< ByteStream >( socket->m_pendingReadBuffer.data() + 4, packetSize - 4 );
// Erase the packet from the buffer
@@ -220,8 +227,6 @@ void GatewayServer::WriteSocket( sptr_tcp_socket socket )
size_t totalBytesSent = 0;
Log::Packet( socket->m_pendingWriteBuffer, ( int )socket->m_pendingWriteBuffer.size(), true );
while( true )
{
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 );
auto request = it->second();
auto res = request->ProcessRequest( socket, stream );
socket->send( res );
if (auto res = request->ProcessRequest(stream))
{
socket->send(res);
}
}