diff --git a/pdns/dnsdist-lua.cc b/pdns/dnsdist-lua.cc index 8b4b094c1f8a..50c0b3537d72 100644 --- a/pdns/dnsdist-lua.cc +++ b/pdns/dnsdist-lua.cc @@ -437,7 +437,14 @@ vector> setupLua(bool client, const std::string& confi } if(vars.count("tcpFastOpen")) { - ret->tcpFastOpen=boost::get(vars["tcpFastOpen"]); + bool fastOpen = boost::get(vars["tcpFastOpen"]); + if (fastOpen) { +#ifdef MSG_FASTOPEN + ret->tcpFastOpen=true; +#else + warnlog("TCP Fast Open has been configured on downstream server %s but is not supported", boost::get(vars["address"])); +#endif + } } if(vars.count("name")) { diff --git a/pdns/dnsdist-tcp.cc b/pdns/dnsdist-tcp.cc index 95e3ac204511..02fafc634ba0 100644 --- a/pdns/dnsdist-tcp.cc +++ b/pdns/dnsdist-tcp.cc @@ -61,9 +61,13 @@ static int setupTCPDownstream(shared_ptr ds, uint16_t& downstre SBind(sock, ds->sourceAddr); } setNonBlocking(sock); +#ifdef MSG_FASTOPEN if (!ds->tcpFastOpen) { SConnectWithTimeout(sock, ds->remote, ds->tcpConnectTimeout); } +#else + SConnectWithTimeout(sock, ds->remote, ds->tcpConnectTimeout); +#endif /* MSG_FASTOPEN */ return sock; } catch(const std::runtime_error& e) {