OpenTTD Source  20241108-master-g80f628063a
config.h File Reference

Configuration options of the network stuff. More...

Go to the source code of this file.

Functions

const char * NetworkCoordinatorConnectionString ()
 Get the connection string for the game coordinator from the environment variable OTTD_COORDINATOR_CS, or when it has not been set a hard coded default DNS hostname of the production server. More...
 
const char * NetworkStunConnectionString ()
 Get the connection string for the STUN server from the environment variable OTTD_STUN_CS, or when it has not been set a hard coded default DNS hostname of the production server. More...
 
const char * NetworkContentServerConnectionString ()
 Get the connection string for the content server from the environment variable OTTD_CONTENT_SERVER_CS, or when it has not been set a hard coded default DNS hostname of the production server. More...
 
const char * NetworkContentMirrorUriString ()
 Get the URI string for the content mirror from the environment variable OTTD_CONTENT_MIRROR_URI, or when it has not been set a hard coded URI of the production server. More...
 
const char * NetworkSurveyUriString ()
 Get the URI string for the survey from the environment variable OTTD_SURVEY_URI, or when it has not been set a hard coded URI of the production server. More...
 

Variables

static const uint16_t NETWORK_COORDINATOR_SERVER_PORT = 3976
 The default port of the Game Coordinator server (TCP)
 
static const uint16_t NETWORK_STUN_SERVER_PORT = 3975
 The default port of the STUN server (TCP)
 
static const uint16_t NETWORK_TURN_SERVER_PORT = 3974
 The default port of the TURN server (TCP)
 
static const uint16_t NETWORK_CONTENT_SERVER_PORT = 3978
 The default port of the content server (TCP)
 
static const uint16_t NETWORK_DEFAULT_PORT = 3979
 The default port of the game server (TCP & UDP)
 
static const uint16_t NETWORK_ADMIN_PORT = 3977
 The default port for admin network.
 
static const size_t UDP_MTU = 1460
 Number of bytes we can pack in a single UDP packet.
 
static const std::string NETWORK_SURVEY_DETAILS_LINK = "https://survey.openttd.org/participate"
 Link with more details & privacy statement of the survey.
 
static const size_t TCP_MTU = 32767
 Number of bytes we can pack in a single TCP packet.
 
static const size_t COMPAT_MTU = 1460
 Number of bytes we can pack in a single packet for backward compatibility.
 
static const uint8_t NETWORK_GAME_ADMIN_VERSION = 3
 What version of the admin network do we use?
 
static const uint8_t NETWORK_GAME_INFO_VERSION = 7
 What version of game-info do we use?
 
static const uint8_t NETWORK_COORDINATOR_VERSION = 6
 What version of game-coordinator-protocol do we use?
 
static const uint8_t NETWORK_SURVEY_VERSION = 2
 What version of the survey do we use?
 
static const uint NETWORK_NAME_LENGTH = 80
 The maximum length of the server name and map name, in bytes including '\0'.
 
static const uint NETWORK_COMPANY_NAME_LENGTH = 128
 The maximum length of the company name, in bytes including '\0'.
 
static const uint NETWORK_HOSTNAME_LENGTH = 80
 The maximum length of the host name, in bytes including '\0'.
 
static const uint NETWORK_HOSTNAME_PORT_LENGTH = 80 + 6
 The maximum length of the host name + port, in bytes including '\0'. The extra six is ":" + port number (with a max of 65536)
 
static const uint NETWORK_REVISION_LENGTH = 33
 The maximum length of the revision, in bytes including '\0'.
 
static const uint NETWORK_PASSWORD_LENGTH = 33
 The maximum length of the password, in bytes including '\0'.
 
static const uint NETWORK_CLIENT_NAME_LENGTH = 25
 The maximum length of a client's name, in bytes including '\0'.
 
static const uint NETWORK_RCONCOMMAND_LENGTH = 500
 The maximum length of a rconsole command, in bytes including '\0'.
 
static const uint NETWORK_GAMESCRIPT_JSON_LENGTH = 9000
 The maximum length of a receiving gamescript json string, in bytes including '\0'.
 
static const uint NETWORK_CHAT_LENGTH = 900
 The maximum length of a chat message, in bytes including '\0'.
 
static const uint NETWORK_CONTENT_FILENAME_LENGTH = 48
 The maximum length of a content's filename, in bytes including '\0'.
 
static const uint NETWORK_CONTENT_NAME_LENGTH = 32
 The maximum length of a content's name, in bytes including '\0'.
 
static const uint NETWORK_CONTENT_VERSION_LENGTH = 16
 The maximum length of a content's version, in bytes including '\0'.
 
static const uint NETWORK_CONTENT_URL_LENGTH = 96
 The maximum length of a content's url, in bytes including '\0'.
 
static const uint NETWORK_CONTENT_DESC_LENGTH = 512
 The maximum length of a content's description, in bytes including '\0'.
 
static const uint NETWORK_CONTENT_TAG_LENGTH = 32
 The maximum length of a content's tag, in bytes including '\0'.
 
static const uint NETWORK_ERROR_DETAIL_LENGTH = 100
 The maximum length of the error detail, in bytes including '\0'.
 
static const uint NETWORK_INVITE_CODE_LENGTH = 64
 The maximum length of the invite code, in bytes including '\0'.
 
static const uint NETWORK_INVITE_CODE_SECRET_LENGTH = 80
 The maximum length of the invite code secret, in bytes including '\0'.
 
static const uint NETWORK_TOKEN_LENGTH = 64
 The maximum length of a token, in bytes including '\0'.
 
static const uint NETWORK_GRF_NAME_LENGTH = 80
 Maximum length of the name of a GRF.
 
static const uint NETWORK_MAX_GRF_COUNT = 255
 Maximum number of GRFs that can be sent. More...
 
static const uint NETWORK_SECRET_KEY_LENGTH = 32 * 2 + 1
 The maximum length of the hexadecimal encoded secret keys, in bytes including '\0'. More...
 
static const uint NETWORK_PUBLIC_KEY_LENGTH = 32 * 2 + 1
 The maximum length of the hexadecimal encoded public keys, in bytes including '\0'. More...
 

Detailed Description

Configuration options of the network stuff.

It is used even when compiling without network support.

Definition in file config.h.

Function Documentation

◆ NetworkContentMirrorUriString()

const char* NetworkContentMirrorUriString ( )

Get the URI string for the content mirror from the environment variable OTTD_CONTENT_MIRROR_URI, or when it has not been set a hard coded URI of the production server.

Returns
The content mirror's URI string.

Definition at line 65 of file config.cpp.

References GetEnv().

Referenced by ClientNetworkContentSocketHandler::DownloadSelectedContentHTTP().

◆ NetworkContentServerConnectionString()

const char* NetworkContentServerConnectionString ( )

Get the connection string for the content server from the environment variable OTTD_CONTENT_SERVER_CS, or when it has not been set a hard coded default DNS hostname of the production server.

Returns
The content server's connection string.

Definition at line 55 of file config.cpp.

References GetEnv().

Referenced by ClientNetworkContentSocketHandler::Connect().

◆ NetworkCoordinatorConnectionString()

const char* NetworkCoordinatorConnectionString ( )

Get the connection string for the game coordinator from the environment variable OTTD_COORDINATOR_CS, or when it has not been set a hard coded default DNS hostname of the production server.

Returns
The game coordinator's connection string.

Definition at line 35 of file config.cpp.

References GetEnv().

◆ NetworkStunConnectionString()

const char* NetworkStunConnectionString ( )

Get the connection string for the STUN server from the environment variable OTTD_STUN_CS, or when it has not been set a hard coded default DNS hostname of the production server.

Returns
The STUN server's connection string.

Definition at line 45 of file config.cpp.

References GetEnv().

Referenced by ClientNetworkStunSocketHandler::Connect().

◆ NetworkSurveyUriString()

const char* NetworkSurveyUriString ( )

Get the URI string for the survey from the environment variable OTTD_SURVEY_URI, or when it has not been set a hard coded URI of the production server.

Returns
The survey's URI string.

Definition at line 75 of file config.cpp.

References GetEnv().

Variable Documentation

◆ NETWORK_MAX_GRF_COUNT

const uint NETWORK_MAX_GRF_COUNT = 255
static

Maximum number of GRFs that can be sent.

This limit exists to avoid that the SERVER_INFO packet exceeding the maximum MTU. At the time of writing this limit is 32767 (TCP_MTU).

In the SERVER_INFO packet is the NetworkGameInfo struct, which is 142 bytes + 100 per NewGRF (under the assumption strings are used to their max). This brings us to roughly 326 possible NewGRFs. Round it down so people don't freak out because they see a weird value, and you get the limit: 255.

PS: in case you ever want to raise this number, please be mindful that "amount of NewGRFs" in NetworkGameInfo is currently an uint8.

Definition at line 91 of file config.h.

Referenced by NewGRFWindow::AddGRFToActive(), and GRFLoadConfig().

◆ NETWORK_PUBLIC_KEY_LENGTH

const uint NETWORK_PUBLIC_KEY_LENGTH = 32 * 2 + 1
static

The maximum length of the hexadecimal encoded public keys, in bytes including '\0'.

This is related to X25519_KEY_SIZE in the network crypto internals.

Definition at line 102 of file config.h.

Referenced by CmdCompanyAllowListCtrl().

◆ NETWORK_SECRET_KEY_LENGTH

const uint NETWORK_SECRET_KEY_LENGTH = 32 * 2 + 1
static

The maximum length of the hexadecimal encoded secret keys, in bytes including '\0'.

This is related to X25519_KEY_SIZE in the network crypto internals.

Definition at line 97 of file config.h.