summaryrefslogtreecommitdiff
path: root/src/network/network_udp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/network_udp.cpp')
-rw-r--r--src/network/network_udp.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp
index 74c732710..efb8883be 100644
--- a/src/network/network_udp.cpp
+++ b/src/network/network_udp.cpp
@@ -58,7 +58,7 @@ DEF_UDP_RECEIVE_COMMAND(Master, PACKET_UDP_MASTER_ACK_REGISTER)
DEBUG(net, 2, "[udp] advertising on master server successful");
/* We are advertised, but we don't want to! */
- if (!_settings_client.network.server_advertise) NetworkUDPRemoveAdvertise();
+ if (!_settings_client.network.server_advertise) NetworkUDPRemoveAdvertise(false);
}
DEF_UDP_RECEIVE_COMMAND(Master, PACKET_UDP_MASTER_SESSION_KEY)
@@ -474,13 +474,16 @@ void NetworkUDPRemoveAdvertiseThread(void *pntr)
_network_udp_mutex->EndCritical();
}
-/* Remove our advertise from the master-server */
-void NetworkUDPRemoveAdvertise()
+/**
+ * Remove our advertise from the master-server.
+ * @param blocking whether to wait until the removal has finished.
+ */
+void NetworkUDPRemoveAdvertise(bool blocking)
{
/* Check if we are advertising */
if (!_networking || !_network_server || !_network_udp_server) return;
- if (!ThreadObject::New(NetworkUDPRemoveAdvertiseThread, NULL)) {
+ if (blocking || !ThreadObject::New(NetworkUDPRemoveAdvertiseThread, NULL)) {
NetworkUDPRemoveAdvertiseThread(NULL);
}
}