OpenTTD Source
1.11.0-beta2
|
#include "core/address.h"
#include "network_type.h"
#include "../console_type.h"
#include "../gfx_type.h"
#include "../openttd.h"
#include "../company_type.h"
Go to the source code of this file.
Functions | |
byte | NetworkSpectatorCount () |
void | NetworkUpdateClientName () |
Send the server our name. | |
bool | NetworkCompanyHasClients (CompanyID company) |
Check whether a particular company has clients. More... | |
const char * | NetworkChangeCompanyPassword (CompanyID company_id, const char *password) |
Change the company password of a given company. More... | |
void | NetworkReboot () |
void | NetworkDisconnect (bool blocking=false, bool close_admins=true) |
We want to disconnect from the host/clients. More... | |
void | NetworkGameLoop () |
void | NetworkBackgroundLoop () |
We have to do some (simple) background stuff that runs normally, even when we are not in multiplayer. More... | |
void | ParseConnectionString (const char **company, const char **port, char *connection_string) |
Converts a string to ip/port/company Format: IP:port::company. More... | |
void | NetworkStartDebugLog (NetworkAddress address) |
void | NetworkPopulateCompanyStats (NetworkCompanyStats *stats) |
Populate the company stats. More... | |
void | NetworkUpdateClientInfo (ClientID client_id) |
Send updated client info of a particular client. More... | |
void | NetworkClientsToSpectators (CompanyID cid) |
Move the clients of a company to the spectators. More... | |
void | NetworkClientConnectGame (NetworkAddress address, CompanyID join_as, const char *join_server_password=nullptr, const char *join_company_password=nullptr) |
void | NetworkClientRequestMove (CompanyID company, const char *pass="") |
Notify the server of this client wanting to be moved to another company. More... | |
void | NetworkClientSendRcon (const char *password, const char *command) |
Send a remote console command. More... | |
void | NetworkClientSendChat (NetworkAction action, DestType type, int dest, const char *msg, int64 data=0) |
Send a chat message. More... | |
bool | NetworkClientPreferTeamChat (const NetworkClientInfo *cio) |
Tell whether the client has team members where he/she can chat to. More... | |
bool | NetworkCompanyIsPassworded (CompanyID company_id) |
Check if the company we want to join requires a password. More... | |
bool | NetworkMaxCompaniesReached () |
Check if max_companies has been reached on the server (local check only). More... | |
bool | NetworkMaxSpectatorsReached () |
Check if max_spectatos has been reached on the server (local check only). More... | |
void | NetworkPrintClients () |
Print all the clients to the console. | |
void | NetworkHandlePauseChange (PauseMode prev_mode, PauseMode changed_mode) |
Handle the pause mode change so we send the right messages to the chat. More... | |
void | NetworkServerDailyLoop () |
Daily "callback". More... | |
void | NetworkServerMonthlyLoop () |
Monthly "callback". More... | |
void | NetworkServerYearlyLoop () |
Yearly "callback". More... | |
void | NetworkServerSendConfigUpdate () |
Send Config Update. | |
void | NetworkServerShowStatusToConsole () |
Show the status message of all clients on the console. | |
bool | NetworkServerStart () |
void | NetworkServerNewCompany (const Company *company, NetworkClientInfo *ci) |
Perform all the server specific administration of a new company. More... | |
bool | NetworkServerChangeClientName (ClientID client_id, const char *new_name) |
Change the client name of the given client. More... | |
void | NetworkServerDoMove (ClientID client_id, CompanyID company_id) |
Handle the tid-bits of moving a client from one company to another. More... | |
void | NetworkServerSendRcon (ClientID client_id, TextColour colour_code, const char *string) |
Send an rcon reply to the client. More... | |
void | NetworkServerSendChat (NetworkAction action, DestType type, int dest, const char *msg, ClientID from_id, int64 data=0, bool from_admin=false) |
Send an actual chat message. More... | |
void | NetworkServerKickClient (ClientID client_id, const char *reason) |
Kick a single client. More... | |
uint | NetworkServerKickOrBanIP (ClientID client_id, bool ban, const char *reason) |
Ban, or kick, everyone joined from the given client's IP. More... | |
uint | NetworkServerKickOrBanIP (const char *ip, bool ban, const char *reason) |
Kick or ban someone based on an IP address. More... | |
void | NetworkInitChatMessage () |
Initialize all buffers of the chat visualisation. | |
void CDECL | NetworkAddChatMessage (TextColour colour, uint duration, const char *message,...) WARN_FORMAT(3 |
void CDECL void | NetworkUndrawChatMessage () |
Hide the chatbox. | |
void | NetworkChatMessageLoop () |
Check if a message is expired. | |
void | NetworkAfterNewGRFScan () |
Rebuild the GRFConfig's of the servers in the game list as we did a rescan and might have found new NewGRFs. | |
Variables | |
NetworkServerGameInfo | _network_game_info |
Uncomment the following define to enable command replaying. More... | |
NetworkCompanyState * | _network_company_states |
Statistics about some companies. | |
ClientID | _network_own_client_id |
Our client identifier. | |
ClientID | _redirect_console_to_client |
If not invalid, redirect the console output to a client. | |
bool | _network_need_advertise |
Whether we need to advertise. | |
uint8 | _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. | |
Network functions used by other parts of OpenTTD.
Definition in file network_func.h.
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 840 of file network.cpp.
References _network_content_client, TCPConnecter::CheckCallbacks(), NetworkHTTPSocketHandler::HTTPReceive(), NetworkBackgroundUDPLoop(), and ClientNetworkContentSocketHandler::SendReceive().
const char* NetworkChangeCompanyPassword | ( | CompanyID | company_id, |
const char * | password | ||
) |
Change the company password of a given company.
company_id | ID of the company the password should be changed for. |
password | The unhashed password we like to set ('*' or '' resets the password) |
Definition at line 162 of file network.cpp.
References _network_server, NetworkClientSetCompanyPassword(), and NetworkServerSetCompanyPassword().
bool NetworkClientPreferTeamChat | ( | const NetworkClientInfo * | cio | ) |
Tell whether the client has team members where he/she can chat to.
cio | client to check members of. |
Definition at line 1303 of file network_client.cpp.
References _settings_client, NetworkClientInfo::client_playas, ClientSettings::gui, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_networkclientinfo_pool >::Iterate(), and GUISettings::prefer_teamchat.
void NetworkClientRequestMove | ( | CompanyID | company_id, |
const char * | pass | ||
) |
Notify the server of this client wanting to be moved to another company.
company_id | id of the company the client wishes to be moved to. |
pass | the password, is only checked on the server end if a password is needed. |
Definition at line 1229 of file network_client.cpp.
References ClientNetworkGameSocketHandler::SendMove().
void NetworkClientSendChat | ( | NetworkAction | action, |
DestType | type, | ||
int | dest, | ||
const char * | msg, | ||
int64 | data | ||
) |
Send a chat message.
action | The action associated with the message. |
type | The destination type. |
dest | The destination index, be it a company index or client id. |
msg | The actual message. |
data | Arbitrary extra data. |
Definition at line 1284 of file network_client.cpp.
References ClientNetworkGameSocketHandler::SendChat().
void NetworkClientSendRcon | ( | const char * | password, |
const char * | command | ||
) |
Send a remote console command.
password | The password. |
command | The command to execute. |
Definition at line 1218 of file network_client.cpp.
References ClientNetworkGameSocketHandler::SendRCon().
void NetworkClientsToSpectators | ( | CompanyID | cid | ) |
Move the clients of a company to the spectators.
cid | The company to move the clients of. |
Definition at line 1238 of file network_client.cpp.
References _current_company.
bool NetworkCompanyHasClients | ( | CompanyID | company | ) |
Check whether a particular company has clients.
company | The company to check. |
Definition at line 2145 of file network_server.cpp.
bool NetworkCompanyIsPassworded | ( | CompanyID | company_id | ) |
Check if the company we want to join requires a password.
company_id | id of the company we want to check the 'passworded' flag for. |
Definition at line 213 of file network.cpp.
References _network_company_passworded, and HasBit().
Referenced by NetworkServerUpdateCompanyPassworded().
void NetworkDisconnect | ( | bool | blocking, |
bool | close_admins | ||
) |
We want to disconnect from the host/clients.
blocking | whether to wait till everything has been closed. |
close_admins | Whether the admin sockets need to be closed as well. |
Definition at line 784 of file network.cpp.
References _network_server, _settings_client, DeleteWindowById(), ServerNetworkAdminSocketHandler::IterateActive(), ClientSettings::network, NetworkClose(), NetworkUDPInitialize(), NetworkUDPRemoveAdvertise(), NetworkSettings::server_advertise, WC_NETWORK_STATUS_WINDOW, and WN_NETWORK_STATUS_WINDOW_JOIN.
Referenced by NetworkShutDown(), NetworkJoinStatusWindow::OnClick(), TCPQueryConnecter::OnFailure(), and NetworkJoinStatusWindow::OnQueryTextFinished().
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 337 of file network.cpp.
References _networking, _pause_mode, PM_PAUSED_ACTIVE_CLIENTS, PM_PAUSED_GAME_SCRIPT, PM_PAUSED_JOIN, PM_PAUSED_LINK_GRAPH, PM_PAUSED_NORMAL, PM_UNPAUSED, and SetDParam().
bool NetworkMaxCompaniesReached | ( | ) |
Check if max_companies has been reached on the server (local check only).
Definition at line 1319 of file network_client.cpp.
References _network_server, _network_server_max_companies, _settings_client, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetNumItems(), NetworkSettings::max_companies, and ClientSettings::network.
Referenced by PopupMainCompanyToolbMenu().
bool NetworkMaxSpectatorsReached | ( | ) |
Check if max_spectatos has been reached on the server (local check only).
Definition at line 1328 of file network_client.cpp.
Referenced by PopupMainCompanyToolbMenu().
void NetworkPopulateCompanyStats | ( | NetworkCompanyStats * | stats | ) |
Populate the company stats.
stats | the stats to update |
Definition at line 1565 of file network_server.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Iterate(), MAX_COMPANIES, and VEH_TRAIN.
Referenced by ServerNetworkUDPSocketHandler::Receive_CLIENT_DETAIL_INFO(), ServerNetworkGameSocketHandler::SendCompanyInfo(), and ServerNetworkAdminSocketHandler::SendCompanyStats().
bool NetworkServerChangeClientName | ( | ClientID | client_id, |
const char * | new_name | ||
) |
Change the client name of the given client.
client_id | the client to change the name of |
new_name | the new name for the client |
Definition at line 1756 of file network_server.cpp.
References NetworkClientInfo::GetByClientID(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_networkclientinfo_pool >::Iterate().
void NetworkServerDailyLoop | ( | ) |
Daily "callback".
Called whenever the date changes.
Definition at line 1959 of file network_server.cpp.
References _date, ADMIN_FREQUENCY_DAILY, ADMIN_FREQUENCY_WEEKLY, and NetworkAdminUpdate().
Handle the tid-bits of moving a client from one company to another.
client_id | id of the client we want to move. |
company_id | id of the company we want to move the client to. |
Definition at line 2040 of file network_server.cpp.
References _network_dedicated, CLIENT_ID_SERVER, NetworkClientInfo::client_playas, COMPANY_SPECTATOR, NetworkClientInfo::GetByClientID(), NetworkUpdateClientInfo(), and SetLocalCompany().
void NetworkServerKickClient | ( | ClientID | client_id, |
const char * | reason | ||
) |
Kick a single client.
client_id | The client to kick. |
reason | In case of kicking a client, specifies the reason for kicking the client. |
Definition at line 2084 of file network_server.cpp.
References CLIENT_ID_SERVER.
Referenced by NetworkServerKickOrBanIP().
uint NetworkServerKickOrBanIP | ( | ClientID | client_id, |
bool | ban, | ||
const char * | reason | ||
) |
Ban, or kick, everyone joined from the given client's IP.
client_id | The client to check for. |
ban | Whether to ban or kick. |
reason | In case of kicking a client, specifies the reason for kicking the client. |
Definition at line 2096 of file network_server.cpp.
uint NetworkServerKickOrBanIP | ( | const char * | ip, |
bool | ban, | ||
const char * | reason | ||
) |
Kick or ban someone based on an IP address.
ip | The IP address/range to ban/kick. |
ban | Whether to ban or just kick. |
reason | In case of kicking a client, specifies the reason for kicking the client. |
Definition at line 2107 of file network_server.cpp.
References _network_ban_list, _redirect_console_to_client, CLIENT_ID_SERVER, and NetworkServerKickClient().
void NetworkServerMonthlyLoop | ( | ) |
Monthly "callback".
Called whenever the month changes.
Definition at line 1951 of file network_server.cpp.
References _cur_month, ADMIN_FREQUENCY_MONTHLY, ADMIN_FREQUENCY_QUARTERLY, NetworkAdminUpdate(), and NetworkAutoCleanCompanies().
void NetworkServerNewCompany | ( | const Company * | c, |
NetworkClientInfo * | ci | ||
) |
Perform all the server specific administration of a new company.
c | The newly created company; can't be nullptr. |
ci | The client information of the client that made the company; can be nullptr. |
Definition at line 2196 of file network_server.cpp.
References _network_company_states, _network_server, NetworkClientInfo::client_id, NetworkClientInfo::client_name, NetworkClientInfo::client_playas, CMD_RENAME_PRESIDENT, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, NetworkCompanyState::months_empty, NetworkAdminCompanyInfo(), NetworkSendCommand(), NetworkServerSendChat(), NetworkServerUpdateCompanyPassworded(), NetworkUpdateClientInfo(), and NetworkCompanyState::password.
void NetworkServerSendChat | ( | NetworkAction | action, |
DestType | desttype, | ||
int | dest, | ||
const char * | msg, | ||
ClientID | from_id, | ||
int64 | data, | ||
bool | from_admin | ||
) |
Send an actual chat message.
action | The action that's performed. |
desttype | The type of destination. |
dest | The actual destination index. |
msg | The actual message. |
from_id | The origin of the message. |
data | Arbitrary data. |
from_admin | Whether the origin is an admin or not. |
Definition at line 1273 of file network_server.cpp.
References CLIENT_ID_SERVER, DESTTYPE_CLIENT, and NetworkClientInfo::GetByClientID().
Referenced by NetworkServerNewCompany().
void NetworkServerSendRcon | ( | ClientID | client_id, |
TextColour | colour_code, | ||
const char * | string | ||
) |
Send an rcon reply to the client.
client_id | The identifier of the client. |
colour_code | The colour of the text. |
string | The actual reply. |
Definition at line 2074 of file network_server.cpp.
Referenced by IConsolePrint().
void NetworkServerYearlyLoop | ( | ) |
Yearly "callback".
Called whenever the year changes.
Definition at line 1944 of file network_server.cpp.
References ADMIN_FREQUENCY_ANUALLY, NetworkAdminUpdate(), and NetworkCheckRestartMap().
void NetworkUpdateClientInfo | ( | ClientID | client_id | ) |
Send updated client info of a particular client.
client_id | The client to send it for. |
Definition at line 1601 of file network_server.cpp.
References _date, _date_fract, NetworkClientInfo::client_playas, DEBUG, NetworkClientInfo::GetByClientID(), and NetworkAdminClientUpdate().
Referenced by NetworkServerDoMove(), and NetworkServerNewCompany().
void ParseConnectionString | ( | const char ** | company, |
const char ** | port, | ||
char * | connection_string | ||
) |
Converts a string to ip/port/company Format: IP:port::company.
connection_string will be re-terminated to separate out the hostname, and company and port will be set to the company and port strings given by the user, inside the memory area originally occupied by connection_string.
Definition at line 464 of file network.cpp.
Referenced by NetworkHTTPSocketHandler::Connect().
NetworkServerGameInfo _network_game_info |
Uncomment the following define to enable command replaying.
See docs/desync.txt for details.
Uncomment the following define to enable command replaying.
Definition at line 57 of file network.cpp.
Referenced by ServerNetworkGameSocketHandler::AllowConnection(), ServerNetworkUDPSocketHandler::Receive_CLIENT_FIND_SERVER(), ServerNetworkGameSocketHandler::SendWelcome(), and ServerNetworkAdminSocketHandler::SendWelcome().