From: Remi Gacogne Date: Thu, 3 Oct 2019 13:10:05 +0000 (+0200) Subject: dnsdist: Set SO_BINDTODEVICE _before_ binding the health check socket X-Git-Tag: dnsdist-1.4.0-rc4~27^2~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4a8493e1a34863acdb0dbe51e509dd78ad802948;p=pdns dnsdist: Set SO_BINDTODEVICE _before_ binding the health check socket --- diff --git a/pdns/dnsdist.cc b/pdns/dnsdist.cc index fd553dfc7..de8f284a4 100644 --- a/pdns/dnsdist.cc +++ b/pdns/dnsdist.cc @@ -1855,7 +1855,6 @@ try sock.setNonBlocking(); if (!IsAnyAddress(ds->sourceAddr)) { sock.setReuseAddr(); - sock.bind(ds->sourceAddr); if (!ds->sourceItfName.empty()) { #ifdef SO_BINDTODEVICE int res = setsockopt(sock.getHandle(), SOL_SOCKET, SO_BINDTODEVICE, ds->sourceItfName.c_str(), ds->sourceItfName.length()); @@ -1864,6 +1863,7 @@ try } #endif } + sock.bind(ds->sourceAddr); } sock.connect(ds->remote); ssize_t sent = udpClientSendRequestToBackend(ds, sock.getHandle(), reinterpret_cast(&packet[0]), packet.size(), true);