Changeset - r25169:d36f2d41209f
[Not reviewed]
master
0 4 0
Rubidium - 3 years ago 2021-04-11 09:22:50
rubidium@openttd.org
Change: move some things only relevant to UDP from network.cpp to network_udp.cpp
4 files changed with 13 insertions and 14 deletions:
0 comments (0 inline, 0 general)
src/network/network.cpp
Show inline comments
 
@@ -71,25 +71,18 @@ NetworkAddressList _broadcast_list;   //
 
uint32 _sync_seed_1;                  ///< Seed to compare during sync checks.
 
#ifdef NETWORK_SEND_DOUBLE_SEED
 
uint32 _sync_seed_2;                  ///< Second part of the seed.
 
#endif
 
uint32 _sync_frame;                   ///< The frame to perform the sync check.
 
bool _network_first_time;             ///< Whether we have finished joining or not.
 
bool _network_udp_server;             ///< Is the UDP server started?
 
uint16 _network_udp_broadcast;        ///< Timeout for the UDP broadcasts.
 
uint8 _network_advertise_retries;     ///< The number of advertisement retries we did.
 
CompanyMask _network_company_passworded; ///< Bitmask of the password status of all companies.
 

	
 
/* Check whether NETWORK_NUM_LANDSCAPES is still in sync with NUM_LANDSCAPE */
 
static_assert((int)NETWORK_NUM_LANDSCAPES == (int)NUM_LANDSCAPE);
 
static_assert((int)NETWORK_COMPANY_NAME_LENGTH == MAX_LENGTH_COMPANY_NAME_CHARS * MAX_CHAR_LENGTH);
 

	
 
extern NetworkUDPSocketHandler *_udp_client_socket; ///< udp client socket
 
extern NetworkUDPSocketHandler *_udp_server_socket; ///< udp server socket
 
extern NetworkUDPSocketHandler *_udp_master_socket; ///< udp master socket
 

	
 
/** The amount of clients connected */
 
byte _network_clients_connected = 0;
 

	
 
/* Some externs / forwards */
 
extern void StateGameLoop();
 

	
 
@@ -721,13 +714,13 @@ bool NetworkServerStart()
 
		DEBUG(net, 1, "starting listeners for admins");
 
		if (!ServerNetworkAdminSocketHandler::Listen(_settings_client.network.server_admin_port)) return false;
 
	}
 

	
 
	/* Try to start UDP-server */
 
	DEBUG(net, 1, "starting listeners for incoming server queries");
 
	_network_udp_server = _udp_server_socket->Listen();
 
	NetworkUDPServerListen();
 

	
 
	_network_company_states = CallocT<NetworkCompanyState>(MAX_COMPANIES);
 
	_network_server = true;
 
	_networking = true;
 
	_frame_counter = 0;
 
	_frame_counter_server = 0;
 
@@ -1057,13 +1050,12 @@ void NetworkStartUp()
 
	DEBUG(net, 3, "[core] starting network...");
 

	
 
	/* Network is available */
 
	_network_available = NetworkCoreInitialize();
 
	_network_dedicated = false;
 
	_network_need_advertise = true;
 
	_network_advertise_retries = 0;
 

	
 
	/* Generate an server id when there is none yet */
 
	if (StrEmpty(_settings_client.network.network_id)) NetworkGenerateServerId();
 

	
 
	memset(&_network_game_info, 0, sizeof(_network_game_info));
 

	
src/network/network_internal.h
Show inline comments
 
@@ -123,17 +123,12 @@ extern NetworkJoinStatus _network_join_s
 
extern uint8 _network_join_waiting;
 
extern uint32 _network_join_bytes;
 
extern uint32 _network_join_bytes_total;
 

	
 
extern uint8 _network_reconnect;
 

	
 
extern bool _network_udp_server;
 
extern uint16 _network_udp_broadcast;
 

	
 
extern uint8 _network_advertise_retries;
 

	
 
extern CompanyMask _network_company_passworded;
 

	
 
void NetworkTCPQueryServer(NetworkAddress address);
 

	
 
void GetBindAddresses(NetworkAddressList *addresses, uint16 port);
 
void NetworkAddServer(const char *b);
src/network/network_udp.cpp
Show inline comments
 
@@ -44,12 +44,16 @@ static const std::chrono::seconds ADVERT
 
static const uint32 ADVERTISE_RETRY_TIMES     =              3; ///< give up re-advertising after this much failed retries
 

	
 
NetworkUDPSocketHandler *_udp_client_socket = nullptr; ///< udp client socket
 
NetworkUDPSocketHandler *_udp_server_socket = nullptr; ///< udp server socket
 
NetworkUDPSocketHandler *_udp_master_socket = nullptr; ///< udp master socket
 

	
 
static bool _network_udp_server;         ///< Is the UDP server started?
 
static uint16 _network_udp_broadcast;    ///< Timeout for the UDP broadcasts.
 
static uint8 _network_advertise_retries; ///< The number of advertisement retries we did.
 

	
 
/**
 
 * Helper function doing the actual work for querying the server.
 
 * @param address The address of the server.
 
 * @param needs_mutex Whether we need to acquire locks when sending the packet or not.
 
 * @param manually Whether the address was entered manually.
 
 */
 
@@ -619,12 +623,19 @@ void NetworkUDPInitialize()
 
	server.clear();
 
	GetBindAddresses(&server, 0);
 
	_udp_master_socket = new MasterNetworkUDPSocketHandler(&server);
 

	
 
	_network_udp_server = false;
 
	_network_udp_broadcast = 0;
 
	_network_advertise_retries = 0;
 
}
 

	
 
/** Start the listening of the UDP server component. */
 
void NetworkUDPServerListen()
 
{
 
	_network_udp_server = _udp_server_socket->Listen();
 
}
 

	
 
/** Close all UDP related stuff. */
 
void NetworkUDPClose()
 
{
 
	std::lock_guard<std::mutex> lock(_network_udp_mutex);
src/network/network_udp.h
Show inline comments
 
@@ -16,9 +16,10 @@ void NetworkUDPInitialize();
 
void NetworkUDPSearchGame();
 
void NetworkUDPQueryMasterServer();
 
void NetworkUDPQueryServer(NetworkAddress address, bool manually = false);
 
void NetworkUDPAdvertise();
 
void NetworkUDPRemoveAdvertise(bool blocking);
 
void NetworkUDPClose();
 
void NetworkUDPServerListen();
 
void NetworkBackgroundUDPLoop();
 

	
 
#endif /* NETWORK_UDP_H */
0 comments (0 inline, 0 general)