ok

Florian Obser(flor...@openbsd.org) on 2017.11.01 12:17:44 +0100:
> OK?
> 
> diff --git server.c server.c
> index c0835ce8c11..fe74f9a1b56 100644
> --- server.c
> +++ server.c
> @@ -567,7 +567,7 @@ server_init_ifs(struct nsd *nsd, size_t from, size_t to, 
> int* reuseport_works)
>  {
>       struct addrinfo* addr;
>       size_t i;
> -#if defined(SO_REUSEPORT) || defined(SO_REUSEADDR) || (defined(INET6) && 
> (defined(IPV6_V6ONLY) || defined(IPV6_USE_MIN_MTU) || defined(IPV6_MTU) || 
> defined(IP_TRANSPARENT)) || defined(IP_FREEBIND))
> +#if defined(SO_REUSEPORT) || defined(SO_REUSEADDR) || (defined(INET6) && 
> (defined(IPV6_V6ONLY) || defined(IPV6_USE_MIN_MTU) || defined(IPV6_MTU) || 
> defined(IP_TRANSPARENT)) || defined(IP_FREEBIND) || defined(SO_BINDANY))
>       int on = 1;
>  #endif
>  
> @@ -757,6 +757,12 @@ server_init_ifs(struct nsd *nsd, size_t from, size_t to, 
> int* reuseport_works)
>                                       strerror(errno));
>                       }
>  #endif /* IP_TRANSPARENT */
> +#ifdef SO_BINDANY
> +                     if (setsockopt(nsd->udp[i].s, SOL_SOCKET, SO_BINDANY, 
> &on, sizeof(on)) < 0) {
> +                             log_msg(LOG_ERR, "setsockopt(...,SO_BINDANY, 
> ...) failed for udp: %s",
> +                                     strerror(errno));
> +                     }
> +#endif /* SO_BINDANY */
>               }
>  
>               if (bind(nsd->udp[i].s, (struct sockaddr *) addr->ai_addr, 
> addr->ai_addrlen) != 0) {
> @@ -887,6 +893,12 @@ server_init_ifs(struct nsd *nsd, size_t from, size_t to, 
> int* reuseport_works)
>                                       strerror(errno));
>                       }
>  #endif /* IP_TRANSPARENT */
> +#ifdef SO_BINDANY
> +                     if (setsockopt(nsd->tcp[i].s, SOL_SOCKET, SO_BINDANY, 
> &on, sizeof(on)) < 0) {
> +                             log_msg(LOG_ERR, "setsockopt(...,SO_BINDANY, 
> ...) failed for tcp: %s",
> +                                     strerror(errno));
> +                     }
> +#endif /* SO_BINDANY */
>               }
>  
>               if (bind(nsd->tcp[i].s, (struct sockaddr *) addr->ai_addr, 
> addr->ai_addrlen) != 0) {
> 
> 
> -- 
> I'm not entirely sure you are real.
> 

Reply via email to