From 08a9dfe97e8d01646cd7fd0b59b374c6da633306 Mon Sep 17 00:00:00 2001 From: Christopher Wellons Date: Sun, 3 Feb 2019 15:25:25 -0500 Subject: [PATCH] Check for IPV6_V6ONLY before using it This is necessary for supporting OmniOS (Solaris), which doesn't actually document how to actually define this flag. This platform also requires LDLIBS='-lsocket -lnsl' when compiling. --- endlessh.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/endlessh.c b/endlessh.c index 78f1c22..6639169 100644 --- a/endlessh.c +++ b/endlessh.c @@ -430,11 +430,13 @@ server_create(int port) if (r == -1) logmsg(LOG_DEBUG, "errno = %d, %s", errno, strerror(errno)); + #if defined(IPV6_V6ONLY) value = 0; r = setsockopt(s, SOL_SOCKET, IPV6_V6ONLY, &value, sizeof(value)); logmsg(LOG_DEBUG, "setsockopt(IPV6_V6ONLY, false) = %d", r); if (r == -1) logmsg(LOG_DEBUG, "errno = %d, %s", errno, strerror(errno)); + #endif /* IPV6_V6ONLY */ struct sockaddr_in6 addr = { .sin6_family = AF_INET6,