IP and Port from config
This commit is contained in:
@@ -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 )
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user