From 86d9cb1e4157845405227f83a0318c912cd40532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Tue, 4 Jun 2019 22:45:54 +0200 Subject: [PATCH] relay: set socket option SO_REUSEADDR only for TCP sockets (issue #733) --- src/plugins/relay/relay-server.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/plugins/relay/relay-server.c b/src/plugins/relay/relay-server.c index c15fbff06..d130ad5d2 100644 --- a/src/plugins/relay/relay-server.c +++ b/src/plugins/relay/relay-server.c @@ -445,16 +445,19 @@ relay_server_sock_cb (const void *pointer, void *data, int fd) fcntl (client_fd, F_SETFL, flags | O_NONBLOCK); /* set socket option SO_REUSEADDR */ - set = 1; - if (setsockopt (client_fd, SOL_SOCKET, SO_REUSEADDR, - (void *) &set, sizeof (set)) < 0) + if (!server->unix_socket) { - weechat_printf (NULL, - _("%s%s: cannot set socket option \"%s\" to %d: " - "error %d %s"), - weechat_prefix ("error"), RELAY_PLUGIN_NAME, - "SO_REUSEADDR", set, errno, strerror (errno)); - goto error; + set = 1; + if (setsockopt (client_fd, SOL_SOCKET, SO_REUSEADDR, + (void *) &set, sizeof (set)) < 0) + { + weechat_printf (NULL, + _("%s%s: cannot set socket option \"%s\" to %d: " + "error %d %s"), + weechat_prefix ("error"), RELAY_PLUGIN_NAME, + "SO_REUSEADDR", set, errno, strerror (errno)); + goto error; + } } /* add the client */