From 2f540d8a505ee8842ea322513b381d7f3b48362d Mon Sep 17 00:00:00 2001 From: Sree Harsha Totakura Date: Thu, 15 Aug 2013 15:46:39 +0000 Subject: - use SO_REUSEADDR for SOCK_STREAM type sockets only --- src/util/network.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/util') diff --git a/src/util/network.c b/src/util/network.c index 8398b9fab..454de1e50 100644 --- a/src/util/network.c +++ b/src/util/network.c @@ -53,6 +53,11 @@ struct GNUNET_NETWORK_Handle */ int af; + /** + * Type of the socket + */ + int type; + /** * Number of bytes in addr. */ @@ -290,6 +295,7 @@ initialize_network_handle (struct GNUNET_NETWORK_Handle *h, int af, int type) { h->af = af; + h->type = type; if (h->fd == INVALID_SOCKET) { #ifdef MINGW @@ -398,8 +404,9 @@ GNUNET_NETWORK_socket_bind (struct GNUNET_NETWORK_Handle *desc, { const int on = 1; - /* This is required, and required here, but only on UNIX */ - if (0 != setsockopt (desc->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on))) + /* This is required here for TCP sockets, but only on UNIX */ + if ((SOCK_STREAM == desc->type) + && (0 != setsockopt (desc->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)))) LOG_STRERROR (GNUNET_ERROR_TYPE_DEBUG, "setsockopt"); } #endif -- cgit v1.2.3