From 8c465546d6710d97ffe51cc3dde2fdf5b697b633 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Wed, 22 Jun 2022 13:36:04 +0200 Subject: [PATCH] dnsdist: Only check if we want a specific interface if we actually support that --- pdns/dnsdistdist/dnsdist-healthchecks.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pdns/dnsdistdist/dnsdist-healthchecks.cc b/pdns/dnsdistdist/dnsdist-healthchecks.cc index 5430555924..cceaa16bc5 100644 --- a/pdns/dnsdistdist/dnsdist-healthchecks.cc +++ b/pdns/dnsdistdist/dnsdist-healthchecks.cc @@ -368,14 +368,15 @@ bool queueHealthCheck(std::unique_ptr& mplexer, const std::shared Socket sock(ds->d_config.remote.sin4.sin_family, ds->doHealthcheckOverTCP() ? SOCK_STREAM : SOCK_DGRAM); sock.setNonBlocking(); - if (!ds->d_config.sourceItfName.empty()) { + #ifdef SO_BINDTODEVICE + if (!ds->d_config.sourceItfName.empty()) { int res = setsockopt(sock.getHandle(), SOL_SOCKET, SO_BINDTODEVICE, ds->d_config.sourceItfName.c_str(), ds->d_config.sourceItfName.length()); if (res != 0 && g_verboseHealthChecks) { infolog("Error setting SO_BINDTODEVICE on the health check socket for backend '%s': %s", ds->getNameWithAddr(), stringerror()); } -#endif } +#endif if (!IsAnyAddress(ds->d_config.sourceAddr)) { sock.setReuseAddr(); -- 2.47.3