From 234bee0858b3c135f0827be63e904b8edacdee90 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 15 Oct 2010 21:56:06 +0000 Subject: (svn r20938) -Codechange: make the code for listening on a socket (more) reusable --- src/network/network_server.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/network/network_server.h') diff --git a/src/network/network_server.h b/src/network/network_server.h index 691411519..c5bc049f1 100644 --- a/src/network/network_server.h +++ b/src/network/network_server.h @@ -15,6 +15,7 @@ #ifdef ENABLE_NETWORK #include "network_internal.h" +#include "core/tcp_listen.h" class ServerNetworkGameSocketHandler; typedef ServerNetworkGameSocketHandler NetworkClientSocket; @@ -22,7 +23,7 @@ typedef Pool NetworkClien extern NetworkClientSocketPool _networkclientsocket_pool; /** Class for handling the server side of the game connection. */ -class ServerNetworkGameSocketHandler : public NetworkClientSocketPool::PoolItem<&_networkclientsocket_pool>, public NetworkGameSocketHandler { +class ServerNetworkGameSocketHandler : public NetworkClientSocketPool::PoolItem<&_networkclientsocket_pool>, public NetworkGameSocketHandler, public TCPListenHandler { protected: DECLARE_GAME_RECEIVE_COMMAND(PACKET_CLIENT_JOIN); DECLARE_GAME_RECEIVE_COMMAND(PACKET_CLIENT_COMPANY_INFO); @@ -76,6 +77,19 @@ public: NetworkRecvStatus SendCommand(const CommandPacket *cp); NetworkRecvStatus SendCompanyUpdate(); NetworkRecvStatus SendConfigUpdate(); + + static void Send(); + static void AcceptConnection(SOCKET s, const NetworkAddress &address); + static bool AllowConnection(); + + /** + * Get the name used by the listener. + * @return the name to show in debug logs and the like. + */ + static const char *GetName() + { + return "server"; + } }; void NetworkServer_Tick(bool send_frame); -- cgit v1.2.3-70-g09d2