summaryrefslogtreecommitdiff
path: root/src/network/network_udp.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-12-23 20:58:03 +0000
committerrubidium <rubidium@openttd.org>2008-12-23 20:58:03 +0000
commitece37ca2c095ff672cd9f6e793da865c9029c83c (patch)
tree0d699dd79736133afb9429a4c93122cd0a8a711c /src/network/network_udp.cpp
parentafddfcb2b1a37358459158ce83a64535f13cd05e (diff)
downloadopenttd-ece37ca2c095ff672cd9f6e793da865c9029c83c.tar.xz
(svn r14731) -Fix: don't initialise UDP multiple times without closing it.
Diffstat (limited to 'src/network/network_udp.cpp')
-rw-r--r--src/network/network_udp.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp
index 430eee925..493242bdf 100644
--- a/src/network/network_udp.cpp
+++ b/src/network/network_udp.cpp
@@ -34,9 +34,9 @@ enum {
ADVERTISE_RETRY_TIMES = 3 // give up readvertising after this much failed retries
};
-NetworkUDPSocketHandler *_udp_client_socket; ///< udp client socket
-NetworkUDPSocketHandler *_udp_server_socket; ///< udp server socket
-NetworkUDPSocketHandler *_udp_master_socket; ///< udp master socket
+NetworkUDPSocketHandler *_udp_client_socket = NULL; ///< udp client socket
+NetworkUDPSocketHandler *_udp_server_socket = NULL; ///< udp server socket
+NetworkUDPSocketHandler *_udp_master_socket = NULL; ///< udp master socket
///*** Communication with the masterserver ***/
@@ -537,6 +537,8 @@ void NetworkUDPAdvertise()
void NetworkUDPInitialize()
{
+ assert(_udp_client_socket == NULL && _udp_server_socket == NULL && _udp_master_socket == NULL);
+
_udp_client_socket = new ClientNetworkUDPSocketHandler();
_udp_server_socket = new ServerNetworkUDPSocketHandler();
_udp_master_socket = new MasterNetworkUDPSocketHandler();
@@ -552,6 +554,9 @@ void NetworkUDPShutdown()
delete _udp_client_socket;
delete _udp_server_socket;
delete _udp_master_socket;
+ _udp_client_socket = NULL;
+ _udp_server_socket = NULL;
+ _udp_master_socket = NULL;
}
#endif /* ENABLE_NETWORK */