Commit ffbad34b authored by Simon Kelley's avatar Simon Kelley

Set SOREUSEADDR as well as SOREUSEPORT on DHCP sockets when both available.

parent f086d396
...@@ -70,15 +70,15 @@ static int make_fd(int port) ...@@ -70,15 +70,15 @@ static int make_fd(int port)
support it. This handles the introduction of REUSEPORT on Linux. */ support it. This handles the introduction of REUSEPORT on Linux. */
if (option_bool(OPT_NOWILD) || option_bool(OPT_CLEVERBIND)) if (option_bool(OPT_NOWILD) || option_bool(OPT_CLEVERBIND))
{ {
int rc = -1, porterr = 0; int rc = 0;
#ifdef SO_REUSEPORT #ifdef SO_REUSEPORT
if ((rc = setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &oneopt, sizeof(oneopt))) == -1 && if ((rc = setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &oneopt, sizeof(oneopt))) == -1 &&
errno != ENOPROTOOPT) errno == ENOPROTOOPT)
porterr = 1; rc = 0;
#endif #endif
if (rc == -1 && !porterr) if (rc != -1)
rc = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &oneopt, sizeof(oneopt)); rc = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &oneopt, sizeof(oneopt));
if (rc == -1) if (rc == -1)
......
...@@ -55,15 +55,15 @@ void dhcp6_init(void) ...@@ -55,15 +55,15 @@ void dhcp6_init(void)
support it. This handles the introduction of REUSEPORT on Linux. */ support it. This handles the introduction of REUSEPORT on Linux. */
if (option_bool(OPT_NOWILD) || option_bool(OPT_CLEVERBIND)) if (option_bool(OPT_NOWILD) || option_bool(OPT_CLEVERBIND))
{ {
int rc = -1, porterr = 0; int rc = 0;
#ifdef SO_REUSEPORT #ifdef SO_REUSEPORT
if ((rc = setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &oneopt, sizeof(oneopt))) == -1 && if ((rc = setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &oneopt, sizeof(oneopt))) == -1 &&
errno != ENOPROTOOPT) errno == ENOPROTOOPT)
porterr = 1; rc = 0;
#endif #endif
if (rc == -1 && !porterr) if (rc != -1)
rc = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &oneopt, sizeof(oneopt)); rc = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &oneopt, sizeof(oneopt));
if (rc == -1) if (rc == -1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment