ServerNetworkAdminSocketHandler Class Reference

Class for handling the server side of the game connection. More...

#include <network_admin.h>

Inheritance diagram for ServerNetworkAdminSocketHandler:
Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_networkadminsocket_pool > NetworkAdminSocketHandler TCPListenHandler< ServerNetworkAdminSocketHandler, ADMIN_PACKET_SERVER_FULL, ADMIN_PACKET_SERVER_BANNED > NetworkTCPSocketHandler NetworkSocketHandler

Public Member Functions

 ServerNetworkAdminSocketHandler (SOCKET s)
 Create a new socket for the server side of the admin network.
 ~ServerNetworkAdminSocketHandler ()
 Clear everything related to this admin.
NetworkRecvStatus SendError (NetworkErrorCode error)
 Send an error to the admin.
NetworkRecvStatus SendWelcome ()
 Send a welcome message to the admin.
NetworkRecvStatus SendNewGame ()
 Tell the admin we started a new game.
NetworkRecvStatus SendShutdown ()
 Tell the admin we're shutting down.
NetworkRecvStatus SendDate ()
 Tell the admin the date.
NetworkRecvStatus SendClientJoin (ClientID client_id)
 Tell the admin that a client joined.
NetworkRecvStatus SendClientInfo (const NetworkClientSocket *cs)
 Send an initial set of data from some client's information.
NetworkRecvStatus SendClientUpdate (const NetworkClientInfo *ci)
 Send an update for some client's information.
NetworkRecvStatus SendClientQuit (ClientID client_id)
 Tell the admin that a client quit.
NetworkRecvStatus SendClientError (ClientID client_id, NetworkErrorCode error)
 Tell the admin that a client made an error.
NetworkRecvStatus SendCompanyNew (CompanyID company_id)
 Tell the admin that a new company was founded.
NetworkRecvStatus SendCompanyInfo (const Company *c)
 Send the admin some information about a company.
NetworkRecvStatus SendCompanyUpdate (const Company *c)
 Send an update about a company.
NetworkRecvStatus SendCompanyRemove (CompanyID company_id, AdminCompanyRemoveReason bcrr)
 Tell the admin that a company got removed.
NetworkRecvStatus SendCompanyEconomy ()
 Send economic information of all companies.
NetworkRecvStatus SendCompanyStats ()
 Send statistics about the companies.
NetworkRecvStatus SendChat (NetworkAction action, DestType desttype, ClientID client_id, const char *msg, int64 data)
 Send a chat message.
NetworkRecvStatus SendRcon (uint16 colour, const char *command)
 Send the reply of an rcon command.
NetworkRecvStatus SendConsole (const char *origin, const char *command)
 Send console output of other clients.
NetworkRecvStatus SendCmdNames ()
 Send the names of the commands.
NetworkRecvStatus SendCmdLogging (ClientID client_id, const CommandPacket *cp)
 Send a command for logging purposes.

Static Public Member Functions

static void Send ()
 Send the packets for the server sockets.
static void AcceptConnection (SOCKET s, const NetworkAddress &address)
 Handle the acception of a connection.
static bool AllowConnection ()
 Whether a connection is allowed or not at this moment.
static void WelcomeAll ()
 Send a Welcome packet to all connected admins.
static const char * GetName ()
 Get the name used by the listener.

Data Fields

AdminUpdateFrequency update_frequency [ADMIN_UPDATE_END]
 Admin requested update intervals.
uint32 realtime_connect
 Time of connection.
NetworkAddress address
 Address of the admin.

Protected Member Functions

virtual NetworkRecvStatus Receive_ADMIN_JOIN (Packet *p)
 Join the admin network: string Password the server is expecting for this network.
virtual NetworkRecvStatus Receive_ADMIN_QUIT (Packet *p)
 Notification to the server that this admin is quitting.
virtual NetworkRecvStatus Receive_ADMIN_UPDATE_FREQUENCY (Packet *p)
 Register updates to be sent at certain frequencies (as announced in the PROTOCOL packet): uint16 Update type (see AdminUpdateType).
virtual NetworkRecvStatus Receive_ADMIN_POLL (Packet *p)
 Poll the server for certain updates, an invalid poll (e.g.
virtual NetworkRecvStatus Receive_ADMIN_CHAT (Packet *p)
 Send chat as the server: uint8 Action such as NETWORK_ACTION_CHAT_CLIENT (see NetworkAction).
virtual NetworkRecvStatus Receive_ADMIN_RCON (Packet *p)
 Execute a command on the servers console: string Command to be executed.
NetworkRecvStatus SendProtocol ()
 Send the protocol version to the admin.

Detailed Description

Class for handling the server side of the game connection.

Definition at line 29 of file network_admin.h.


Constructor & Destructor Documentation

ServerNetworkAdminSocketHandler::ServerNetworkAdminSocketHandler ( SOCKET  s  ) 

Create a new socket for the server side of the admin network.

Parameters:
s The socket to connect with.

Definition at line 63 of file network_admin.cpp.

References _network_admins_connected, _realtime_tick, ADMIN_STATUS_INACTIVE, realtime_connect, and NetworkAdminSocketHandler::status.

Referenced by AcceptConnection().


Member Function Documentation

void ServerNetworkAdminSocketHandler::AcceptConnection ( SOCKET  s,
const NetworkAddress address 
) [static]

Handle the acception of a connection.

Parameters:
s The socket of the new connection.
address The address of the peer.

Definition at line 115 of file network_admin.cpp.

References address, and ServerNetworkAdminSocketHandler().

bool ServerNetworkAdminSocketHandler::AllowConnection (  )  [static]
static const char* ServerNetworkAdminSocketHandler::GetName (  )  [inline, static]

Get the name used by the listener.

Returns:
the name to show in debug logs and the like.

Definition at line 80 of file network_admin.h.

NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_CHAT ( Packet p  )  [protected, virtual]

Send chat as the server: uint8 Action such as NETWORK_ACTION_CHAT_CLIENT (see NetworkAction).

uint8 Destination type such as DESTTYPE_BROADCAST (see DestType). uint32 ID of the destination such as company or client id. string Message.

Parameters:
p The packet that was just received.
Returns:
The state the network should have.

Reimplemented from NetworkAdminSocketHandler.

Definition at line 707 of file network_admin.cpp.

References _network_own_client_id, NetworkAdminSocketHandler::admin_name, ADMIN_STATUS_INACTIVE, NetworkAdminSocketHandler::admin_version, DEBUG, NETWORK_CHAT_LENGTH, NETWORK_RECV_STATUS_OKAY, NetworkServerSendChat(), Packet::Recv_string(), Packet::Recv_uint32(), Packet::Recv_uint8(), SendError(), and NetworkAdminSocketHandler::status.

NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_JOIN ( Packet p  )  [protected, virtual]

Join the admin network: string Password the server is expecting for this network.

string Name of the application being used to connect. string Version string of the application being used to connect.

Parameters:
p The packet that was just received.
Returns:
The state the network should have.

Reimplemented from NetworkAdminSocketHandler.

Definition at line 594 of file network_admin.cpp.

References _settings_client, NetworkAdminSocketHandler::admin_name, NetworkSettings::admin_password, ADMIN_STATUS_INACTIVE, NetworkAdminSocketHandler::admin_version, DEBUG, ClientSettings::network, NETWORK_PASSWORD_LENGTH, Packet::Recv_string(), SendError(), SendProtocol(), NetworkAdminSocketHandler::status, and StrEmpty().

NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_POLL ( Packet p  )  [protected, virtual]

Poll the server for certain updates, an invalid poll (e.g.

not existent id) gets silently dropped: uint8 AdminUpdateType the server should answer for, only if AdminUpdateFrequency ADMIN_FREQUENCY_POLL is advertised in the PROTOCOL packet. uint32 ID relevant to the packet type, e.g.

  • the client ID for ADMIN_UPDATE_CLIENT_INFO. Use UINT32_MAX to show all clients.
  • the company ID for ADMIN_UPDATE_COMPANY_INFO. Use UINT32_MAX to show all companies.
    Parameters:
    p The packet that was just received.
    Returns:
    The state the network should have.

Reimplemented from NetworkAdminSocketHandler.

Definition at line 644 of file network_admin.cpp.

References NetworkAdminSocketHandler::admin_name, ADMIN_STATUS_INACTIVE, ADMIN_UPDATE_CLIENT_INFO, ADMIN_UPDATE_CMD_NAMES, ADMIN_UPDATE_COMPANY_ECONOMY, ADMIN_UPDATE_COMPANY_INFO, ADMIN_UPDATE_COMPANY_STATS, ADMIN_UPDATE_DATE, NetworkAdminSocketHandler::admin_version, DEBUG, FOR_ALL_CLIENT_SOCKETS, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_networkadminsocket_pool >::GetIfValid(), NETWORK_RECV_STATUS_OKAY, Packet::Recv_uint32(), Packet::Recv_uint8(), SendClientInfo(), SendCmdNames(), SendCompanyEconomy(), SendCompanyInfo(), SendCompanyStats(), SendDate(), SendError(), and NetworkAdminSocketHandler::status.

NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_QUIT ( Packet p  )  [protected, virtual]

Notification to the server that this admin is quitting.

Parameters:
p The packet that was just received.
Returns:
The state the network should have.

Reimplemented from NetworkAdminSocketHandler.

Definition at line 620 of file network_admin.cpp.

References NetworkAdminSocketHandler::CloseConnection().

NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_RCON ( Packet p  )  [protected, virtual]
NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_UPDATE_FREQUENCY ( Packet p  )  [protected, virtual]

Register updates to be sent at certain frequencies (as announced in the PROTOCOL packet): uint16 Update type (see AdminUpdateType).

uint16 Update frequency (see AdminUpdateFrequency), setting ADMIN_FREQUENCY_POLL is always ignored.

Parameters:
p The packet that was just received.
Returns:
The state the network should have.

Reimplemented from NetworkAdminSocketHandler.

Definition at line 626 of file network_admin.cpp.

References _admin_update_type_frequencies, NetworkAdminSocketHandler::admin_name, ADMIN_STATUS_INACTIVE, ADMIN_UPDATE_END, NetworkAdminSocketHandler::admin_version, DEBUG, NETWORK_RECV_STATUS_OKAY, Packet::Recv_uint16(), SendError(), NetworkAdminSocketHandler::status, and update_frequency.

void ServerNetworkAdminSocketHandler::Send (  )  [static]
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendChat ( NetworkAction  action,
DestType  desttype,
ClientID  client_id,
const char *  msg,
int64  data 
)

Send a chat message.

Parameters:
action The action associated with the message.
desttype The destination type.
client_id The origin of the chat message.
msg The actual message.
data Arbitrary extra data.

Definition at line 469 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_CHAT, NETWORK_RECV_STATUS_OKAY, Packet::Send_string(), Packet::Send_uint32(), Packet::Send_uint64(), Packet::Send_uint8(), and NetworkTCPSocketHandler::SendPacket().

Referenced by NetworkAdminChat().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendClientError ( ClientID  client_id,
NetworkErrorCode  error 
)

Tell the admin that a client made an error.

Parameters:
client_id The client that made the error.
error The error that was made.

Definition at line 290 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_CLIENT_ERROR, NETWORK_RECV_STATUS_OKAY, Packet::Send_uint32(), Packet::Send_uint8(), and NetworkTCPSocketHandler::SendPacket().

Referenced by NetworkAdminClientError().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendClientInfo ( const NetworkClientSocket cs  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendClientJoin ( ClientID  client_id  ) 

Tell the admin that a client joined.

Parameters:
client_id The client that joined.

Definition at line 219 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_CLIENT_JOIN, NETWORK_RECV_STATUS_OKAY, Packet::Send_uint32(), and NetworkTCPSocketHandler::SendPacket().

Referenced by NetworkAdminClientInfo().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendClientQuit ( ClientID  client_id  ) 

Tell the admin that a client quit.

Parameters:
client_id The client that quit.

Definition at line 275 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_CLIENT_QUIT, NETWORK_RECV_STATUS_OKAY, Packet::Send_uint32(), and NetworkTCPSocketHandler::SendPacket().

Referenced by NetworkAdminClientQuit().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendClientUpdate ( const NetworkClientInfo ci  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCmdLogging ( ClientID  client_id,
const CommandPacket cp 
)
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCmdNames (  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyEconomy (  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyInfo ( const Company c  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyNew ( CompanyID  company_id  ) 

Tell the admin that a new company was founded.

Parameters:
company_id The company that was founded.

Definition at line 305 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_COMPANY_NEW, NETWORK_RECV_STATUS_OKAY, Packet::Send_uint8(), and NetworkTCPSocketHandler::SendPacket().

Referenced by NetworkAdminCompanyInfo().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyRemove ( CompanyID  company_id,
AdminCompanyRemoveReason  acrr 
)

Tell the admin that a company got removed.

Parameters:
company_id The company that got removed.
acrr The reason for removal, e.g. bankruptcy or merger.

Definition at line 384 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_COMPANY_REMOVE, NETWORK_RECV_STATUS_OKAY, Packet::Send_uint8(), and NetworkTCPSocketHandler::SendPacket().

Referenced by NetworkAdminCompanyRemove().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyStats (  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyUpdate ( const Company c  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendConsole ( const char *  origin,
const char *  string 
)

Send console output of other clients.

Parameters:
origin The origin of the string.
string The string that's put on the console.

Definition at line 520 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_CONSOLE, NETWORK_RECV_STATUS_OKAY, SEND_MTU, Packet::Send_string(), and NetworkTCPSocketHandler::SendPacket().

Referenced by NetworkAdminConsole().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendDate (  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendError ( NetworkErrorCode  error  ) 
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendNewGame (  ) 

Tell the admin we started a new game.

Definition at line 189 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_NEWGAME, NETWORK_RECV_STATUS_OKAY, and NetworkTCPSocketHandler::SendPacket().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendProtocol (  )  [protected]
NetworkRecvStatus ServerNetworkAdminSocketHandler::SendRcon ( uint16  colour,
const char *  result 
)

Send the reply of an rcon command.

Parameters:
colour The colour of the text.
result The result of the command.

Definition at line 488 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_RCON, NETWORK_RECV_STATUS_OKAY, Packet::Send_string(), Packet::Send_uint16(), and NetworkTCPSocketHandler::SendPacket().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendShutdown (  ) 

Tell the admin we're shutting down.

Definition at line 197 of file network_admin.cpp.

References ADMIN_PACKET_SERVER_SHUTDOWN, NETWORK_RECV_STATUS_OKAY, and NetworkTCPSocketHandler::SendPacket().

Referenced by NetworkDisconnect().

NetworkRecvStatus ServerNetworkAdminSocketHandler::SendWelcome (  ) 

The documentation for this class was generated from the following files:

Generated on Fri May 27 04:21:13 2011 for OpenTTD by  doxygen 1.6.1