mirror of
https://github.com/HikikoMarmy/Champions-Reborn-Server.git
synced 2026-04-05 08:59:54 -03:00
IP and Port from config
This commit is contained in:
@@ -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 )
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user