tlsCtx = getTLSContext(tlsParams);
if (vars.count("dohPath")) {
-#ifdef HAVE_NGHTTP2
+#ifndef HAVE_NGHTTP2
+ throw std::runtime_error("Outgoing DNS over HTTPS support requested (via 'dohPath' on newServer()) but nghttp2 support is not available");
+#endif
+
config.d_dohPath = boost::get<string>(vars.at("dohPath"));
if (vars.count("addXForwardedHeaders")) {
config.d_addXForwardedHeaders = boost::get<bool>(vars.at("addXForwardedHeaders"));
}
-#else /* HAVE_NGHTTP2 */
- throw std::runtime_error("Outgoing DNS over HTTPS support requested (via 'dohPath' on newServer()) but nghttp2 support is not available");
-#endif /* HAVE_NGHTTP2 */
}
}
#include "dolog.hh"
#include "sstuff.hh"
-namespace dnsdist {
+namespace dnsdist
+{
const DNSName ServiceDiscovery::s_discoveryDomain{"_dns.resolver.arpa."};
const QType ServiceDiscovery::s_discoveryType{QType::SVCB};
size_t idx = 0;
/* consume qd */
- for(; idx < qdcount; idx++) {
+ for (; idx < qdcount; idx++) {
rrname = pr.getName();
rrtype = pr.get16BitInt();
rrclass = pr.get16BitInt();
- (void) rrtype;
- (void) rrclass;
+ (void)rrtype;
+ (void)rrclass;
}
/* parse AN */
pr.xfrSvcParamKeyVals(params);
}
- resolvers[prio] = { std::move(target), std::move(params), {} };
+ resolvers[prio] = {std::move(target), std::move(params), {}};
}
else {
pr.xfrBlob(blob);
}
}
- if (tempConfig.d_protocol == dnsdist::Protocol::DoH){
+ if (tempConfig.d_protocol == dnsdist::Protocol::DoH) {
#ifndef HAVE_DNS_OVER_HTTPS
continue;
#endif
pw.addOpt(4096, 0, 0);
uint16_t querySize = static_cast<uint16_t>(packet.size());
- const uint8_t sizeBytes[] = { static_cast<uint8_t>(querySize / 256), static_cast<uint8_t>(querySize % 256) };
+ const uint8_t sizeBytes[] = {static_cast<uint8_t>(querySize / 256), static_cast<uint8_t>(querySize % 256)};
packet.insert(packet.begin(), sizeBytes, sizeBytes + 2);
Socket sock(addr.sin4.sin_family, SOCK_STREAM);
packet.resize(ntohs(responseSize));
- got = sock.readWithTimeout(reinterpret_cast<char *>(packet.data()), packet.size(), backend->d_config.tcpRecvTimeout);
+ got = sock.readWithTimeout(reinterpret_cast<char*>(packet.data()), packet.size(), backend->d_config.tcpRecvTimeout);
if (got < 0 || static_cast<size_t>(got) != packet.size()) {
if (g_verbose) {
warnlog("Error while waiting for the ADD upgrade response from backend %s: %d", addr.toString(), got);
auto upgradeables = *(s_upgradeableBackends.lock());
std::set<std::shared_ptr<DownstreamState>> upgradedBackends;
- for (auto backendIt = upgradeables.begin(); backendIt != upgradeables.end(); ) {
+ for (auto backendIt = upgradeables.begin(); backendIt != upgradeables.end();) {
try {
auto& backend = *backendIt;
if (backend.d_nextCheck > now) {
}
}
-
{
auto backends = s_upgradeableBackends.lock();
- for (auto it = backends->begin(); it != backends->end(); ) {
+ for (auto it = backends->begin(); it != backends->end();) {
if (upgradedBackends.count(it->d_ds) != 0) {
it = backends->erase(it);
}
struct DownstreamState;
-namespace dnsdist {
+namespace dnsdist
+{
class ServiceDiscovery
{
public:
-
static bool addUpgradeableServer(std::shared_ptr<DownstreamState>& server, uint32_t interval, std::string poolAfterUpgrade, uint16_t dohSVCKey, bool keepAfterUpgrade);
/* starts a background thread if needed */
bool DoHConnectionToBackend::reachedMaxConcurrentQueries() const
{
- //cerr<<"Got "<<getConcurrentStreamsCount()<<" concurrent streams, max is "<<nghttp2_session_get_remote_settings(d_session.get(), NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS)<<endl;
+ // cerr<<"Got "<<getConcurrentStreamsCount()<<" concurrent streams, max is "<<nghttp2_session_get_remote_settings(d_session.get(), NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS)<<endl;
if (nghttp2_session_get_remote_settings(d_session.get(), NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS) <= getConcurrentStreamsCount()) {
return true;
}
conn->handleResponseError(std::move(request), now);
}
- //cerr<<"we now have "<<conn->getConcurrentStreamsCount()<<" concurrent connections"<<endl;
+ // cerr<<"we now have "<<conn->getConcurrentStreamsCount()<<" concurrent connections"<<endl;
if (conn->isIdle()) {
- //cerr<<"stopping IO"<<endl;
+ // cerr<<"stopping IO"<<endl;
conn->stopIO();
conn->watchForRemoteHostClosingConnection();
}
const std::string status(":status");
if (frame->hd.type == NGHTTP2_HEADERS && frame->headers.cat == NGHTTP2_HCAT_RESPONSE) {
- //cerr<<"got header for "<<frame->hd.stream_id<<":"<<endl;
- //cerr<<"- "<<std::string(reinterpret_cast<const char*>(name), namelen)<<endl;
- //cerr<<"- "<<std::string(reinterpret_cast<const char*>(value), valuelen)<<endl;
+ // cerr<<"got header for "<<frame->hd.stream_id<<":"<<endl;
+ // cerr<<"- "<<std::string(reinterpret_cast<const char*>(name), namelen)<<endl;
+ // cerr<<"- "<<std::string(reinterpret_cast<const char*>(value), valuelen)<<endl;
if (namelen == status.size() && memcmp(status.data(), name, status.size()) == 0) {
auto stream = conn->d_currentStreams.find(frame->hd.stream_id);
if (stream == conn->d_currentStreams.end()) {