OpenTTD
Data Structures | Macros | Typedefs | Functions | Variables
network_server.h File Reference

Server part of the network protocol. More...

#include "network_internal.h"
#include "core/tcp_listen.h"
#include "../thread/thread.h"

Go to the source code of this file.

Data Structures

class  ServerNetworkGameSocketHandler
 Class for handling the server side of the game connection. More...
 

Macros

#define FOR_ALL_CLIENT_SOCKETS_FROM(var, start)   FOR_ALL_ITEMS_FROM(NetworkClientSocket, clientsocket_index, var, start)
 Iterate over all the sockets from a given starting point. More...
 
#define FOR_ALL_CLIENT_SOCKETS(var)   FOR_ALL_CLIENT_SOCKETS_FROM(var, 0)
 Iterate over all the sockets. More...
 

Typedefs

typedef ServerNetworkGameSocketHandler NetworkClientSocket
 Make the code look slightly nicer/simpler. More...
 
typedef Pool< NetworkClientSocket, ClientIndex, 8, MAX_CLIENT_SLOTS, PT_NCLIENTNetworkClientSocketPool
 Pool with all client sockets. More...
 

Functions

void NetworkServer_Tick (bool send_frame)
 This is called every tick if this is a _network_server. More...
 
void NetworkServerSetCompanyPassword (CompanyID company_id, const char *password, bool already_hashed=true)
 Set/Reset a company password on the server end. More...
 
void NetworkServerUpdateCompanyPassworded (CompanyID company_id, bool passworded)
 Tell that a particular company is (not) passworded. More...
 

Variables

NetworkClientSocketPool _networkclientsocket_pool
 The pool with clients. More...
 

Detailed Description

Server part of the network protocol.

Definition in file network_server.h.

Macro Definition Documentation

◆ FOR_ALL_CLIENT_SOCKETS

#define FOR_ALL_CLIENT_SOCKETS (   var)    FOR_ALL_CLIENT_SOCKETS_FROM(var, 0)

◆ FOR_ALL_CLIENT_SOCKETS_FROM

#define FOR_ALL_CLIENT_SOCKETS_FROM (   var,
  start 
)    FOR_ALL_ITEMS_FROM(NetworkClientSocket, clientsocket_index, var, start)

Iterate over all the sockets from a given starting point.

Parameters
varThe variable to iterate with.
startThe start of the iteration.

Definition at line 133 of file network_server.h.

Typedef Documentation

◆ NetworkClientSocket

typedef ServerNetworkGameSocketHandler NetworkClientSocket

Make the code look slightly nicer/simpler.

Definition at line 21 of file network_server.h.

◆ NetworkClientSocketPool

Pool with all client sockets.

Definition at line 25 of file network_server.h.

Function Documentation

◆ NetworkServer_Tick()

void NetworkServer_Tick ( bool  send_frame)

This is called every tick if this is a _network_server.

Parameters
send_frameWhether to send the frame to the clients.

Definition at line 1805 of file network_server.cpp.

References _frame_counter, _last_sync_frame, _settings_client, NetworkSettings::bytes_per_frame, NetworkSettings::bytes_per_frame_burst, FOR_ALL_CLIENT_SOCKETS, min(), ClientSettings::network, and NetworkSettings::sync_freq.

Referenced by ServerNetworkGameSocketHandler::GetName().

◆ NetworkServerSetCompanyPassword()

void NetworkServerSetCompanyPassword ( CompanyID  company_id,
const char *  password,
bool  already_hashed 
)

Set/Reset a company password on the server end.

Parameters
company_idID of the company the password should be changed for.
passwordThe new password.
already_hashedIs the given password already hashed?

Definition at line 1776 of file network_server.cpp.

References _network_company_states, _settings_client, _settings_game, GameSettings::game_creation, GenerateCompanyPasswordHash(), GameCreationSettings::generation_seed, Company::IsValidHumanID(), lastof, ClientSettings::network, NetworkSettings::network_id, NetworkServerUpdateCompanyPassworded(), strecpy(), and StrEmpty().

Referenced by ServerNetworkGameSocketHandler::GetName(), and NetworkChangeCompanyPassword().

◆ NetworkServerUpdateCompanyPassworded()

void NetworkServerUpdateCompanyPassworded ( CompanyID  company_id,
bool  passworded 
)

Tell that a particular company is (not) passworded.

Parameters
company_idThe company that got/removed the password.
passwordedWhether the password was received or removed.

Definition at line 2010 of file network_server.cpp.

References _network_company_passworded, FOR_ALL_CLIENT_SOCKETS, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), NetworkAdminCompanyUpdate(), NetworkCompanyIsPassworded(), SB(), SetWindowClassesDirty(), and WC_COMPANY.

Referenced by ServerNetworkGameSocketHandler::GetName(), and NetworkServerSetCompanyPassword().

Variable Documentation

◆ _networkclientsocket_pool

NetworkClientSocketPool _networkclientsocket_pool

The pool with clients.