OpenTTD Source: src/network/core/tcp_admin.h Source File

OpenTTD Source 15.0-RC2

tcp_admin.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * 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.
4 * 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.
5 * 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 <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
6 */
7
12#ifndef NETWORK_CORE_TCP_ADMIN_H
13#define NETWORK_CORE_TCP_ADMIN_H
14
15#include "os_abstraction.h"
16#include "tcp.h"
17#include "../network_type.h"
18
23 enum PacketAdminType : uint8_t {
24 ADMIN_PACKET_ADMIN_JOIN,
25 ADMIN_PACKET_ADMIN_QUIT,
26 ADMIN_PACKET_ADMIN_UPDATE_FREQUENCY,
27 ADMIN_PACKET_ADMIN_POLL,
28 ADMIN_PACKET_ADMIN_CHAT,
29 ADMIN_PACKET_ADMIN_RCON,
30 ADMIN_PACKET_ADMIN_GAMESCRIPT,
31 ADMIN_PACKET_ADMIN_PING,
32 ADMIN_PACKET_ADMIN_EXTERNAL_CHAT,
33 ADMIN_PACKET_ADMIN_JOIN_SECURE,
34 ADMIN_PACKET_ADMIN_AUTH_RESPONSE,
35
36 ADMIN_PACKET_SERVER_FULL = 100,
37 ADMIN_PACKET_SERVER_BANNED,
38 ADMIN_PACKET_SERVER_ERROR,
39 ADMIN_PACKET_SERVER_PROTOCOL,
40 ADMIN_PACKET_SERVER_WELCOME,
41 ADMIN_PACKET_SERVER_NEWGAME,
42 ADMIN_PACKET_SERVER_SHUTDOWN,
43
44 ADMIN_PACKET_SERVER_DATE,
45 ADMIN_PACKET_SERVER_CLIENT_JOIN,
46 ADMIN_PACKET_SERVER_CLIENT_INFO,
47 ADMIN_PACKET_SERVER_CLIENT_UPDATE,
48 ADMIN_PACKET_SERVER_CLIENT_QUIT,
49 ADMIN_PACKET_SERVER_CLIENT_ERROR,
50 ADMIN_PACKET_SERVER_COMPANY_NEW,
51 ADMIN_PACKET_SERVER_COMPANY_INFO,
52 ADMIN_PACKET_SERVER_COMPANY_UPDATE,
53 ADMIN_PACKET_SERVER_COMPANY_REMOVE,
54 ADMIN_PACKET_SERVER_COMPANY_ECONOMY,
55 ADMIN_PACKET_SERVER_COMPANY_STATS,
56 ADMIN_PACKET_SERVER_CHAT,
57 ADMIN_PACKET_SERVER_RCON,
58 ADMIN_PACKET_SERVER_CONSOLE,
59 ADMIN_PACKET_SERVER_CMD_NAMES,
60 ADMIN_PACKET_SERVER_CMD_LOGGING_OLD,
61 ADMIN_PACKET_SERVER_GAMESCRIPT,
62 ADMIN_PACKET_SERVER_RCON_END,
63 ADMIN_PACKET_SERVER_PONG,
64 ADMIN_PACKET_SERVER_CMD_LOGGING,
65 ADMIN_PACKET_SERVER_AUTH_REQUEST,
66 ADMIN_PACKET_SERVER_ENABLE_ENCRYPTION,
67
68 INVALID_ADMIN_PACKET = 0xFF,
69};
70
72 enum AdminStatus : uint8_t {
73 ADMIN_STATUS_INACTIVE,
74 ADMIN_STATUS_AUTHENTICATE,
75 ADMIN_STATUS_ACTIVE,
76 ADMIN_STATUS_END,
77};
78
80 enum AdminUpdateType : uint8_t {
81 ADMIN_UPDATE_DATE,
82 ADMIN_UPDATE_CLIENT_INFO,
83 ADMIN_UPDATE_COMPANY_INFO,
84 ADMIN_UPDATE_COMPANY_ECONOMY,
85 ADMIN_UPDATE_COMPANY_STATS,
86 ADMIN_UPDATE_CHAT,
87 ADMIN_UPDATE_CONSOLE,
88 ADMIN_UPDATE_CMD_NAMES,
89 ADMIN_UPDATE_CMD_LOGGING,
90 ADMIN_UPDATE_GAMESCRIPT,
91 ADMIN_UPDATE_END,
92};
93
95 enum class AdminUpdateFrequency : uint8_t {
96 Poll,
97 Daily,
98 Weekly,
99 Monthly,
100 Quarterly,
101 Annually,
102 Automatic,
103};
104using AdminUpdateFrequencies = EnumBitSet<AdminUpdateFrequency, uint8_t>;
105
107 enum AdminCompanyRemoveReason : uint8_t {
108 ADMIN_CRR_MANUAL,
109 ADMIN_CRR_AUTOCLEAN,
110 ADMIN_CRR_BANKRUPT,
111
112 ADMIN_CRR_END,
113};
114
116 class NetworkAdminSocketHandler : public NetworkTCPSocketHandler {
117protected:
118 std::string admin_name{};
119 std::string admin_version{};
120 AdminStatus status = ADMIN_STATUS_INACTIVE;
121
122 NetworkRecvStatus ReceiveInvalidPacket(PacketAdminType type);
123
132 virtual NetworkRecvStatus Receive_ADMIN_JOIN(Packet &p);
133
139 virtual NetworkRecvStatus Receive_ADMIN_QUIT(Packet &p);
140
148 virtual NetworkRecvStatus Receive_ADMIN_UPDATE_FREQUENCY(Packet &p);
149
159 virtual NetworkRecvStatus Receive_ADMIN_POLL(Packet &p);
160
170 virtual NetworkRecvStatus Receive_ADMIN_CHAT(Packet &p);
171
181 virtual NetworkRecvStatus Receive_ADMIN_EXTERNAL_CHAT(Packet &p);
182
189 virtual NetworkRecvStatus Receive_ADMIN_RCON(Packet &p);
190
197 virtual NetworkRecvStatus Receive_ADMIN_GAMESCRIPT(Packet &p);
198
205 virtual NetworkRecvStatus Receive_ADMIN_PING(Packet &p);
206
219 virtual NetworkRecvStatus Receive_ADMIN_JOIN_SECURE(Packet &p);
220
231 virtual NetworkRecvStatus Receive_ADMIN_AUTH_RESPONSE(Packet &p);
232
238 virtual NetworkRecvStatus Receive_SERVER_FULL(Packet &p);
239
245 virtual NetworkRecvStatus Receive_SERVER_BANNED(Packet &p);
246
253 virtual NetworkRecvStatus Receive_SERVER_ERROR(Packet &p);
254
264 virtual NetworkRecvStatus Receive_SERVER_PROTOCOL(Packet &p);
265
280 virtual NetworkRecvStatus Receive_SERVER_WELCOME(Packet &p);
281
287 virtual NetworkRecvStatus Receive_SERVER_NEWGAME(Packet &p);
288
294 virtual NetworkRecvStatus Receive_SERVER_SHUTDOWN(Packet &p);
295
302 virtual NetworkRecvStatus Receive_SERVER_DATE(Packet &p);
303
310 virtual NetworkRecvStatus Receive_SERVER_CLIENT_JOIN(Packet &p);
311
323 virtual NetworkRecvStatus Receive_SERVER_CLIENT_INFO(Packet &p);
324
333 virtual NetworkRecvStatus Receive_SERVER_CLIENT_UPDATE(Packet &p);
334
341 virtual NetworkRecvStatus Receive_SERVER_CLIENT_QUIT(Packet &p);
342
350 virtual NetworkRecvStatus Receive_SERVER_CLIENT_ERROR(Packet &p);
351
358 virtual NetworkRecvStatus Receive_SERVER_COMPANY_NEW(Packet &p);
359
372 virtual NetworkRecvStatus Receive_SERVER_COMPANY_INFO(Packet &p);
373
389 virtual NetworkRecvStatus Receive_SERVER_COMPANY_UPDATE(Packet &p);
390
398 virtual NetworkRecvStatus Receive_SERVER_COMPANY_REMOVE(Packet &p);
399
416 virtual NetworkRecvStatus Receive_SERVER_COMPANY_ECONOMY(Packet &p);
417
434 virtual NetworkRecvStatus Receive_SERVER_COMPANY_STATS(Packet &p);
435
446 virtual NetworkRecvStatus Receive_SERVER_CHAT(Packet &p);
447
455 virtual NetworkRecvStatus Receive_SERVER_RCON(Packet &p);
456
464 virtual NetworkRecvStatus Receive_SERVER_CONSOLE(Packet &p);
465
483 virtual NetworkRecvStatus Receive_SERVER_CMD_NAMES(Packet &p);
484
503 virtual NetworkRecvStatus Receive_SERVER_CMD_LOGGING(Packet &p);
504
514 virtual NetworkRecvStatus Receive_SERVER_AUTH_REQUEST(Packet &p);
515
522 virtual NetworkRecvStatus Receive_SERVER_ENABLE_ENCRYPTION(Packet &p);
523
530 virtual NetworkRecvStatus Receive_SERVER_PONG(Packet &p);
531
538 virtual NetworkRecvStatus Receive_SERVER_RCON_END(Packet &p);
539
540 NetworkRecvStatus HandlePacket(Packet &p);
541public:
542 NetworkRecvStatus CloseConnection(bool error = true) override;
543
548 NetworkAdminSocketHandler(SOCKET s) : NetworkTCPSocketHandler(s) {}
549
550 NetworkRecvStatus ReceivePackets();
551
556 AdminStatus GetAdminStatus() const
557 {
558 return this->status;
559 }
560};
561
562#endif /* NETWORK_CORE_TCP_ADMIN_H */
EnumBitSet
Enum-as-bit-set wrapper.
Definition enum_type.hpp:177
NetworkAdminSocketHandler
Main socket handler for admin related connections.
Definition tcp_admin.h:116
NetworkAdminSocketHandler::Receive_ADMIN_EXTERNAL_CHAT
virtual NetworkRecvStatus Receive_ADMIN_EXTERNAL_CHAT(Packet &p)
Send chat from the external source: string Name of the source this message came from.
Definition tcp_admin.cpp:131
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:132
NetworkAdminSocketHandler::Receive_SERVER_AUTH_REQUEST
virtual NetworkRecvStatus Receive_SERVER_AUTH_REQUEST(Packet &p)
Server requests authentication challenge from the admin.
Definition tcp_admin.cpp:165
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:151
NetworkAdminSocketHandler::Receive_SERVER_WELCOME
virtual NetworkRecvStatus Receive_SERVER_WELCOME(Packet &p)
Welcome a connected admin to the game: string Name of the Server.
Definition tcp_admin.cpp:142
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_ECONOMY
virtual NetworkRecvStatus Receive_SERVER_COMPANY_ECONOMY(Packet &p)
Economy update of a specific company: uint8_t ID of the company.
Definition tcp_admin.cpp:156
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_STATS
virtual NetworkRecvStatus Receive_SERVER_COMPANY_STATS(Packet &p)
Company statistics on stations and vehicles: uint8_t ID of the company.
Definition tcp_admin.cpp:157
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_NEW
virtual NetworkRecvStatus Receive_SERVER_COMPANY_NEW(Packet &p)
Notification of a new company: uint8_t ID of the new company.
Definition tcp_admin.cpp:152
NetworkAdminSocketHandler::Receive_SERVER_DATE
virtual NetworkRecvStatus Receive_SERVER_DATE(Packet &p)
Send the current date of the game: uint32_t Current game date.
Definition tcp_admin.cpp:146
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_UPDATE
virtual NetworkRecvStatus Receive_SERVER_COMPANY_UPDATE(Packet &p)
Company information of a specific company: uint8_t ID of the company.
Definition tcp_admin.cpp:154
NetworkAdminSocketHandler::Receive_SERVER_RCON
virtual NetworkRecvStatus Receive_SERVER_RCON(Packet &p)
Result of an rcon command: uint16_t Colour as it would be used on the server or a client.
Definition tcp_admin.cpp:159
NetworkAdminSocketHandler::HandlePacket
NetworkRecvStatus HandlePacket(Packet &p)
Handle the given packet, i.e.
Definition tcp_admin.cpp:37
NetworkAdminSocketHandler::Receive_ADMIN_GAMESCRIPT
virtual NetworkRecvStatus Receive_ADMIN_GAMESCRIPT(Packet &p)
Send a JSON string to the current active GameScript.
Definition tcp_admin.cpp:133
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:162
NetworkAdminSocketHandler::Receive_SERVER_SHUTDOWN
virtual NetworkRecvStatus Receive_SERVER_SHUTDOWN(Packet &p)
Notification about the server shutting down.
Definition tcp_admin.cpp:144
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:140
NetworkAdminSocketHandler::CloseConnection
NetworkRecvStatus CloseConnection(bool error=true) override
This will put this socket handler in a close state.
Definition tcp_admin.cpp:26
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_REMOVE
virtual NetworkRecvStatus Receive_SERVER_COMPANY_REMOVE(Packet &p)
Notification about a removed company (e.g.
Definition tcp_admin.cpp:155
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:149
NetworkAdminSocketHandler::Receive_SERVER_FULL
virtual NetworkRecvStatus Receive_SERVER_FULL(Packet &p)
The server is full (connection gets closed).
Definition tcp_admin.cpp:138
NetworkAdminSocketHandler::NetworkAdminSocketHandler
NetworkAdminSocketHandler(SOCKET s)
Create the admin handler for the given socket.
Definition tcp_admin.h:548
NetworkAdminSocketHandler::Receive_ADMIN_QUIT
virtual NetworkRecvStatus Receive_ADMIN_QUIT(Packet &p)
Notification to the server that this admin is quitting.
Definition tcp_admin.cpp:127
NetworkAdminSocketHandler::Receive_SERVER_CLIENT_JOIN
virtual NetworkRecvStatus Receive_SERVER_CLIENT_JOIN(Packet &p)
Notification of a new client: uint32_t ID of the new client.
Definition tcp_admin.cpp:147
NetworkAdminSocketHandler::Receive_ADMIN_AUTH_RESPONSE
virtual NetworkRecvStatus Receive_ADMIN_AUTH_RESPONSE(Packet &p)
Admin responds to ADMIN_PACKET_SERVER_AUTH_REQUEST with the appropriate data given the agreed upon Ne...
Definition tcp_admin.cpp:136
NetworkAdminSocketHandler::Receive_SERVER_CLIENT_QUIT
virtual NetworkRecvStatus Receive_SERVER_CLIENT_QUIT(Packet &p)
Notification about a client leaving the game.
Definition tcp_admin.cpp:150
NetworkAdminSocketHandler::GetAdminStatus
AdminStatus GetAdminStatus() const
Get the status of the admin.
Definition tcp_admin.h:556
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:129
NetworkAdminSocketHandler::Receive_ADMIN_JOIN
virtual NetworkRecvStatus Receive_ADMIN_JOIN(Packet &p)
Join the admin network using an unsecured password exchange: string Unsecured password the server is ...
Definition tcp_admin.cpp:126
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:134
NetworkAdminSocketHandler::Receive_ADMIN_CHAT
virtual NetworkRecvStatus Receive_ADMIN_CHAT(Packet &p)
Send chat as the server: uint8_t Action such as NETWORK_ACTION_CHAT_CLIENT (see NetworkAction).
Definition tcp_admin.cpp:130
NetworkAdminSocketHandler::Receive_SERVER_CONSOLE
virtual NetworkRecvStatus Receive_SERVER_CONSOLE(Packet &p)
Send what would be printed on the server's console also into the admin network.
Definition tcp_admin.cpp:160
NetworkAdminSocketHandler::Receive_SERVER_COMPANY_INFO
virtual NetworkRecvStatus Receive_SERVER_COMPANY_INFO(Packet &p)
Company information on a specific company: uint8_t ID of the company.
Definition tcp_admin.cpp:153
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:164
NetworkAdminSocketHandler::Receive_SERVER_ENABLE_ENCRYPTION
virtual NetworkRecvStatus Receive_SERVER_ENABLE_ENCRYPTION(Packet &p)
Indication to the client that authentication is complete and encryption has to be used from here on f...
Definition tcp_admin.cpp:166
NetworkAdminSocketHandler::Receive_ADMIN_JOIN_SECURE
virtual NetworkRecvStatus Receive_ADMIN_JOIN_SECURE(Packet &p)
Join the admin network using a secure authentication method: string Name of the application being use...
Definition tcp_admin.cpp:135
NetworkAdminSocketHandler::ReceiveInvalidPacket
NetworkRecvStatus ReceiveInvalidPacket(PacketAdminType type)
Helper for logging receiving invalid packets.
Definition tcp_admin.cpp:120
NetworkAdminSocketHandler::ReceivePackets
NetworkRecvStatus ReceivePackets()
Do the actual receiving of packets.
Definition tcp_admin.cpp:104
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:161
NetworkAdminSocketHandler::status
AdminStatus status
Status of this admin.
Definition tcp_admin.h:120
NetworkAdminSocketHandler::Receive_SERVER_NEWGAME
virtual NetworkRecvStatus Receive_SERVER_NEWGAME(Packet &p)
Notification about a newgame.
Definition tcp_admin.cpp:143
NetworkAdminSocketHandler::admin_version
std::string admin_version
Version string of the admin.
Definition tcp_admin.h:119
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_t Up...
Definition tcp_admin.cpp:128
NetworkAdminSocketHandler::Receive_SERVER_PROTOCOL
virtual NetworkRecvStatus Receive_SERVER_PROTOCOL(Packet &p)
Inform a just joined admin about the protocol specifics: uint8_t Protocol version.
Definition tcp_admin.cpp:141
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:163
NetworkAdminSocketHandler::Receive_SERVER_CHAT
virtual NetworkRecvStatus Receive_SERVER_CHAT(Packet &p)
Send chat from the game into the admin network: uint8_t Action such as NETWORK_ACTION_CHAT_CLIENT (se...
Definition tcp_admin.cpp:158
NetworkAdminSocketHandler::Receive_SERVER_CLIENT_INFO
virtual NetworkRecvStatus Receive_SERVER_CLIENT_INFO(Packet &p)
Client information of a specific client: uint32_t ID of the client.
Definition tcp_admin.cpp:148
NetworkAdminSocketHandler::admin_name
std::string admin_name
Name of the admin.
Definition tcp_admin.h:118
NetworkAdminSocketHandler::Receive_SERVER_BANNED
virtual NetworkRecvStatus Receive_SERVER_BANNED(Packet &p)
The source IP address is banned (connection gets closed).
Definition tcp_admin.cpp:139
NetworkTCPSocketHandler
Base socket handler for all TCP sockets.
Definition tcp.h:31
NetworkRecvStatus
NetworkRecvStatus
Status of a network client; reasons why a client has quit.
Definition core.h:23
os_abstraction.h
Network stuff has many things that needs to be included and/or implemented by default.
Packet
Internal entity of a packet.
Definition packet.h:43
tcp.h
Basic functions to receive and send TCP packets.
PacketAdminType
PacketAdminType
Enum with types of TCP packets specific to the admin network.
Definition tcp_admin.h:23
ADMIN_PACKET_ADMIN_PING
@ ADMIN_PACKET_ADMIN_PING
The admin sends a ping to the server, expecting a ping-reply (PONG) packet.
Definition tcp_admin.h:31
ADMIN_PACKET_SERVER_CONSOLE
@ ADMIN_PACKET_SERVER_CONSOLE
The server gives the admin the data that got printed to its console.
Definition tcp_admin.h:58
ADMIN_PACKET_SERVER_ENABLE_ENCRYPTION
@ ADMIN_PACKET_SERVER_ENABLE_ENCRYPTION
The server tells that authentication has completed and requests to enable encryption with the keys of...
Definition tcp_admin.h:66
ADMIN_PACKET_ADMIN_UPDATE_FREQUENCY
@ ADMIN_PACKET_ADMIN_UPDATE_FREQUENCY
The admin tells the server the update frequency of a particular piece of information.
Definition tcp_admin.h:26
ADMIN_PACKET_SERVER_CLIENT_UPDATE
@ ADMIN_PACKET_SERVER_CLIENT_UPDATE
The server gives the admin an information update on a client.
Definition tcp_admin.h:47
ADMIN_PACKET_SERVER_COMPANY_STATS
@ ADMIN_PACKET_SERVER_COMPANY_STATS
The server gives the admin some statistics about a company.
Definition tcp_admin.h:55
ADMIN_PACKET_SERVER_COMPANY_ECONOMY
@ ADMIN_PACKET_SERVER_COMPANY_ECONOMY
The server gives the admin some economy related company information.
Definition tcp_admin.h:54
ADMIN_PACKET_SERVER_GAMESCRIPT
@ ADMIN_PACKET_SERVER_GAMESCRIPT
The server gives the admin information from the GameScript in JSON.
Definition tcp_admin.h:61
ADMIN_PACKET_ADMIN_JOIN
@ ADMIN_PACKET_ADMIN_JOIN
The admin announces and authenticates itself to the server using an unsecured passwords.
Definition tcp_admin.h:24
ADMIN_PACKET_SERVER_CMD_LOGGING_OLD
@ ADMIN_PACKET_SERVER_CMD_LOGGING_OLD
Used to be the type ID of ADMIN_PACKET_SERVER_CMD_LOGGING in NETWORK_GAME_ADMIN_VERSION 1.
Definition tcp_admin.h:60
ADMIN_PACKET_SERVER_CLIENT_INFO
@ ADMIN_PACKET_SERVER_CLIENT_INFO
The server gives the admin information about a client.
Definition tcp_admin.h:46
ADMIN_PACKET_SERVER_CLIENT_ERROR
@ ADMIN_PACKET_SERVER_CLIENT_ERROR
The server tells the admin that a client caused an error.
Definition tcp_admin.h:49
ADMIN_PACKET_ADMIN_GAMESCRIPT
@ ADMIN_PACKET_ADMIN_GAMESCRIPT
The admin sends a JSON string for the GameScript.
Definition tcp_admin.h:30
ADMIN_PACKET_SERVER_AUTH_REQUEST
@ ADMIN_PACKET_SERVER_AUTH_REQUEST
The server gives the admin the used authentication method and required parameters.
Definition tcp_admin.h:65
ADMIN_PACKET_SERVER_CHAT
@ ADMIN_PACKET_SERVER_CHAT
The server received a chat message and relays it.
Definition tcp_admin.h:56
ADMIN_PACKET_SERVER_SHUTDOWN
@ ADMIN_PACKET_SERVER_SHUTDOWN
The server tells the admin its shutting down.
Definition tcp_admin.h:42
ADMIN_PACKET_SERVER_RCON_END
@ ADMIN_PACKET_SERVER_RCON_END
The server indicates that the remote console command has completed.
Definition tcp_admin.h:62
ADMIN_PACKET_SERVER_WELCOME
@ ADMIN_PACKET_SERVER_WELCOME
The server welcomes the admin to a game.
Definition tcp_admin.h:40
ADMIN_PACKET_SERVER_COMPANY_REMOVE
@ ADMIN_PACKET_SERVER_COMPANY_REMOVE
The server tells the admin that a company was removed.
Definition tcp_admin.h:53
ADMIN_PACKET_SERVER_ERROR
@ ADMIN_PACKET_SERVER_ERROR
The server tells the admin an error has occurred.
Definition tcp_admin.h:38
ADMIN_PACKET_ADMIN_QUIT
@ ADMIN_PACKET_ADMIN_QUIT
The admin tells the server that it is quitting.
Definition tcp_admin.h:25
ADMIN_PACKET_ADMIN_POLL
@ ADMIN_PACKET_ADMIN_POLL
The admin explicitly polls for a piece of information.
Definition tcp_admin.h:27
ADMIN_PACKET_SERVER_NEWGAME
@ ADMIN_PACKET_SERVER_NEWGAME
The server tells the admin its going to start a new game.
Definition tcp_admin.h:41
ADMIN_PACKET_SERVER_BANNED
@ ADMIN_PACKET_SERVER_BANNED
The server tells the admin it is banned.
Definition tcp_admin.h:37
ADMIN_PACKET_SERVER_COMPANY_UPDATE
@ ADMIN_PACKET_SERVER_COMPANY_UPDATE
The server gives the admin an information update on a company.
Definition tcp_admin.h:52
ADMIN_PACKET_SERVER_PONG
@ ADMIN_PACKET_SERVER_PONG
The server replies to a ping request from the admin.
Definition tcp_admin.h:63
ADMIN_PACKET_SERVER_CLIENT_JOIN
@ ADMIN_PACKET_SERVER_CLIENT_JOIN
The server tells the admin that a client has joined.
Definition tcp_admin.h:45
ADMIN_PACKET_ADMIN_CHAT
@ ADMIN_PACKET_ADMIN_CHAT
The admin sends a chat message to be distributed.
Definition tcp_admin.h:28
ADMIN_PACKET_SERVER_CMD_LOGGING
@ ADMIN_PACKET_SERVER_CMD_LOGGING
The server gives the admin copies of incoming command packets.
Definition tcp_admin.h:64
ADMIN_PACKET_SERVER_PROTOCOL
@ ADMIN_PACKET_SERVER_PROTOCOL
The server tells the admin its protocol version.
Definition tcp_admin.h:39
ADMIN_PACKET_ADMIN_JOIN_SECURE
@ ADMIN_PACKET_ADMIN_JOIN_SECURE
The admin announces and starts a secure authentication handshake.
Definition tcp_admin.h:33
ADMIN_PACKET_SERVER_CLIENT_QUIT
@ ADMIN_PACKET_SERVER_CLIENT_QUIT
The server tells the admin that a client quit.
Definition tcp_admin.h:48
INVALID_ADMIN_PACKET
@ INVALID_ADMIN_PACKET
An invalid marker for admin packets.
Definition tcp_admin.h:68
ADMIN_PACKET_SERVER_COMPANY_INFO
@ ADMIN_PACKET_SERVER_COMPANY_INFO
The server gives the admin information about a company.
Definition tcp_admin.h:51
ADMIN_PACKET_SERVER_CMD_NAMES
@ ADMIN_PACKET_SERVER_CMD_NAMES
The server sends out the names of the DoCommands to the admins.
Definition tcp_admin.h:59
ADMIN_PACKET_SERVER_FULL
@ ADMIN_PACKET_SERVER_FULL
The server tells the admin it cannot accept the admin.
Definition tcp_admin.h:36
ADMIN_PACKET_ADMIN_RCON
@ ADMIN_PACKET_ADMIN_RCON
The admin sends a remote console command.
Definition tcp_admin.h:29
ADMIN_PACKET_ADMIN_AUTH_RESPONSE
@ ADMIN_PACKET_ADMIN_AUTH_RESPONSE
The admin responds to the authentication request.
Definition tcp_admin.h:34
ADMIN_PACKET_SERVER_DATE
@ ADMIN_PACKET_SERVER_DATE
The server tells the admin what the current game date is.
Definition tcp_admin.h:44
ADMIN_PACKET_SERVER_COMPANY_NEW
@ ADMIN_PACKET_SERVER_COMPANY_NEW
The server tells the admin that a new company has started.
Definition tcp_admin.h:50
ADMIN_PACKET_ADMIN_EXTERNAL_CHAT
@ ADMIN_PACKET_ADMIN_EXTERNAL_CHAT
The admin sends a chat message from external source.
Definition tcp_admin.h:32
ADMIN_PACKET_SERVER_RCON
@ ADMIN_PACKET_SERVER_RCON
The server's reply to a remove console command.
Definition tcp_admin.h:57
AdminUpdateType
AdminUpdateType
Update types an admin can register a frequency for.
Definition tcp_admin.h:80
ADMIN_UPDATE_DATE
@ ADMIN_UPDATE_DATE
Updates about the date of the game.
Definition tcp_admin.h:81
ADMIN_UPDATE_GAMESCRIPT
@ ADMIN_UPDATE_GAMESCRIPT
The admin would like to have gamescript messages.
Definition tcp_admin.h:90
ADMIN_UPDATE_COMPANY_INFO
@ ADMIN_UPDATE_COMPANY_INFO
Updates about the generic information of companies.
Definition tcp_admin.h:83
ADMIN_UPDATE_CONSOLE
@ ADMIN_UPDATE_CONSOLE
The admin would like to have console messages.
Definition tcp_admin.h:87
ADMIN_UPDATE_CHAT
@ ADMIN_UPDATE_CHAT
The admin would like to have chat messages.
Definition tcp_admin.h:86
ADMIN_UPDATE_COMPANY_STATS
@ ADMIN_UPDATE_COMPANY_STATS
Updates about the statistics of companies.
Definition tcp_admin.h:85
ADMIN_UPDATE_COMPANY_ECONOMY
@ ADMIN_UPDATE_COMPANY_ECONOMY
Updates about the economy of companies.
Definition tcp_admin.h:84
ADMIN_UPDATE_END
@ ADMIN_UPDATE_END
Must ALWAYS be on the end of this list!! (period)
Definition tcp_admin.h:91
ADMIN_UPDATE_CLIENT_INFO
@ ADMIN_UPDATE_CLIENT_INFO
Updates about the information of clients.
Definition tcp_admin.h:82
ADMIN_UPDATE_CMD_NAMES
@ ADMIN_UPDATE_CMD_NAMES
The admin would like a list of all DoCommand names.
Definition tcp_admin.h:88
ADMIN_UPDATE_CMD_LOGGING
@ ADMIN_UPDATE_CMD_LOGGING
The admin would like to have DoCommand information.
Definition tcp_admin.h:89
AdminCompanyRemoveReason
AdminCompanyRemoveReason
Reasons for removing a company - communicated to admins.
Definition tcp_admin.h:107
ADMIN_CRR_BANKRUPT
@ ADMIN_CRR_BANKRUPT
The company went belly-up.
Definition tcp_admin.h:110
ADMIN_CRR_MANUAL
@ ADMIN_CRR_MANUAL
The company is manually removed.
Definition tcp_admin.h:108
ADMIN_CRR_AUTOCLEAN
@ ADMIN_CRR_AUTOCLEAN
The company is removed due to autoclean.
Definition tcp_admin.h:109
ADMIN_CRR_END
@ ADMIN_CRR_END
Sentinel for end.
Definition tcp_admin.h:112
AdminUpdateFrequency
AdminUpdateFrequency
Update frequencies an admin can register.
Definition tcp_admin.h:95
AdminUpdateFrequency::Automatic
@ Automatic
The admin gets information about this when it changes.
AdminUpdateFrequency::Annually
@ Annually
The admin gets information about this on a yearly basis.
AdminUpdateFrequency::Weekly
@ Weekly
The admin gets information about this on a weekly basis.
AdminUpdateFrequency::Poll
@ Poll
The admin can poll this.
AdminUpdateFrequency::Monthly
@ Monthly
The admin gets information about this on a monthly basis.
AdminUpdateFrequency::Quarterly
@ Quarterly
The admin gets information about this on a quarterly basis.
AdminUpdateFrequency::Daily
@ Daily
The admin gets information about this on a daily basis.
AdminStatus
AdminStatus
Status of an admin.
Definition tcp_admin.h:72
ADMIN_STATUS_END
@ ADMIN_STATUS_END
Must ALWAYS be on the end of this list!! (period)
Definition tcp_admin.h:76
ADMIN_STATUS_INACTIVE
@ ADMIN_STATUS_INACTIVE
The admin is not connected nor active.
Definition tcp_admin.h:73
ADMIN_STATUS_ACTIVE
@ ADMIN_STATUS_ACTIVE
The admin is active.
Definition tcp_admin.h:75
ADMIN_STATUS_AUTHENTICATE
@ ADMIN_STATUS_AUTHENTICATE
The admin is connected and working on authentication.
Definition tcp_admin.h:74