bool g_anyToTcp;
uint16_t g_udpTruncationThreshold, g_outgoingEDNSBufsize;
__thread shared_ptr<RecursorLua4>* t_pdl;
+bool g_lowercaseOutgoing;
__thread addrringbuf_t* t_remotes, *t_servfailremotes, *t_largeanswerremotes;
pw.getHeader()->rd=dc->d_mdp.d_header.rd;
pw.getHeader()->cd=dc->d_mdp.d_header.cd;
+ // DO NOT MOVE THIS CODE UP!
+ if (g_lowercaseOutgoing)
+ dc->d_mdp.d_qname = DNSName(toLower(dc->d_mdp.d_qname.toString()));
+
uint32_t minTTL=std::numeric_limits<uint32_t>::max();
SyncRes sr(dc->d_now);
g_anyToTcp = ::arg().mustDo("any-to-tcp");
g_udpTruncationThreshold = ::arg().asNum("udp-truncation-threshold");
+ g_lowercaseOutgoing = ::arg().mustDo("lowercase-outgoing");
+
makeUDPServerSockets();
makeTCPServerSockets();
::arg().setSwitch( "pdns-distributes-queries", "If PowerDNS itself should distribute queries over threads")="";
::arg().setSwitch( "root-nx-trust", "If set, believe that an NXDOMAIN from the root means the TLD does not exist")="no";
::arg().setSwitch( "any-to-tcp","Answer ANY queries with tc=1, shunting to TCP" )="no";
+ ::arg().setSwitch( "lowercase-outgoing","Force outgoing questions to lowercase")="no";
::arg().set("udp-truncation-threshold", "Maximum UDP response size before we truncate")="1680";
::arg().set("edns-outgoing-bufsize", "Outgoing EDNS buffer size")="1680";
::arg().set("minimum-ttl-override", "Set under adverse conditions, a minimum TTL")="0";