OpenTTD Source 20241224-master-gf74b0cf984
|
Base functions for networking support. More...
#include "../stdafx.h"
#include "../strings_func.h"
#include "../command_func.h"
#include "../timer/timer_game_tick.h"
#include "../timer/timer_game_economy.h"
#include "network_admin.h"
#include "network_client.h"
#include "network_query.h"
#include "network_server.h"
#include "network_content.h"
#include "network_udp.h"
#include "network_gamelist.h"
#include "network_base.h"
#include "network_coordinator.h"
#include "core/udp.h"
#include "core/host.h"
#include "network_gui.h"
#include "../console_func.h"
#include "../3rdparty/md5/md5.h"
#include "../core/random_func.hpp"
#include "../window_func.h"
#include "../company_func.h"
#include "../company_base.h"
#include "../landscape_type.h"
#include "../rev.h"
#include "../core/pool_func.hpp"
#include "../gfx_func.h"
#include "../error.h"
#include "../misc_cmd.h"
#include <charconv>
#include <sstream>
#include <iomanip>
#include "../safeguards.h"
Go to the source code of this file.
Data Structures | |
class | TCPQueryConnecter |
Non blocking connection to query servers for their game info. More... | |
class | TCPClientConnecter |
Non blocking connection create to actually connect to servers. More... | |
Functions | |
std::string | GenerateUid (std::string_view subject) |
Generate an unique ID. | |
bool | HasClients () |
Return whether there is any client connected or trying to connect at all. | |
bool | NetworkCanJoinCompany (CompanyID company_id) |
Returns whether the given company can be joined by this client. | |
static auto | FindKey (auto *authorized_keys, std::string_view authorized_key) |
Simple helper to find the location of the given authorized key in the authorized keys. | |
uint8_t | NetworkSpectatorCount () |
void | NetworkTextMessage (NetworkAction action, TextColour colour, bool self_send, const std::string &name, const std::string &str, int64_t data, const std::string &data_str) |
uint | NetworkCalculateLag (const NetworkClientSocket *cs) |
void | ShowNetworkError (StringID error_string) |
StringID | GetNetworkErrorMsg (NetworkErrorCode err) |
Retrieve the string id of an internal error number. | |
void | NetworkHandlePauseChange (PauseMode prev_mode, PauseMode changed_mode) |
Handle the pause mode change so we send the right messages to the chat. | |
static void | CheckPauseHelper (bool pause, PauseMode pm) |
Helper function for the pause checkers. | |
static uint | NetworkCountActiveClients () |
Counts the number of active clients connected. | |
static void | CheckMinActiveClients () |
Check if the minimum number of active clients has been reached and pause or unpause the game as appropriate. | |
static bool | NetworkHasJoiningClient () |
Checks whether there is a joining client. | |
static void | CheckPauseOnJoin () |
Check whether we should pause on join. | |
std::string_view | ParseCompanyFromConnectionString (const std::string &connection_string, CompanyID *company_id) |
Parse the company part ("#company" postfix) of a connecting string. | |
std::string_view | ParseFullConnectionString (const std::string &connection_string, uint16_t &port, CompanyID *company_id) |
Converts a string to ip/port/company Format: IP:port::company. | |
std::string | NormalizeConnectionString (const std::string &connection_string, uint16_t default_port) |
Normalize a connection string. | |
NetworkAddress | ParseConnectionString (const std::string &connection_string, uint16_t default_port) |
Convert a string containing either "hostname" or "hostname:ip" to a NetworkAddress. | |
static void | InitializeNetworkPools (bool close_admins=true) |
Resets the pools used for network clients, and the admin pool if needed. | |
void | NetworkClose (bool close_admins) |
Close current connections. | |
static void | NetworkInitialize (bool close_admins=true) |
void | NetworkQueryServer (const std::string &connection_string) |
Query a server to fetch the game-info. | |
NetworkGameList * | NetworkAddServer (const std::string &connection_string, bool manually, bool never_expire) |
Validates an address entered as a string and adds the server to the list. | |
void | GetBindAddresses (NetworkAddressList *addresses, uint16_t port) |
Get the addresses to bind to. | |
void | NetworkRebuildHostList () |
bool | NetworkClientConnectGame (const std::string &connection_string, CompanyID default_company, const std::string &join_server_password) |
Join a client to the server at with the given connection string. | |
void | NetworkClientJoinGame () |
Actually perform the joining to the server. | |
static void | NetworkInitGameInfo () |
bool | NetworkValidateServerName (std::string &server_name) |
Trim the given server name in place, i.e. | |
static void | CheckClientAndServerName () |
Check whether the client and server name are set, for a dedicated server and if not set them to some default value and tell the user to change this as soon as possible. | |
bool | NetworkServerStart () |
void | NetworkOnGameStart () |
Perform tasks when the server is started. | |
void | NetworkReboot () |
void | NetworkDisconnect (bool close_admins) |
We want to disconnect from the host/clients. | |
void | NetworkUpdateServerGameType () |
The setting server_game_type was updated; possibly we need to take some action. | |
static bool | NetworkReceive () |
Receives something from the network. | |
static void | NetworkSend () |
void | NetworkBackgroundLoop () |
We have to do some (simple) background stuff that runs normally, even when we are not in multiplayer. | |
void | NetworkGameLoop () |
void | NetworkStartUp () |
This tries to launch the network for a given OS. | |
void | NetworkShutDown () |
This shuts the network down. | |
Variables | |
NetworkClientInfoPool | _networkclientinfo_pool ("NetworkClientInfo") |
Make sure both pools have the same size. | |
bool | _networking |
are we in networking mode? | |
bool | _network_server |
network-server is active | |
bool | _network_available |
is network mode available? | |
bool | _network_dedicated |
are we a dedicated server? | |
bool | _is_network_server |
Does this client wants to be a network-server? | |
ClientID | _network_own_client_id |
Our client identifier. | |
ClientID | _redirect_console_to_client |
If not invalid, redirect the console output to a client. | |
uint8_t | _network_reconnect |
Reconnect timeout. | |
StringList | _network_bind_list |
The addresses to bind on. | |
StringList | _network_host_list |
The servers we know. | |
StringList | _network_ban_list |
The banned clients. | |
uint32_t | _frame_counter_server |
The frame_counter of the server, if in network-mode. | |
uint32_t | _frame_counter_max |
To where we may go with our clients. | |
uint32_t | _frame_counter |
The current frame. | |
uint32_t | _last_sync_frame |
Used in the server to store the last time a sync packet was sent to clients. | |
NetworkAddressList | _broadcast_list |
List of broadcast addresses. | |
uint32_t | _sync_seed_1 |
Seed to compare during sync checks. | |
uint32_t | _sync_frame |
The frame to perform the sync check. | |
bool | _network_first_time |
Whether we have finished joining or not. | |
uint8_t | _network_clients_connected = 0 |
The amount of clients connected. | |
Base functions for networking support.
Definition in file network.cpp.
|
static |
Check whether the client and server name are set, for a dedicated server and if not set them to some default value and tell the user to change this as soon as possible.
If the saved name is the default value, then the user is told to override this value too. This is only meant dedicated servers, as for the other servers the GUI ensures a name has been entered.
Definition at line 873 of file network.cpp.
References _settings_client, NetworkSettings::client_name, Debug, ClientSettings::network, NetworkSettings::server_name, and StrTrimInPlace().
|
static |
Check if the minimum number of active clients has been reached and pause or unpause the game as appropriate.
Definition at line 436 of file network.cpp.
References _network_dedicated, _pause_mode, _settings_client, CheckPauseHelper(), NetworkSettings::min_active_clients, ClientSettings::network, NetworkCountActiveClients(), PM_PAUSED_ACTIVE_CLIENTS, PM_PAUSED_ERROR, and PM_UNPAUSED.
|
static |
Helper function for the pause checkers.
If pause is true and the current pause mode isn't set the game will be paused, if it it false and the pause mode is set the game will be unpaused. In the other cases nothing happens to the pause state.
pause | whether we'd like to pause |
pm | the mode which we would like to pause with |
Definition at line 408 of file network.cpp.
References _pause_mode, and PM_UNPAUSED.
Referenced by CheckMinActiveClients(), and CheckPauseOnJoin().
|
static |
Check whether we should pause on join.
Definition at line 462 of file network.cpp.
References _pause_mode, _settings_client, CheckPauseHelper(), ClientSettings::network, NetworkHasJoiningClient(), NetworkSettings::pause_on_join, PM_PAUSED_ERROR, PM_PAUSED_JOIN, and PM_UNPAUSED.
|
static |
Simple helper to find the location of the given authorized key in the authorized keys.
authorized_keys | The keys to look through. |
authorized_key | The key to look for. |
authorized_keys.end()
. Definition at line 168 of file network.cpp.
References StrEqualsIgnoreCase().
Referenced by NetworkAuthorizedKeys::Add(), NetworkAuthorizedKeys::Contains(), and NetworkAuthorizedKeys::Remove().
|
extern |
Generate an unique ID.
It isn't as much of an unique ID but more a hashed digest of a random string and a time. It is very likely to be unique, but it does not follow any UUID standard.
Definition at line 66 of file misc.cpp.
References FormatArrayAsHex(), and RandomBytesWithFallback().
Referenced by GenerateSavegameId().
void GetBindAddresses | ( | NetworkAddressList * | addresses, |
uint16_t | port | ||
) |
Get the addresses to bind to.
addresses | the list to write to. |
port | the port to bind to. |
Definition at line 718 of file network.cpp.
References _network_bind_list.
Referenced by TCPListenHandler< Tsocket, Tfull_packet, Tban_packet >::Listen(), and NetworkUDPInitialize().
StringID GetNetworkErrorMsg | ( | NetworkErrorCode | err | ) |
Retrieve the string id of an internal error number.
err | NetworkErrorCode |
Definition at line 313 of file network.cpp.
References lengthof.
Referenced by ServerNetworkGameSocketHandler::Receive_CLIENT_ERROR(), ClientNetworkGameSocketHandler::Receive_SERVER_ERROR_QUIT(), ServerNetworkAdminSocketHandler::SendError(), and ServerNetworkGameSocketHandler::SendError().
bool HasClients | ( | ) |
Return whether there is any client connected or trying to connect at all.
Definition at line 97 of file network.cpp.
|
static |
Resets the pools used for network clients, and the admin pool if needed.
close_admins | Whether the admin pool has to be cleared as well. |
Definition at line 583 of file network.cpp.
References PoolBase::Clean(), PT_NADMIN, PT_NCLIENT, and PT_NONE.
NetworkGameList * NetworkAddServer | ( | const std::string & | connection_string, |
bool | manually, | ||
bool | never_expire | ||
) |
Validates an address entered as a string and adds the server to the list.
If you use this function, the games will be marked as manually added.
connection_string | The IP:port of the server to add. |
manually | Whether the enter should be marked as manual added. |
never_expire | Whether the entry can expire (removed when no longer found in the public listing). |
Definition at line 692 of file network.cpp.
References ClearGRFConfigList(), NetworkServerGameInfo::grfconfig, NetworkGameList::info, NetworkGameList::manually, NetworkGameListAddItem(), NetworkQueryServer(), NetworkServerGameInfo::server_name, UpdateNetworkGameWindow(), and NetworkGameList::version.
Referenced by NetworkGameWindow::OnQueryTextFinished(), and ClientNetworkUDPSocketHandler::Receive_SERVER_RESPONSE().
void NetworkBackgroundLoop | ( | ) |
We have to do some (simple) background stuff that runs normally, even when we are not in multiplayer.
For example stuff needed for finding servers or downloading content.
Definition at line 1080 of file network.cpp.
References _network_content_client, _network_coordinator_client, TCPConnecter::CheckCallbacks(), NetworkHTTPSocketHandler::HTTPReceive(), NetworkBackgroundUDPLoop(), ClientNetworkContentSocketHandler::SendReceive(), ClientNetworkCoordinatorSocketHandler::SendReceive(), and QueryNetworkGameSocketHandler::SendReceive().
Referenced by NetworkSurveyHandler::Transmit().
uint NetworkCalculateLag | ( | const NetworkClientSocket * | cs | ) |
Definition at line 287 of file network.cpp.
bool NetworkCanJoinCompany | ( | CompanyID | company_id | ) |
Returns whether the given company can be joined by this client.
company_id | The id of the company. |
true
when this company is allowed to join, otherwise false
. Definition at line 141 of file network.cpp.
References _network_own_client_id, NetworkClientInfo::CanJoinCompany(), and NetworkClientInfo::GetByClientID().
Referenced by CompanyWindow::OnPaint().
bool NetworkClientConnectGame | ( | const std::string & | connection_string, |
CompanyID | default_company, | ||
const std::string & | join_server_password | ||
) |
Join a client to the server at with the given connection string.
The default for the passwords is nullptr
. When the server needs a password and none is given, the user is asked to enter the password in the GUI. This function will return false whenever some information required to join is not correct such as the company number or the client's name, or when there is not networking avalabile at all. If the function returns false the connection with the existing server is not disconnected. It will return true when it starts the actual join process, i.e. when it actually shows the join status window.
connection_string | The IP address, port and company number to join as. |
default_company | The company number to join as when none is given. |
join_server_password | The password for the server. |
Definition at line 785 of file network.cpp.
References _network_available, _network_join, _switch_mode, NetworkJoinInfo::company, ServerAddress::connection_string, NetworkJoinInfo::connection_string, Debug, NETWORK_DEFAULT_PORT, NetworkClientJoinGame(), NetworkValidateOurClientName(), ServerAddress::Parse(), NetworkJoinInfo::server_password, and SM_JOIN_GAME.
Referenced by NetworkGameWindow::OnClick(), and AfterNewGRFScan::OnNewGRFsScanned().
void NetworkClientJoinGame | ( | ) |
Actually perform the joining to the server.
Use NetworkClientConnectGame when you want to connect to a specific server/company. This function assumes _network_join is already fully set up.
Definition at line 818 of file network.cpp.
References _network_join, _network_join_status, _settings_client, NetworkJoinInfo::connection_string, Debug, NetworkSettings::last_joined, ClientSettings::network, and NetworkDisconnect().
Referenced by NetworkClientConnectGame().
void NetworkClose | ( | bool | close_admins | ) |
Close current connections.
close_admins | Whether the admin connections have to be closed as well. |
Definition at line 592 of file network.cpp.
Referenced by NetworkDisconnect().
|
static |
Counts the number of active clients connected.
It has to be in STATUS_ACTIVE and not a spectator
Definition at line 420 of file network.cpp.
Referenced by CheckMinActiveClients().
void NetworkDisconnect | ( | bool | close_admins | ) |
We want to disconnect from the host/clients.
close_admins | Whether the admin sockets need to be closed as well. |
Definition at line 999 of file network.cpp.
References _network_server, CloseWindowById(), ServerNetworkAdminSocketHandler::IterateActive(), NetworkClose(), NetworkUDPInitialize(), WC_NETWORK_STATUS_WINDOW, and WN_NETWORK_STATUS_WINDOW_JOIN.
Referenced by NetworkClientJoinGame(), NetworkShutDown(), NetworkJoinStatusWindow::OnClick(), NetworkJoinStatusWindow::OnQueryTextFinished(), and SafeLoad().
void NetworkGameLoop | ( | ) |
Definition at line 1094 of file network.cpp.
Handle the pause mode change so we send the right messages to the chat.
prev_mode | The previous pause mode. |
changed_mode | The pause mode that got changed. |
Definition at line 354 of file network.cpp.
References _networking, _pause_mode, CC_DEFAULT, GetString(), PM_PAUSED_ACTIVE_CLIENTS, PM_PAUSED_GAME_SCRIPT, PM_PAUSED_JOIN, PM_PAUSED_LINK_GRAPH, PM_PAUSED_NORMAL, PM_UNPAUSED, and SetDParam().
Referenced by CmdPause().
|
static |
Checks whether there is a joining client.
Definition at line 450 of file network.cpp.
Referenced by CheckPauseOnJoin().
|
static |
Definition at line 831 of file network.cpp.
|
static |
Definition at line 629 of file network.cpp.
void NetworkOnGameStart | ( | ) |
Perform tasks when the server is started.
This consists of things like putting the server's client in a valid company and resetting the restart time.
Definition at line 945 of file network.cpp.
References _network_dedicated, _network_server, ChangeNetworkRestartTime(), CLIENT_ID_SERVER, NetworkClientInfo::client_playas, NetworkClientInfo::GetByClientID(), GetFirstPlayableCompanyID(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, CompanyProperties::name, CompanyProperties::name_1, NetworkServerNewCompany(), NetworkServerUpdateGameInfo(), and ServerNetworkAdminSocketHandler::WelcomeAll().
Referenced by OnStartGame().
void NetworkQueryServer | ( | const std::string & | connection_string | ) |
Query a server to fetch the game-info.
connection_string | the address to query. |
Definition at line 670 of file network.cpp.
References _network_available, Debug, NetworkGameListAddItem(), and NetworkGameList::refreshing.
Referenced by NetworkAddServer(), and NetworkGameWindow::OnClick().
void NetworkReboot | ( | ) |
Definition at line 976 of file network.cpp.
void NetworkRebuildHostList | ( | ) |
Definition at line 733 of file network.cpp.
|
static |
Receives something from the network.
Definition at line 1050 of file network.cpp.
References _network_server, TCPListenHandler< ServerNetworkGameSocketHandler, PACKET_SERVER_FULL, PACKET_SERVER_BANNED >::Receive(), TCPListenHandler< ServerNetworkAdminSocketHandler, ADMIN_PACKET_SERVER_FULL, ADMIN_PACKET_SERVER_BANNED >::Receive(), and ClientNetworkGameSocketHandler::Receive().
|
static |
Definition at line 1064 of file network.cpp.
bool NetworkServerStart | ( | ) |
Definition at line 890 of file network.cpp.
void NetworkShutDown | ( | ) |
This shuts the network down.
Definition at line 1301 of file network.cpp.
References _network_available, Debug, NetworkCoreShutdown(), NetworkDisconnect(), NetworkHTTPUninitialize(), and NetworkUDPClose().
Referenced by ShutdownGame().
uint8_t NetworkSpectatorCount | ( | ) |
Definition at line 214 of file network.cpp.
void NetworkStartUp | ( | ) |
This tries to launch the network for a given OS.
Definition at line 1283 of file network.cpp.
References _broadcast_list, _network_available, _network_dedicated, Debug, NetworkCoreInitialize(), NetworkFindBroadcastIPs(), NetworkHTTPInitialize(), and NetworkUDPInitialize().
Referenced by openttd_main().
void NetworkTextMessage | ( | NetworkAction | action, |
TextColour | colour, | ||
bool | self_send, | ||
const std::string & | name, | ||
const std::string & | str, | ||
int64_t | data, | ||
const std::string & | data_str | ||
) |
Definition at line 232 of file network.cpp.
void NetworkUpdateServerGameType | ( | ) |
The setting server_game_type was updated; possibly we need to take some action.
Definition at line 1027 of file network.cpp.
References _network_coordinator_client, _networking, _settings_client, ClientNetworkCoordinatorSocketHandler::CloseConnection(), ClientSettings::network, ClientNetworkCoordinatorSocketHandler::Register(), and NetworkSettings::server_game_type.
Referenced by NetworkClientListWindow::OnDropdownSelect().
bool NetworkValidateServerName | ( | std::string & | server_name | ) |
Trim the given server name in place, i.e.
remove leading and trailing spaces. After the trim check whether the server name is not empty. When the server name is empty a GUI error message is shown telling the user to set the servername and this function returns false.
server_name | The server name to validate. It will be trimmed of leading and trailing spaces. |
Definition at line 858 of file network.cpp.
References INVALID_STRING_ID, ShowErrorMessage(), StrTrimInPlace(), and WL_ERROR.
std::string NormalizeConnectionString | ( | const std::string & | connection_string, |
uint16_t | default_port | ||
) |
Normalize a connection string.
That is, ensure there is a port in the string.
connection_string | The connection string to normalize. |
default_port | The port to use if none is given. |
Definition at line 541 of file network.cpp.
References ParseFullConnectionString().
Referenced by TCPConnecter::TCPConnecter().
std::string_view ParseCompanyFromConnectionString | ( | const std::string & | connection_string, |
CompanyID * | company_id | ||
) |
Parse the company part ("#company" postfix) of a connecting string.
connection_string | The string with the connection data. |
company_id | The company ID to set, if available. |
Definition at line 477 of file network.cpp.
References COMPANY_NEW_COMPANY, COMPANY_SPECTATOR, and MAX_COMPANIES.
Referenced by ServerAddress::Parse(), and ParseFullConnectionString().
NetworkAddress ParseConnectionString | ( | const std::string & | connection_string, |
uint16_t | default_port | ||
) |
Convert a string containing either "hostname" or "hostname:ip" to a NetworkAddress.
connection_string | The string to parse. |
default_port | The default port to set port to if not in connection_string. |
Definition at line 556 of file network.cpp.
References ParseFullConnectionString().
Referenced by TCPConnecter::Resolve().
std::string_view ParseFullConnectionString | ( | const std::string & | connection_string, |
uint16_t & | port, | ||
CompanyID * | company_id | ||
) |
Converts a string to ip/port/company Format: IP:port::company.
Returns the IP part as a string view into the passed string. This view is valid as long the passed connection string is valid. If there is no port present in the connection string, the port reference will not be touched. When there is no company ID present in the connection string or company_id is nullptr, then company ID will not be touched.
connection_string | The string with the connection data. |
port | The port reference to set. |
company_id | The company ID to set, if available. |
Definition at line 521 of file network.cpp.
References ParseCompanyFromConnectionString().
Referenced by NormalizeConnectionString(), openttd_main(), ServerAddress::Parse(), and ParseConnectionString().
void ShowNetworkError | ( | StringID | error_string | ) |
Definition at line 302 of file network.cpp.
NetworkAddressList _broadcast_list |
List of broadcast addresses.
Definition at line 80 of file network.cpp.
Referenced by NetworkStartUp(), and NetworkUDPBroadCast().
uint32_t _frame_counter |
The current frame.
Definition at line 78 of file network.cpp.
Referenced by TCPListenHandler< Tsocket, Tfull_packet, Tban_packet >::AcceptClient(), ClientNetworkCoordinatorSocketHandler::ConnectSuccess(), ClientNetworkGameSocketHandler::GameLoop(), NetworkClient_Connected(), NetworkServer_Tick(), ServerNetworkGameSocketHandler::Receive_CLIENT_ACK(), ServerNetworkGameSocketHandler::Receive_CLIENT_AUTH_RESPONSE(), ServerNetworkGameSocketHandler::Receive_CLIENT_MAP_OK(), ClientNetworkGameSocketHandler::Receive_SERVER_FRAME(), ClientNetworkGameSocketHandler::Receive_SERVER_MAP_BEGIN(), ClientNetworkGameSocketHandler::SendAck(), ServerNetworkGameSocketHandler::SendAuthRequest(), ServerNetworkGameSocketHandler::SendFrame(), ServerNetworkGameSocketHandler::SendMap(), ServerNetworkGameSocketHandler::SendSync(), and ServerNetworkGameSocketHandler::SendWelcome().
uint32_t _frame_counter_max |
To where we may go with our clients.
Definition at line 77 of file network.cpp.
Referenced by DistributeCommandPacket(), NetworkSendCommand(), ClientNetworkGameSocketHandler::Receive_SERVER_FRAME(), ClientNetworkGameSocketHandler::Receive_SERVER_MAP_BEGIN(), and ServerNetworkGameSocketHandler::SendFrame().
uint32_t _frame_counter_server |
The frame_counter of the server, if in network-mode.
Definition at line 76 of file network.cpp.
Referenced by NetworkClient_Connected(), ClientNetworkGameSocketHandler::Receive_SERVER_FRAME(), and ClientNetworkGameSocketHandler::Receive_SERVER_MAP_BEGIN().
bool _is_network_server |
Does this client wants to be a network-server?
Definition at line 69 of file network.cpp.
Referenced by VideoDriver_Dedicated::MainLoop(), SelectGameWindow::OnClick(), and NetworkStartServerWindow::OnClick().
uint32_t _last_sync_frame |
Used in the server to store the last time a sync packet was sent to clients.
Definition at line 79 of file network.cpp.
Referenced by NetworkServer_Tick().
bool _network_available |
is network mode available?
Definition at line 67 of file network.cpp.
Referenced by HandleBootstrap(), NetworkAvailable(), NetworkClientConnectGame(), NetworkQueryServer(), NetworkShutDown(), NetworkStartUp(), AIConfigWindow::OnClick(), SaveLoadWindow::OnClick(), GSConfigWindow::OnClick(), SelectGameWindow::OnClick(), NewGRFWindow::OnClick(), GameOptionsWindow::OnInvalidateData(), AfterNewGRFScan::OnNewGRFsScanned(), and ShutdownGame().
StringList _network_ban_list |
The banned clients.
Definition at line 75 of file network.cpp.
Referenced by NetworkServerKickOrBanIP().
StringList _network_bind_list |
The addresses to bind on.
Definition at line 73 of file network.cpp.
Referenced by GetBindAddresses(), and AfterNewGRFScan::OnNewGRFsScanned().
uint8_t _network_clients_connected = 0 |
The amount of clients connected.
Definition at line 89 of file network.cpp.
Referenced by ServerNetworkGameSocketHandler::AcceptConnection(), ServerNetworkGameSocketHandler::AllowConnection(), and ServerNetworkGameSocketHandler::CloseConnection().
bool _network_dedicated |
are we a dedicated server?
Definition at line 68 of file network.cpp.
Referenced by _GenerateWorld(), AfterLoadGame(), CheckMinActiveClients(), DEF_CONSOLE_HOOK(), IConsolePrint(), VideoDriver_Dedicated::MainLoop(), NetworkAutoCleanCompanies(), NetworkOnGameStart(), NetworkServerDoMove(), NetworkStartUp(), AI::Pause(), ClientNetworkCoordinatorSocketHandler::Receive_GC_REGISTER_ACK(), SafeLoad(), ServerNetworkAdminSocketHandler::SendWelcome(), ShowEndGameChart(), SpecializedVehicle< T, Type >::UpdateViewport(), and UpdateWindows().
bool _network_first_time |
Whether we have finished joining or not.
Definition at line 86 of file network.cpp.
Referenced by ClientNetworkGameSocketHandler::GameLoop(), and ClientNetworkGameSocketHandler::Receive_SERVER_FRAME().
StringList _network_host_list |
The servers we know.
Definition at line 74 of file network.cpp.
ClientID _network_own_client_id |
Our client identifier.
Uncomment the following define to enable command replaying.
Definition at line 70 of file network.cpp.
Referenced by CmdCompanyCtrl(), CmdGoalQuestion(), CmdScrollViewport(), NetworkClientListWindow::DrawCompany(), NetworkClientListWindow::DrawWidget(), NetworkAdminCmdLogging(), NetworkCanJoinCompany(), NetworkUpdateClientName(), NetworkClientListWindow::OnClick(), NetworkClientListWindow::OnClickCompanyNew(), TCPClientConnecter::OnConnect(), MainWindow::OnHotkey(), NetworkClientListWindow::RebuildList(), NetworkClientListWindow::RebuildListCompany(), ServerNetworkAdminSocketHandler::Receive_ADMIN_CHAT(), ClientNetworkGameSocketHandler::Receive_SERVER_CHAT(), ClientNetworkGameSocketHandler::Receive_SERVER_CLIENT_INFO(), ClientNetworkGameSocketHandler::Receive_SERVER_MAP_DONE(), ClientNetworkGameSocketHandler::Receive_SERVER_MOVE(), ClientNetworkGameSocketHandler::Receive_SERVER_NEWGAME(), ClientNetworkGameSocketHandler::Receive_SERVER_WELCOME(), OrderBackup::Reset(), NetworkClientListWindow::SetStringParameters(), and NetworkClientListWindow::UpdateWidgetSize().
uint8_t _network_reconnect |
Reconnect timeout.
Definition at line 72 of file network.cpp.
Referenced by ClientNetworkGameSocketHandler::Receive_SERVER_NEWGAME().
bool _network_server |
network-server is active
Definition at line 66 of file network.cpp.
Referenced by AfterLoadGame(), AfterLoadLinkGraphs(), AI::BroadcastNewEvent(), AI::CanStartNew(), ChangeNetworkRestartTime(), NetworkGameSocketHandler::CloseConnection(), CmdCompanyCtrl(), CmdGoalQuestion(), CmdGoalQuestionAnswer(), CompanyAdminRemove(), CompanyAdminUpdate(), CompanyCheckBankrupt(), ClientNetworkCoordinatorSocketHandler::ConnectSuccess(), DEF_CONSOLE_HOOK(), DEF_CONSOLE_HOOK(), DEF_CONSOLE_HOOK(), DEF_CONSOLE_HOOK(), DoStartupNewCompany(), AI::GameLoop(), Game::GameLoop(), GetSettingsDesc(), SettingDesc::IsEditable(), AIPLChunkHandler::Load(), GSDTChunkHandler::Load(), PATSChunkHandler::Load(), LoadSettings(), MenuClickCompany(), NetworkDisconnect(), NetworkMaxCompaniesAllowed(), NetworkOnGameStart(), NetworkPrintClients(), NetworkReceive(), NetworkSendCommand(), NetworkServerNewCompany(), NetworkServerUpdateGameInfo(), NetworkUpdateClientName(), Game::NewEvent(), AI::NewEvent(), CompanyWindow::OnClick(), NetworkClientListWindow::OnClick(), NetworkClientListWindow::OnClickCompanyJoin(), NetworkClientListWindow::OnDropdownSelect(), MainWindow::OnHotkey(), NetworkClientListWindow::OnInvalidateData(), BuildVehicleWindow::OnPaint(), NetworkClientListWindow::OnQueryTextFinished(), OnTick_LinkGraph(), NetworkClientListWindow::RebuildList(), NetworkClientListWindow::RebuildListCompany(), ClientNetworkCoordinatorSocketHandler::Receive_GC_TURN_CONNECT(), OrderBackup::Reset(), OrderBackup::ResetUser(), SafeLoad(), SanitizeSingleStringHelper(), Game::Save(), BKORChunkHandler::Save(), AI::Save(), SendChat(), ClientNetworkCoordinatorSocketHandler::SendReceive(), SetSettingValue(), NetworkClientListWindow::SetStringParameters(), ShowScriptDebugWindow(), ShowScriptDebugWindowIfScriptError(), Game::StartNew(), AI::StartNew(), StateGameLoop(), AI::Stop(), SurveyConfiguration(), ToolbarOptionsClick(), UpdateClientConfigValues(), and NetworkClientListWindow::UpdateWidgetSize().
NetworkClientInfoPool _networkclientinfo_pool("NetworkClientInfo") | ( | "NetworkClientInfo" | ) |
Make sure both pools have the same size.
The pool with client information.
bool _networking |
are we in networking mode?
Definition at line 65 of file network.cpp.
Referenced by AfterLoadGame(), AfterLoadLinkGraphs(), AI::BroadcastNewEvent(), AI::CanStartNew(), ChangeOwnershipOfCompanyItems(), CheckTrainsLengths(), ClientNetworkGameSocketHandler::ClientError(), SaveLoadWindow::Close(), EndGameWindow::Close(), HighScoreWindow::Close(), NetworkGameSocketHandler::CloseConnection(), CmdBuyCompany(), CmdCompanyCtrl(), CmdGiveMoney(), CmdGoalQuestionAnswer(), CmdPause(), CompanyCheckBankrupt(), DEF_CONSOLE_HOOK(), DEF_CONSOLE_HOOK(), DEF_CONSOLE_HOOK(), DoStartupNewCompany(), AI::GameLoop(), Game::GameLoop(), GetSettingsDesc(), CommandHelperBase::InternalExecuteValidateTestAndPrepExec(), CommandHelperBase::InternalPostBefore(), SettingDesc::IsEditable(), AIPLChunkHandler::Load(), GSDTChunkHandler::Load(), PATSChunkHandler::Load(), LoadNewGRF(), LoadSettings(), MenuClickCompany(), MenuClickSettings(), NetworkHandlePauseChange(), NetworkUpdateServerGameType(), Game::NewEvent(), AI::NewEvent(), TCPClientConnecter::OnConnect(), MainWindow::OnHotkey(), MainToolbarWindow::OnHotkey(), BuildVehicleWindow::OnPaint(), CompanyWindow::OnPaint(), OnTick_Companies(), OnTick_LinkGraph(), OrdersWindow::OrderClick_Delete(), ParamSet(), PopupMainCompanyToolbMenu(), TCPListenHandler< Tsocket, Tfull_packet, Tban_packet >::Receive(), ClientNetworkGameSocketHandler::Receive(), RedrawScreenRect(), ReInitAllWindows(), OrderBackup::Reset(), Game::Save(), BKORChunkHandler::Save(), AI::Save(), SetSettingValue(), ShowEndGameChart(), ShowNewGrfVehicleError(), ShowScriptDebugWindow(), ShowScriptDebugWindowIfScriptError(), Game::StartNew(), AI::StartNew(), StateGameLoop(), AI::Stop(), SurveyConfiguration(), VideoDriver::Tick(), ToolbarFastForwardClick(), and ToolbarOptionsClick().
ClientID _redirect_console_to_client |
If not invalid, redirect the console output to a client.
Definition at line 71 of file network.cpp.
Referenced by IConsolePrint(), NetworkServerKickOrBanIP(), ServerNetworkGameSocketHandler::Receive_CLIENT_RCON(), and ServerNetworkGameSocketHandler::~ServerNetworkGameSocketHandler().
uint32_t _sync_frame |
The frame to perform the sync check.
Definition at line 85 of file network.cpp.
Referenced by ClientNetworkGameSocketHandler::GameLoop(), ClientNetworkGameSocketHandler::Receive_SERVER_FRAME(), and ClientNetworkGameSocketHandler::Receive_SERVER_SYNC().
uint32_t _sync_seed_1 |
Seed to compare during sync checks.
Definition at line 81 of file network.cpp.
Referenced by ClientNetworkGameSocketHandler::GameLoop(), ClientNetworkGameSocketHandler::Receive_SERVER_FRAME(), ClientNetworkGameSocketHandler::Receive_SERVER_SYNC(), ServerNetworkGameSocketHandler::SendFrame(), and ServerNetworkGameSocketHandler::SendSync().