OpenTTD Source 20241224-master-gf74b0cf984
config.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 <http://www.gnu.org/licenses/>.
6 */
7
12#ifndef NETWORK_CORE_CONFIG_H
13#define NETWORK_CORE_CONFIG_H
14
16const char *NetworkStunConnectionString();
19const char *NetworkSurveyUriString();
20
21static const uint16_t NETWORK_COORDINATOR_SERVER_PORT = 3976;
22static const uint16_t NETWORK_STUN_SERVER_PORT = 3975;
23static const uint16_t NETWORK_TURN_SERVER_PORT = 3974;
24static const uint16_t NETWORK_CONTENT_SERVER_PORT = 3978;
25static const uint16_t NETWORK_DEFAULT_PORT = 3979;
26static const uint16_t NETWORK_ADMIN_PORT = 3977;
27
28static const size_t UDP_MTU = 1460;
29
30static const std::string NETWORK_SURVEY_DETAILS_LINK = "https://survey.openttd.org/participate";
31/*
32 * Technically a TCP packet could become 64kiB, however the high bit is kept so it becomes possible in the future
33 * to go to (significantly) larger packets if needed. This would entail a strategy such as employed for UTF-8.
34 *
35 * Packets up to 32 KiB have the high bit not set:
36 * 00000000 00000000 0bbbbbbb aaaaaaaa -> aaaaaaaa 0bbbbbbb
37 * Send_uint16(GB(size, 0, 15)
38 *
39 * Packets up to 1 GiB, first uint16_t has high bit set so it knows to read a
40 * next uint16_t for the remaining bits of the size.
41 * 00dddddd cccccccc bbbbbbbb aaaaaaaa -> cccccccc 10dddddd aaaaaaaa bbbbbbbb
42 * Send_uint16(GB(size, 16, 14) | 0b10 << 14)
43 * Send_uint16(GB(size, 0, 16))
44 */
45static const size_t TCP_MTU = 32767;
46static const size_t COMPAT_MTU = 1460;
47
48static const uint8_t NETWORK_GAME_ADMIN_VERSION = 3;
49static const uint8_t NETWORK_GAME_INFO_VERSION = 7;
50static const uint8_t NETWORK_COORDINATOR_VERSION = 6;
51static const uint8_t NETWORK_SURVEY_VERSION = 2;
52
53static const uint NETWORK_NAME_LENGTH = 80;
54static const uint NETWORK_HOSTNAME_LENGTH = 80;
55static const uint NETWORK_HOSTNAME_PORT_LENGTH = 80 + 6;
56static const uint NETWORK_REVISION_LENGTH = 33;
57static const uint NETWORK_PASSWORD_LENGTH = 33;
58static const uint NETWORK_CLIENT_NAME_LENGTH = 25;
59static const uint NETWORK_RCONCOMMAND_LENGTH = 500;
60static const uint NETWORK_GAMESCRIPT_JSON_LENGTH = 9000;
61static const uint NETWORK_CHAT_LENGTH = 900;
62static const uint NETWORK_CONTENT_FILENAME_LENGTH = 48;
63static const uint NETWORK_CONTENT_NAME_LENGTH = 32;
64static const uint NETWORK_CONTENT_VERSION_LENGTH = 16;
65static const uint NETWORK_CONTENT_URL_LENGTH = 96;
66static const uint NETWORK_CONTENT_DESC_LENGTH = 512;
67static const uint NETWORK_CONTENT_TAG_LENGTH = 32;
68static const uint NETWORK_ERROR_DETAIL_LENGTH = 100;
69static const uint NETWORK_INVITE_CODE_LENGTH = 64;
70static const uint NETWORK_INVITE_CODE_SECRET_LENGTH = 80;
71static const uint NETWORK_TOKEN_LENGTH = 64;
72
73static const uint NETWORK_GRF_NAME_LENGTH = 80;
74
90static const uint NETWORK_MAX_GRF_COUNT = 255;
91
96static const uint NETWORK_SECRET_KEY_LENGTH = 32 * 2 + 1;
101static const uint NETWORK_PUBLIC_KEY_LENGTH = 32 * 2 + 1;
102
103#endif /* NETWORK_CORE_CONFIG_H */
static const uint16_t NETWORK_CONTENT_SERVER_PORT
The default port of the content server (TCP)
Definition config.h:24
static const uint NETWORK_INVITE_CODE_SECRET_LENGTH
The maximum length of the invite code secret, in bytes including '\0'.
Definition config.h:70
const char * NetworkStunConnectionString()
Get the connection string for the STUN server from the environment variable OTTD_STUN_CS,...
Definition config.cpp:45
static const uint NETWORK_GAMESCRIPT_JSON_LENGTH
The maximum length of a receiving gamescript json string, in bytes including '\0'.
Definition config.h:60
static const uint NETWORK_CONTENT_URL_LENGTH
The maximum length of a content's url, in bytes including '\0'.
Definition config.h:65
static const uint16_t NETWORK_STUN_SERVER_PORT
The default port of the STUN server (TCP)
Definition config.h:22
static const uint NETWORK_CONTENT_VERSION_LENGTH
The maximum length of a content's version, in bytes including '\0'.
Definition config.h:64
static const uint16_t NETWORK_TURN_SERVER_PORT
The default port of the TURN server (TCP)
Definition config.h:23
static const size_t TCP_MTU
Number of bytes we can pack in a single TCP packet.
Definition config.h:45
static const uint NETWORK_CLIENT_NAME_LENGTH
The maximum length of a client's name, in bytes including '\0'.
Definition config.h:58
static const uint16_t NETWORK_COORDINATOR_SERVER_PORT
The default port of the Game Coordinator server (TCP)
Definition config.h:21
const char * NetworkContentMirrorUriString()
Get the URI string for the content mirror from the environment variable OTTD_CONTENT_MIRROR_URI,...
Definition config.cpp:65
static const uint NETWORK_SECRET_KEY_LENGTH
The maximum length of the hexadecimal encoded secret keys, in bytes including '\0'.
Definition config.h:96
static const uint8_t NETWORK_COORDINATOR_VERSION
What version of game-coordinator-protocol do we use?
Definition config.h:50
static const uint NETWORK_CONTENT_FILENAME_LENGTH
The maximum length of a content's filename, in bytes including '\0'.
Definition config.h:62
static const uint NETWORK_INVITE_CODE_LENGTH
The maximum length of the invite code, in bytes including '\0'.
Definition config.h:69
static const uint NETWORK_HOSTNAME_PORT_LENGTH
The maximum length of the host name + port, in bytes including '\0'. The extra six is ":" + port numb...
Definition config.h:55
static const uint NETWORK_HOSTNAME_LENGTH
The maximum length of the host name, in bytes including '\0'.
Definition config.h:54
static const uint NETWORK_CHAT_LENGTH
The maximum length of a chat message, in bytes including '\0'.
Definition config.h:61
const char * NetworkContentServerConnectionString()
Get the connection string for the content server from the environment variable OTTD_CONTENT_SERVER_CS...
Definition config.cpp:55
static const uint NETWORK_NAME_LENGTH
The maximum length of the server name and map name, in bytes including '\0'.
Definition config.h:53
static const uint8_t NETWORK_SURVEY_VERSION
What version of the survey do we use?
Definition config.h:51
static const size_t UDP_MTU
Number of bytes we can pack in a single UDP packet.
Definition config.h:28
static const uint NETWORK_CONTENT_DESC_LENGTH
The maximum length of a content's description, in bytes including '\0'.
Definition config.h:66
static const uint NETWORK_CONTENT_TAG_LENGTH
The maximum length of a content's tag, in bytes including '\0'.
Definition config.h:67
const char * NetworkCoordinatorConnectionString()
Get the connection string for the game coordinator from the environment variable OTTD_COORDINATOR_CS,...
Definition config.cpp:35
static const uint16_t NETWORK_ADMIN_PORT
The default port for admin network.
Definition config.h:26
static const size_t COMPAT_MTU
Number of bytes we can pack in a single packet for backward compatibility.
Definition config.h:46
static const uint NETWORK_CONTENT_NAME_LENGTH
The maximum length of a content's name, in bytes including '\0'.
Definition config.h:63
static const uint16_t NETWORK_DEFAULT_PORT
The default port of the game server (TCP & UDP)
Definition config.h:25
static const uint NETWORK_GRF_NAME_LENGTH
Maximum length of the name of a GRF.
Definition config.h:73
static const uint NETWORK_PUBLIC_KEY_LENGTH
The maximum length of the hexadecimal encoded public keys, in bytes including '\0'.
Definition config.h:101
static const uint NETWORK_MAX_GRF_COUNT
Maximum number of GRFs that can be sent.
Definition config.h:90
static const std::string NETWORK_SURVEY_DETAILS_LINK
Link with more details & privacy statement of the survey.
Definition config.h:30
static const uint NETWORK_REVISION_LENGTH
The maximum length of the revision, in bytes including '\0'.
Definition config.h:56
static const uint NETWORK_TOKEN_LENGTH
The maximum length of a token, in bytes including '\0'.
Definition config.h:71
static const uint NETWORK_RCONCOMMAND_LENGTH
The maximum length of a rconsole command, in bytes including '\0'.
Definition config.h:59
static const uint NETWORK_ERROR_DETAIL_LENGTH
The maximum length of the error detail, in bytes including '\0'.
Definition config.h:68
static const uint NETWORK_PASSWORD_LENGTH
The maximum length of the password, in bytes including '\0'.
Definition config.h:57
static const uint8_t NETWORK_GAME_INFO_VERSION
What version of game-info do we use?
Definition config.h:49
const char * NetworkSurveyUriString()
Get the URI string for the survey from the environment variable OTTD_SURVEY_URI, or when it has not b...
Definition config.cpp:75
static const uint8_t NETWORK_GAME_ADMIN_VERSION
What version of the admin network do we use?
Definition config.h:48