summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/network/network.cpp10
-rw-r--r--src/network/network_internal.h5
-rw-r--r--src/network/network_udp.cpp11
-rw-r--r--src/network/network_udp.h1
4 files changed, 13 insertions, 14 deletions
diff --git a/src/network/network.cpp b/src/network/network.cpp
index 1d5563c3d..f4640191c 100644
--- a/src/network/network.cpp
+++ b/src/network/network.cpp
@@ -74,19 +74,12 @@ 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;
@@ -724,7 +717,7 @@ bool NetworkServerStart()
/* 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;
@@ -1060,7 +1053,6 @@ void NetworkStartUp()
_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();
diff --git a/src/network/network_internal.h b/src/network/network_internal.h
index 8cae502e1..290922f38 100644
--- a/src/network/network_internal.h
+++ b/src/network/network_internal.h
@@ -126,11 +126,6 @@ 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);
diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp
index 99939fab4..e4276c58f 100644
--- a/src/network/network_udp.cpp
+++ b/src/network/network_udp.cpp
@@ -47,6 +47,10 @@ 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.
@@ -622,6 +626,13 @@ void NetworkUDPInitialize()
_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. */
diff --git a/src/network/network_udp.h b/src/network/network_udp.h
index c042bea40..189657bc8 100644
--- a/src/network/network_udp.h
+++ b/src/network/network_udp.h
@@ -19,6 +19,7 @@ void NetworkUDPQueryServer(NetworkAddress address, bool manually = false);
void NetworkUDPAdvertise();
void NetworkUDPRemoveAdvertise(bool blocking);
void NetworkUDPClose();
+void NetworkUDPServerListen();
void NetworkBackgroundUDPLoop();
#endif /* NETWORK_UDP_H */