OpenTTD

tcp_admin.h
Go to the documentation of this file.
1 /* $Id: tcp_admin.h 25588 2013-07-11 20:31:39Z planetmaker $ */
2
3 /*
4 * This file is part of OpenTTD.
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8 */
9
14 #ifndef NETWORK_CORE_TCP_ADMIN_H
15 #define NETWORK_CORE_TCP_ADMIN_H
16
17 #include "os_abstraction.h"
18 #include "tcp.h"
19 #include "../network_type.h"
20 #include "../../core/pool_type.hpp"
21
22 #ifdef ENABLE_NETWORK
23
28 enum PacketAdminType {
29 ADMIN_PACKET_ADMIN_JOIN,
30 ADMIN_PACKET_ADMIN_QUIT,
31 ADMIN_PACKET_ADMIN_UPDATE_FREQUENCY,
32 ADMIN_PACKET_ADMIN_POLL,
33 ADMIN_PACKET_ADMIN_CHAT,
34 ADMIN_PACKET_ADMIN_RCON,
35 ADMIN_PACKET_ADMIN_GAMESCRIPT,
36 ADMIN_PACKET_ADMIN_PING,
37
38 ADMIN_PACKET_SERVER_FULL = 100,
39 ADMIN_PACKET_SERVER_BANNED,
40 ADMIN_PACKET_SERVER_ERROR,
41 ADMIN_PACKET_SERVER_PROTOCOL,
42 ADMIN_PACKET_SERVER_WELCOME,
43 ADMIN_PACKET_SERVER_NEWGAME,
44 ADMIN_PACKET_SERVER_SHUTDOWN,
45
46 ADMIN_PACKET_SERVER_DATE,
47 ADMIN_PACKET_SERVER_CLIENT_JOIN,
48 ADMIN_PACKET_SERVER_CLIENT_INFO,
49 ADMIN_PACKET_SERVER_CLIENT_UPDATE,
50 ADMIN_PACKET_SERVER_CLIENT_QUIT,
51 ADMIN_PACKET_SERVER_CLIENT_ERROR,
52 ADMIN_PACKET_SERVER_COMPANY_NEW,
53 ADMIN_PACKET_SERVER_COMPANY_INFO,
54 ADMIN_PACKET_SERVER_COMPANY_UPDATE,
55 ADMIN_PACKET_SERVER_COMPANY_REMOVE,
56 ADMIN_PACKET_SERVER_COMPANY_ECONOMY,
57 ADMIN_PACKET_SERVER_COMPANY_STATS,
58 ADMIN_PACKET_SERVER_CHAT,
59 ADMIN_PACKET_SERVER_RCON,
60 ADMIN_PACKET_SERVER_CONSOLE,
61 ADMIN_PACKET_SERVER_CMD_NAMES,
62 ADMIN_PACKET_SERVER_CMD_LOGGING,
63 ADMIN_PACKET_SERVER_GAMESCRIPT,
64 ADMIN_PACKET_SERVER_RCON_END,
65 ADMIN_PACKET_SERVER_PONG,
66
67 INVALID_ADMIN_PACKET = 0xFF,
68 };
69
71 enum AdminStatus {
72 ADMIN_STATUS_INACTIVE,
73 ADMIN_STATUS_ACTIVE,
74 ADMIN_STATUS_END,
75 };
76
78 enum AdminUpdateType {
79 ADMIN_UPDATE_DATE,
80 ADMIN_UPDATE_CLIENT_INFO,
81 ADMIN_UPDATE_COMPANY_INFO,
82 ADMIN_UPDATE_COMPANY_ECONOMY,
83 ADMIN_UPDATE_COMPANY_STATS,
84 ADMIN_UPDATE_CHAT,
85 ADMIN_UPDATE_CONSOLE,
86 ADMIN_UPDATE_CMD_NAMES,
87 ADMIN_UPDATE_CMD_LOGGING,
88 ADMIN_UPDATE_GAMESCRIPT,
89 ADMIN_UPDATE_END,
90 };
91
93 enum AdminUpdateFrequency {
94 ADMIN_FREQUENCY_POLL = 0x01,
95 ADMIN_FREQUENCY_DAILY = 0x02,
96 ADMIN_FREQUENCY_WEEKLY = 0x04,
97 ADMIN_FREQUENCY_MONTHLY = 0x08,
98 ADMIN_FREQUENCY_QUARTERLY = 0x10,
99 ADMIN_FREQUENCY_ANUALLY = 0x20,
100 ADMIN_FREQUENCY_AUTOMATIC = 0x40,
101 };
102 DECLARE_ENUM_AS_BIT_SET(AdminUpdateFrequency)
103
104
105 enum AdminCompanyRemoveReason {
106 ADMIN_CRR_MANUAL,
107 ADMIN_CRR_AUTOCLEAN,
108 ADMIN_CRR_BANKRUPT,
109
110 ADMIN_CRR_END,
111 };
112
114 class NetworkAdminSocketHandler : public NetworkTCPSocketHandler {
115 protected:
116 char admin_name[NETWORK_CLIENT_NAME_LENGTH];
117 char admin_version[NETWORK_REVISION_LENGTH];
118 AdminStatus status;
119
120 NetworkRecvStatus ReceiveInvalidPacket(PacketAdminType type);
121
130 virtual NetworkRecvStatus Receive_ADMIN_JOIN(Packet *p);
131
137 virtual NetworkRecvStatus Receive_ADMIN_QUIT(Packet *p);
138
146 virtual NetworkRecvStatus Receive_ADMIN_UPDATE_FREQUENCY(Packet *p);
147
157 virtual NetworkRecvStatus Receive_ADMIN_POLL(Packet *p);
158
168 virtual NetworkRecvStatus Receive_ADMIN_CHAT(Packet *p);
169
176 virtual NetworkRecvStatus Receive_ADMIN_RCON(Packet *p);
177
184 virtual NetworkRecvStatus Receive_ADMIN_GAMESCRIPT(Packet *p);
185
192 virtual NetworkRecvStatus Receive_ADMIN_PING(Packet *p);
193
199 virtual NetworkRecvStatus Receive_SERVER_FULL(Packet *p);
200
206 virtual NetworkRecvStatus Receive_SERVER_BANNED(Packet *p);
207
214 virtual NetworkRecvStatus Receive_SERVER_ERROR(Packet *p);
215
225 virtual NetworkRecvStatus Receive_SERVER_PROTOCOL(Packet *p);
226
241 virtual NetworkRecvStatus Receive_SERVER_WELCOME(Packet *p);
242
248 virtual NetworkRecvStatus Receive_SERVER_NEWGAME(Packet *p);
249
255 virtual NetworkRecvStatus Receive_SERVER_SHUTDOWN(Packet *p);
256
263 virtual NetworkRecvStatus Receive_SERVER_DATE(Packet *p);
264
271 virtual NetworkRecvStatus Receive_SERVER_CLIENT_JOIN(Packet *p);
272
284 virtual NetworkRecvStatus Receive_SERVER_CLIENT_INFO(Packet *p);
285
294 virtual NetworkRecvStatus Receive_SERVER_CLIENT_UPDATE(Packet *p);
295
302 virtual NetworkRecvStatus Receive_SERVER_CLIENT_QUIT(Packet *p);
303
311 virtual NetworkRecvStatus Receive_SERVER_CLIENT_ERROR(Packet *p);
312
319 virtual NetworkRecvStatus Receive_SERVER_COMPANY_NEW(Packet *p);
320
333 virtual NetworkRecvStatus Receive_SERVER_COMPANY_INFO(Packet *p);
334
350 virtual NetworkRecvStatus Receive_SERVER_COMPANY_UPDATE(Packet *p);
351
359 virtual NetworkRecvStatus Receive_SERVER_COMPANY_REMOVE(Packet *p);
360
377 virtual NetworkRecvStatus Receive_SERVER_COMPANY_ECONOMY(Packet *p);
378
395 virtual NetworkRecvStatus Receive_SERVER_COMPANY_STATS(Packet *p);
396
407 virtual NetworkRecvStatus Receive_SERVER_CHAT(Packet *p);
408
416 virtual NetworkRecvStatus Receive_SERVER_RCON(Packet *p);
417
425 virtual NetworkRecvStatus Receive_SERVER_CONSOLE(Packet *p);
426
444 virtual NetworkRecvStatus Receive_SERVER_CMD_NAMES(Packet *p);
445
466 virtual NetworkRecvStatus Receive_SERVER_CMD_LOGGING(Packet *p);
467
474 virtual NetworkRecvStatus Receive_SERVER_PONG(Packet *p);
475
482 virtual NetworkRecvStatus Receive_SERVER_RCON_END(Packet *p);
483
484 NetworkRecvStatus HandlePacket(Packet *p);
485 public:
486 NetworkRecvStatus CloseConnection(bool error = true);
487
488 NetworkAdminSocketHandler(SOCKET s);
489 ~NetworkAdminSocketHandler();
490
491 NetworkRecvStatus ReceivePackets();
492
497 AdminStatus GetAdminStatus() const
498 {
499 return this->status;
500 }
501 };
502
503 #endif /* ENABLE_NETWORK */
504
505 #endif /* NETWORK_CORE_TCP_ADMIN_H */
NetworkAdminSocketHandler::admin_name
char admin_name[NETWORK_CLIENT_NAME_LENGTH]
Name of the admin.
Definition: tcp_admin.h:116
ADMIN_UPDATE_CONSOLE
The admin would like to have console messages.
Definition: tcp_admin.h:85
ADMIN_PACKET_ADMIN_CHAT
The admin sends a chat message to be distributed.
Definition: tcp_admin.h:33
NETWORK_CLIENT_NAME_LENGTH
static const uint NETWORK_CLIENT_NAME_LENGTH
The maximum length of a client&#39;s name, in bytes including &#39;\0&#39;.
Definition: config.h:49
DECLARE_ENUM_AS_BIT_SET
DECLARE_ENUM_AS_BIT_SET(GenderEthnicity) enum CompanyManagerFaceVariable
Bitgroups of the CompanyManagerFace variable.
Definition: company_manager_face.h:31
NetworkAdminSocketHandler::Receive_ADMIN_POLL
virtual NetworkRecvStatus Receive_ADMIN_POLL(Packet *p)
Poll the server for certain updates, an invalid poll (e.g.
Definition: tcp_admin.cpp:142
NetworkAdminSocketHandler::Receive_ADMIN_PING
virtual NetworkRecvStatus Receive_ADMIN_PING(Packet *p)
Ping the server, requiring the server to reply with a pong packet.
Definition: tcp_admin.cpp:146
Packet
Internal entity of a packet.
Definition: packet.h:44
ADMIN_PACKET_SERVER_PONG
The server replies to a ping request from the admin.
Definition: tcp_admin.h:65
AdminCompanyRemoveReason
AdminCompanyRemoveReason
Reasons for removing a company - communicated to admins.
Definition: tcp_admin.h:105
os_abstraction.h
Network stuff has many things that needs to be included and/or implemented by default.
ADMIN_UPDATE_CHAT
The admin would like to have chat messages.
Definition: tcp_admin.h:84
NetworkAdminSocketHandler::Receive_SERVER_PROTOCOL
virtual NetworkRecvStatus Receive_SERVER_PROTOCOL(Packet *p)
Inform a just joined admin about the protocol specifics: uint8 Protocol version.
Definition: tcp_admin.cpp:151
NetworkAdminSocketHandler::GetAdminStatus
AdminStatus GetAdminStatus() const
Get the status of the admin.
Definition: tcp_admin.h:497
NetworkAdminSocketHandler::Receive_SERVER_RCON
virtual NetworkRecvStatus Receive_SERVER_RCON(Packet *p)
Result of an rcon command: uint16 Colour as it would be used on the server or a client.
Definition: tcp_admin.cpp:169
ADMIN_PACKET_ADMIN_POLL
The admin explicitly polls for a piece of information.
Definition: tcp_admin.h:32
ADMIN_PACKET_SERVER_GAMESCRIPT
The server gives the admin information from the GameScript in JSON.
Definition: tcp_admin.h:63
ADMIN_PACKET_SERVER_NEWGAME
The server tells the admin its going to start a new game.
Definition: tcp_admin.h:43
ADMIN_PACKET_SERVER_SHUTDOWN
The server tells the admin its shutting down.
Definition: tcp_admin.h:44
ADMIN_PACKET_SERVER_CHAT
The server received a chat message and relays it.
Definition: tcp_admin.h:58
ADMIN_PACKET_SERVER_COMPANY_NEW
The server tells the admin that a new company has started.
Definition: tcp_admin.h:52
ADMIN_PACKET_SERVER_PROTOCOL
The server tells the admin its protocol version.
Definition: tcp_admin.h:41
NetworkTCPSocketHandler
Base socket handler for all TCP sockets.
Definition: tcp.h:31
ADMIN_UPDATE_CMD_NAMES
The admin would like a list of all DoCommand names.
Definition: tcp_admin.h:86
AdminStatus
AdminStatus
Status of an admin.
Definition: tcp_admin.h:71
ADMIN_PACKET_ADMIN_JOIN
The admin announces and authenticates itself to the server.
Definition: tcp_admin.h:29
ADMIN_PACKET_SERVER_CLIENT_QUIT
The server tells the admin that a client quit.
Definition: tcp_admin.h:50
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_STATS
virtual NetworkRecvStatus Receive_SERVER_COMPANY_STATS(Packet *p)
Company statistics on stations and vehicles: uint8 ID of the company.
Definition: tcp_admin.cpp:167
INVALID_ADMIN_PACKET
An invalid marker for admin packets.
Definition: tcp_admin.h:67
NetworkAdminSocketHandler::Receive_SERVER_DATE
virtual NetworkRecvStatus Receive_SERVER_DATE(Packet *p)
Send the current date of the game: uint32 Current game date.
Definition: tcp_admin.cpp:156
NetworkAdminSocketHandler::Receive_SERVER_ERROR
virtual NetworkRecvStatus Receive_SERVER_ERROR(Packet *p)
An error was caused by this admin connection (connection gets closed).
Definition: tcp_admin.cpp:150
ADMIN_PACKET_SERVER_ERROR
The server tells the admin an error has occurred.
Definition: tcp_admin.h:40
ADMIN_UPDATE_CLIENT_INFO
Updates about the information of clients.
Definition: tcp_admin.h:80
NetworkAdminSocketHandler::admin_version
char admin_version[NETWORK_REVISION_LENGTH]
Version string of the admin.
Definition: tcp_admin.h:117
NetworkAdminSocketHandler::Receive_SERVER_SHUTDOWN
virtual NetworkRecvStatus Receive_SERVER_SHUTDOWN(Packet *p)
Notification about the server shutting down.
Definition: tcp_admin.cpp:154
NetworkAdminSocketHandler::Receive_SERVER_CLIENT_QUIT
virtual NetworkRecvStatus Receive_SERVER_CLIENT_QUIT(Packet *p)
Notification about a client leaving the game.
Definition: tcp_admin.cpp:160
ADMIN_PACKET_ADMIN_GAMESCRIPT
The admin sends a JSON string for the GameScript.
Definition: tcp_admin.h:35
NetworkAdminSocketHandler::ReceiveInvalidPacket
NetworkRecvStatus ReceiveInvalidPacket(PacketAdminType type)
Helper for logging receiving invalid packets.
Definition: tcp_admin.cpp:133
ADMIN_FREQUENCY_DAILY
The admin gets information about this on a daily basis.
Definition: tcp_admin.h:95
ADMIN_PACKET_SERVER_DATE
The server tells the admin what the current game date is.
Definition: tcp_admin.h:46
NetworkAdminSocketHandler::Receive_SERVER_CLIENT_INFO
virtual NetworkRecvStatus Receive_SERVER_CLIENT_INFO(Packet *p)
Client information of a specific client: uint32 ID of the client.
Definition: tcp_admin.cpp:158
ADMIN_UPDATE_CMD_LOGGING
The admin would like to have DoCommand information.
Definition: tcp_admin.h:87
AdminUpdateFrequency
AdminUpdateFrequency
Update frequencies an admin can register.
Definition: tcp_admin.h:93
NetworkAdminSocketHandler::Receive_SERVER_CLIENT_ERROR
virtual NetworkRecvStatus Receive_SERVER_CLIENT_ERROR(Packet *p)
Notification about a client error (and thus the clients disconnection).
Definition: tcp_admin.cpp:161
ADMIN_FREQUENCY_MONTHLY
The admin gets information about this on a monthly basis.
Definition: tcp_admin.h:97
ADMIN_PACKET_SERVER_COMPANY_STATS
The server gives the admin some statistics about a company.
Definition: tcp_admin.h:57
NetworkAdminSocketHandler::ReceivePackets
NetworkRecvStatus ReceivePackets()
Do the actual receiving of packets.
Definition: tcp_admin.cpp:117
NetworkAdminSocketHandler::status
AdminStatus status
Status of this admin.
Definition: tcp_admin.h:118
ADMIN_FREQUENCY_POLL
The admin can poll this.
Definition: tcp_admin.h:94
ADMIN_PACKET_SERVER_RCON
The server&#39;s reply to a remove console command.
Definition: tcp_admin.h:59
NetworkAdminSocketHandler::Receive_SERVER_FULL
virtual NetworkRecvStatus Receive_SERVER_FULL(Packet *p)
The server is full (connection gets closed).
Definition: tcp_admin.cpp:148
ADMIN_UPDATE_COMPANY_STATS
Updates about the statistics of companies.
Definition: tcp_admin.h:83
ADMIN_PACKET_SERVER_CLIENT_UPDATE
The server gives the admin an information update on a client.
Definition: tcp_admin.h:49
NetworkAdminSocketHandler::HandlePacket
NetworkRecvStatus HandlePacket(Packet *p)
Handle the given packet, i.e.
Definition: tcp_admin.cpp:56
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_UPDATE
virtual NetworkRecvStatus Receive_SERVER_COMPANY_UPDATE(Packet *p)
Company information of a specific company: uint8 ID of the company.
Definition: tcp_admin.cpp:164
ADMIN_UPDATE_COMPANY_ECONOMY
Updates about the economy of companies.
Definition: tcp_admin.h:82
ADMIN_STATUS_INACTIVE
The admin is not connected nor active.
Definition: tcp_admin.h:72
ADMIN_FREQUENCY_QUARTERLY
The admin gets information about this on a quarterly basis.
Definition: tcp_admin.h:98
ADMIN_PACKET_SERVER_FULL
The server tells the admin it cannot accept the admin.
Definition: tcp_admin.h:38
ADMIN_UPDATE_GAMESCRIPT
The admin would like to have gamescript messages.
Definition: tcp_admin.h:88
NetworkAdminSocketHandler::Receive_SERVER_CONSOLE
virtual NetworkRecvStatus Receive_SERVER_CONSOLE(Packet *p)
Send what would be printed on the server&#39;s console also into the admin network.
Definition: tcp_admin.cpp:170
NetworkAdminSocketHandler::Receive_ADMIN_CHAT
virtual NetworkRecvStatus Receive_ADMIN_CHAT(Packet *p)
Send chat as the server: uint8 Action such as NETWORK_ACTION_CHAT_CLIENT (see NetworkAction).
Definition: tcp_admin.cpp:143
NetworkRecvStatus
NetworkRecvStatus
Status of a network client; reasons why a client has quit.
Definition: core.h:26
ADMIN_PACKET_SERVER_RCON_END
The server indicates that the remote console command has completed.
Definition: tcp_admin.h:64
ADMIN_CRR_MANUAL
The company is manually removed.
Definition: tcp_admin.h:106
ADMIN_UPDATE_DATE
Updates about the date of the game.
Definition: tcp_admin.h:79
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_REMOVE
virtual NetworkRecvStatus Receive_SERVER_COMPANY_REMOVE(Packet *p)
Notification about a removed company (e.g.
Definition: tcp_admin.cpp:165
NetworkAdminSocketHandler::Receive_ADMIN_RCON
virtual NetworkRecvStatus Receive_ADMIN_RCON(Packet *p)
Execute a command on the servers console: string Command to be executed.
Definition: tcp_admin.cpp:144
NetworkAdminSocketHandler::Receive_ADMIN_JOIN
virtual NetworkRecvStatus Receive_ADMIN_JOIN(Packet *p)
Join the admin network: string Password the server is expecting for this network. ...
Definition: tcp_admin.cpp:139
ADMIN_PACKET_SERVER_COMPANY_REMOVE
The server tells the admin that a company was removed.
Definition: tcp_admin.h:55
ADMIN_PACKET_SERVER_CMD_NAMES
The server sends out the names of the DoCommands to the admins.
Definition: tcp_admin.h:61
NetworkAdminSocketHandler::Receive_ADMIN_GAMESCRIPT
virtual NetworkRecvStatus Receive_ADMIN_GAMESCRIPT(Packet *p)
Send a JSON string to the current active GameScript.
Definition: tcp_admin.cpp:145
ADMIN_PACKET_SERVER_CLIENT_ERROR
The server tells the admin that a client caused an error.
Definition: tcp_admin.h:51
NetworkAdminSocketHandler::Receive_SERVER_PONG
virtual NetworkRecvStatus Receive_SERVER_PONG(Packet *p)
Send a ping-reply (pong) to the admin that sent us the ping packet.
Definition: tcp_admin.cpp:174
ADMIN_PACKET_ADMIN_QUIT
The admin tells the server that it is quitting.
Definition: tcp_admin.h:30
ADMIN_PACKET_SERVER_CONSOLE
The server gives the admin the data that got printed to its console.
Definition: tcp_admin.h:60
NetworkAdminSocketHandler::Receive_SERVER_CLIENT_UPDATE
virtual NetworkRecvStatus Receive_SERVER_CLIENT_UPDATE(Packet *p)
Client update details on a specific client (e.g.
Definition: tcp_admin.cpp:159
ADMIN_PACKET_SERVER_COMPANY_UPDATE
The server gives the admin an information update on a company.
Definition: tcp_admin.h:54
NetworkAdminSocketHandler::Receive_SERVER_CMD_NAMES
virtual NetworkRecvStatus Receive_SERVER_CMD_NAMES(Packet *p)
Send DoCommand names to the bot upon request only.
Definition: tcp_admin.cpp:171
NetworkAdminSocketHandler::Receive_SERVER_CHAT
virtual NetworkRecvStatus Receive_SERVER_CHAT(Packet *p)
Send chat from the game into the admin network: uint8 Action such as NETWORK_ACTION_CHAT_CLIENT (see ...
Definition: tcp_admin.cpp:168
NetworkAdminSocketHandler::Receive_ADMIN_UPDATE_FREQUENCY
virtual NetworkRecvStatus Receive_ADMIN_UPDATE_FREQUENCY(Packet *p)
Register updates to be sent at certain frequencies (as announced in the PROTOCOL packet): uint16 Upda...
Definition: tcp_admin.cpp:141
ADMIN_CRR_AUTOCLEAN
The company is removed due to autoclean.
Definition: tcp_admin.h:107
PacketAdminType
PacketAdminType
Enum with types of TCP packets specific to the admin network.
Definition: tcp_admin.h:28
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_INFO
virtual NetworkRecvStatus Receive_SERVER_COMPANY_INFO(Packet *p)
Company information on a specific company: uint8 ID of the company.
Definition: tcp_admin.cpp:163
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_NEW
virtual NetworkRecvStatus Receive_SERVER_COMPANY_NEW(Packet *p)
Notification of a new company: uint8 ID of the new company.
Definition: tcp_admin.cpp:162
NetworkAdminSocketHandler::Receive_ADMIN_QUIT
virtual NetworkRecvStatus Receive_ADMIN_QUIT(Packet *p)
Notification to the server that this admin is quitting.
Definition: tcp_admin.cpp:140
ADMIN_FREQUENCY_ANUALLY
The admin gets information about this on a yearly basis.
Definition: tcp_admin.h:99
ADMIN_PACKET_SERVER_CLIENT_JOIN
The server tells the admin that a client has joined.
Definition: tcp_admin.h:47
NetworkAdminSocketHandler::Receive_SERVER_RCON_END
virtual NetworkRecvStatus Receive_SERVER_RCON_END(Packet *p)
Notify the admin connection that the rcon command has finished.
Definition: tcp_admin.cpp:173
ADMIN_FREQUENCY_WEEKLY
The admin gets information about this on a weekly basis.
Definition: tcp_admin.h:96
ADMIN_PACKET_ADMIN_RCON
The admin sends a remote console command.
Definition: tcp_admin.h:34
error
void CDECL error(const char *s,...)
Error handling for fatal non-user errors.
Definition: openttd.cpp:110
ADMIN_PACKET_ADMIN_PING
The admin sends a ping to the server, expecting a ping-reply (PONG) packet.
Definition: tcp_admin.h:36
ADMIN_UPDATE_END
Must ALWAYS be on the end of this list!! (period)
Definition: tcp_admin.h:89
NetworkAdminSocketHandler::Receive_SERVER_WELCOME
virtual NetworkRecvStatus Receive_SERVER_WELCOME(Packet *p)
Welcome a connected admin to the game: string Name of the Server (e.g.
Definition: tcp_admin.cpp:152
ADMIN_STATUS_END
Must ALWAYS be on the end of this list!! (period)
Definition: tcp_admin.h:74
ADMIN_PACKET_SERVER_CLIENT_INFO
The server gives the admin information about a client.
Definition: tcp_admin.h:48
NetworkAdminSocketHandler
Main socket handler for admin related connections.
Definition: tcp_admin.h:114
NetworkAdminSocketHandler::NetworkAdminSocketHandler
NetworkAdminSocketHandler(SOCKET s)
Create the admin handler for the given socket.
Definition: tcp_admin.cpp:34
ADMIN_PACKET_SERVER_WELCOME
The server welcomes the admin to a game.
Definition: tcp_admin.h:42
ADMIN_CRR_BANKRUPT
The company went belly-up.
Definition: tcp_admin.h:108
ADMIN_FREQUENCY_AUTOMATIC
The admin gets information about this when it changes.
Definition: tcp_admin.h:100
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_ECONOMY
virtual NetworkRecvStatus Receive_SERVER_COMPANY_ECONOMY(Packet *p)
Economy update of a specific company: uint8 ID of the company.
Definition: tcp_admin.cpp:166
ADMIN_STATUS_ACTIVE
The admin is active.
Definition: tcp_admin.h:73
NetworkAdminSocketHandler::Receive_SERVER_BANNED
virtual NetworkRecvStatus Receive_SERVER_BANNED(Packet *p)
The source IP address is banned (connection gets closed).
Definition: tcp_admin.cpp:149
ADMIN_PACKET_SERVER_CMD_LOGGING
The server gives the admin copies of incoming command packets.
Definition: tcp_admin.h:62
NetworkAdminSocketHandler::Receive_SERVER_CLIENT_JOIN
virtual NetworkRecvStatus Receive_SERVER_CLIENT_JOIN(Packet *p)
Notification of a new client: uint32 ID of the new client.
Definition: tcp_admin.cpp:157
NetworkAdminSocketHandler::Receive_SERVER_NEWGAME
virtual NetworkRecvStatus Receive_SERVER_NEWGAME(Packet *p)
Notification about a newgame.
Definition: tcp_admin.cpp:153
ADMIN_CRR_END
Sentinel for end.
Definition: tcp_admin.h:110
ADMIN_UPDATE_COMPANY_INFO
Updates about the generic information of companies.
Definition: tcp_admin.h:81
ADMIN_PACKET_SERVER_COMPANY_ECONOMY
The server gives the admin some economy related company information.
Definition: tcp_admin.h:56
NETWORK_REVISION_LENGTH
static const uint NETWORK_REVISION_LENGTH
The maximum length of the revision, in bytes including &#39;\0&#39;.
Definition: config.h:46
tcp.h
Basic functions to receive and send TCP packets.
ADMIN_PACKET_ADMIN_UPDATE_FREQUENCY
The admin tells the server the update frequency of a particular piece of information.
Definition: tcp_admin.h:31
AdminUpdateType
AdminUpdateType
Update types an admin can register a frequency for.
Definition: tcp_admin.h:78
NetworkAdminSocketHandler::CloseConnection
NetworkRecvStatus CloseConnection(bool error=true)
Close the current connection; for TCP this will be mostly equivalent to Close(), but for UDP it just ...
Definition: tcp_admin.cpp:45
ADMIN_PACKET_SERVER_BANNED
The server tells the admin it is banned.
Definition: tcp_admin.h:39
ADMIN_PACKET_SERVER_COMPANY_INFO
The server gives the admin information about a company.
Definition: tcp_admin.h:53
NetworkAdminSocketHandler::Receive_SERVER_CMD_LOGGING
virtual NetworkRecvStatus Receive_SERVER_CMD_LOGGING(Packet *p)
Send incoming command packets to the admin network.
Definition: tcp_admin.cpp:172