static std::atomic<bool> g_quiet;
static bool g_logCommonErrors;
static bool g_anyToTcp;
-static bool g_lowercaseOutgoing;
static bool g_weDistributeQueries; // if true, only 1 thread listens on the incoming query sockets
static bool g_reusePort{false};
static bool g_useOneSocketPerThread;
RecursorStats g_stats;
string s_programname="pdns_recursor";
string s_pidfname;
+bool g_lowercaseOutgoing;
unsigned int g_numThreads;
uint16_t g_outgoingEDNSBufsize;
bool g_logRPZChanges{false};
pw.getHeader()->rd=dc->d_mdp.d_header.rd;
pw.getHeader()->cd=dc->d_mdp.d_header.cd;
- // DO NOT MOVE THIS CODE UP - DNSPacketWriter needs to get the original-cased version
- if (g_lowercaseOutgoing)
- dc->d_mdp.d_qname = dc->d_mdp.d_qname.makeLowerCase();
-
uint32_t minTTL=std::numeric_limits<uint32_t>::max();
SyncRes sr(dc->d_now);
else if(ednsMANDATORY || mode==EDNSStatus::UNKNOWN || mode==EDNSStatus::EDNSOK || mode==EDNSStatus::EDNSIGNORANT)
EDNSLevel = 1;
+ DNSName sendQname(domain);
+ if (g_lowercaseOutgoing)
+ sendQname.makeUsLowerCase();
+
if (d_asyncResolve) {
- ret = d_asyncResolve(ip, domain, type, doTCP, sendRDQuery, EDNSLevel, now, srcmask, ctx, luaconfsLocal->outgoingProtobufServer, res);
+ ret = d_asyncResolve(ip, sendQname, type, doTCP, sendRDQuery, EDNSLevel, now, srcmask, ctx, luaconfsLocal->outgoingProtobufServer, res);
}
else {
- ret=asyncresolve(ip, domain, type, doTCP, sendRDQuery, EDNSLevel, now, srcmask, ctx, luaconfsLocal->outgoingProtobufServer, res);
+ ret=asyncresolve(ip, sendQname, type, doTCP, sendRDQuery, EDNSLevel, now, srcmask, ctx, luaconfsLocal->outgoingProtobufServer, res);
}
if(ret < 0) {
return ret; // transport error, nothing to learn here
extern unsigned int g_numThreads;
extern uint16_t g_outgoingEDNSBufsize;
extern std::atomic<uint32_t> g_maxCacheEntries, g_maxPacketCacheEntries;
+extern bool g_lowercaseOutgoing;
std::string reloadAuthAndForwards();