_config_params = ['_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setACL({"127.0.0.1/32", "::1/128"})
- newServer{address="127.0.0.1:%s", pool={'', 'mypool'}}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", pool={'', 'mypool'}}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_expectedMetrics = ['responses', 'servfail-responses', 'queries', 'acl-drops',
__test__ = True
_config_template = """
setACL({"127.0.0.1/32", "::1/128"})
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
getServer(0):setDown()
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
setACL({"127.0.0.1/32", "::1/128"})
- newServer({address="127.0.0.1:%s"})
- webserver("127.0.0.1:%s")
+ newServer({address="127.0.0.1:%d"})
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s", customHeaders={["X-Frame-Options"]="", ["X-Custom"]="custom"} })
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
setACL({"127.0.0.1/32", "::1/128"})
- newServer({address="127.0.0.1:%s"})
- webserver("127.0.0.1:%s")
+ newServer({address="127.0.0.1:%d"})
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s", statsRequireAuthentication=false })
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
setACL({"127.0.0.1/32", "::1/128"})
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
setACL({"127.0.0.1/32", "::1/128"})
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s", acl="192.0.2.1"})
"""
_config_params = ['_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed']
_config_template = """
setACL({"127.0.0.1/32", "::1/128"})
- newServer({address="127.0.0.1:%s"})
- webserver("127.0.0.1:%s")
+ newServer({address="127.0.0.1:%d"})
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiRequiresAuthentication=false })
"""
__test__ = True
_config_template = """
setACL({"127.0.0.1/32", "::1/128"})
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s"})
function customHTTPHandler(req, resp)
_config_params = ['_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed', '_maxConns']
_config_template = """
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s", maxConcurrentConnections=%d})
"""
_config_params = ['_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
declareMetric("my-custom-metric", "counter", "Number of statistics")
declareMetric("my-other-metric", "counter", "Another number of statistics")
declareMetric("my-gauge", "gauge", "Current memory usage")
# to mix things up.
_testServerPort = pickAvailablePort()
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
@classmethod
_config_template = """
truncateTC(true)
fixupCase(true)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedFixupCase(self):
class TestAdvancedACL(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
_acl = ['192.0.2.1/32']
class TestAdvancedStringOnlyServer(DNSDistTest):
_config_template = """
- newServer("127.0.0.1:%s")
+ newServer("127.0.0.1:%d")
"""
def testAdvancedStringOnlyServer(self):
_config_template = """
-- this directory contains a file allowing includedir.advanced.tests.powerdns.com.
includeDirectory('test-include-dir')
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedIncludeDirAllowed(self):
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
- s1 = newServer{address="127.0.0.1:%s"}
+ controlSocket("127.0.0.1:%d")
+ s1 = newServer{address="127.0.0.1:%d"}
s1:setUp()
function visitor(node, self, childstat)
table.insert(nodesSeen, node.fullname)
return DNSAction.Spoof, "port-was-"..port..".local-port.advanced.tests.powerdns.com."
end
addAction("local-port.advanced.tests.powerdns.com.", LuaAction(answerBasedOnLocalPort))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedGetLocalPort(self):
return DNSAction.Spoof, "address-was-"..dashAddr..".local-address-any.advanced.tests.powerdns.com."
end
addAction("local-address-any.advanced.tests.powerdns.com.", LuaAction(answerBasedOnLocalAddress))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addLocal('0.0.0.0:%d')
addLocal('[::]:%d')
"""
# address, so we exercise a different code path when we bind on a different address
# than the default 127.0.0.1 one
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addLocal('127.0.1.19:%d')
"""
_config_params = ['_testServerPort', '_dnsDistPort']
class TestAdvancedAllowHeaderOnly(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
setAllowEmptyResponse(true)
"""
_config_template = """
setDropEmptyQueries(true)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedDropEmptyQueries(self):
addAction("udp.protocols.advanced.tests.powerdns.com.", LuaAction(checkUDP))
addAction("tcp.protocols.advanced.tests.powerdns.com.", LuaAction(checkTCP))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testProtocolUDP(self):
declareMetric("my-custom-gauge", "gauge", "Temperature of the tests")
addAction("declare.metric.advanced.tests.powerdns.com.", LuaAction(declareNewMetric))
addAction("operations.metric.advanced.tests.powerdns.com.", LuaAction(custommetrics))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDeclareAfterConfig(self):
addAction(AllRule(), LuaAction(luaquery))
addResponseAction(AllRule(), LuaResponseAction(luaresponse))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testQueryTime(self):
addAction('changeName.advanced.tests.powerdns.com', LuaAction(luaChangeNamequery))
addResponseAction('changeName.advanced.tests.dnsdist.org', LuaResponseAction(luaChangeNameresponse))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testChangeName(self):
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
-- this server is not going to answer, resulting in a timeout
- newServer{address="192.0.2.1:%s"}:setUp()
+ newServer{address="192.0.2.1:%d"}:setUp()
"""
def testFlags(self):
setMaxTCPClientThreads(1)
-- no SVCB
- newServer{address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- SVCB record but no upgrade path available
- newServer{address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- SVCB upgrade to DoT, same address, keep the backend, different pool
- newServer{address="127.0.0.1:%s", caStore='ca.pem', pool={'', 'another-pool'}, autoUpgrade=true, autoUpgradePool='%s', autoUpgradeKeep=true, source='127.0.0.1@lo'}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', pool={'', 'another-pool'}, autoUpgrade=true, autoUpgradePool='%s', autoUpgradeKeep=true, source='127.0.0.1@lo'}:setUp()
-- SVCB upgrade to DoH, same address, do not keep the backend, same pool
- newServer{address="127.0.0.1:%s", caStore='ca.pem', pool={'another-pool'}, autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', pool={'another-pool'}, autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- SVCB upgrade to DoT, different address, certificate is valid for the initial address
- newServer{address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- SVCB upgrade to DoT, different address, certificate is NOT valid for the initial address
- newServer{address="127.0.0.2:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.2:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- SVCB upgrade to DoT but upgraded port is not reachable
- newServer{address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- The SVCB response is not valid
- newServer{address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- SVCB upgrade to DoH except the path is not specified
- newServer{address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- Connection refused
- newServer({address="127.0.0.1:%s", caStore='ca.pem', pool={"", "other-pool"}, autoUpgrade=true, source='127.0.0.1@lo'}):setUp()
+ newServer({address="127.0.0.1:%d", caStore='ca.pem', pool={"", "other-pool"}, autoUpgrade=true, source='127.0.0.1@lo'}):setUp()
-- EOF
- newServer({address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true}):setUp()
+ newServer({address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true}):setUp()
-- ServFail
- newServer({address="127.0.0.1:%s", autoUpgrade=true}):setUp()
+ newServer({address="127.0.0.1:%d", autoUpgrade=true}):setUp()
-- Wrong name
- newServer({address="127.0.0.1:%s", autoUpgrade=true}):setUp()
+ newServer({address="127.0.0.1:%d", autoUpgrade=true}):setUp()
-- Wrong ID
- newServer({address="127.0.0.1:%s", autoUpgrade=true}):setUp()
+ newServer({address="127.0.0.1:%d", autoUpgrade=true}):setUp()
-- Too many questions
- newServer({address="127.0.0.1:%s", autoUpgrade=true}):setUp()
+ newServer({address="127.0.0.1:%d", autoUpgrade=true}):setUp()
-- Bad QName
- newServer({address="127.0.0.1:%s", autoUpgrade=true}):setUp()
+ newServer({address="127.0.0.1:%d", autoUpgrade=true}):setUp()
-- SVCB upgrade to DoT, same address, no port specified via SVCB
- newServer{address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
-- SVCB upgrade to DoH, same address, no port specified via SVCB
- newServer{address="127.0.0.1:%s", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
+ newServer{address="127.0.0.1:%d", caStore='ca.pem', autoUpgrade=true, autoUpgradeKeep=false}:setUp()
"""
_verboseMode = True
class TestBasics(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
truncateTC(true)
addAction(QTypeRule(DNSQType.ANY), TCAction())
addAction(RegexRule("evil[0-9]{4,}\\\\.regex\\\\.tests\\\\.powerdns\\\\.com$"), RCodeAction(DNSRCode.REFUSED))
_testServerPort = pickAvailablePort()
_config_template = """
setECSSourcePrefixV4(32)
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
"""
@classmethod
def startResponders(cls):
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
addCacheHitResponseAction(SuffixMatchNodeRule("dropwhencached.cachehitresponses.tests.powerdns.com."), DropResponseAction())
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDroppedWhenCached(self):
setStaleCacheEntriesTTL(600)
setKey("%s")
controlSocket("127.0.0.1:%d")
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function hitCache(dr) if dr:getStaleCacheHit() then return DNSResponseAction.Drop end return DNSResponseAction.None end
addCacheHitResponseAction(SuffixMatchNodeRule("dropstaleentry.cachehitresponses.tests.powerdns.com."), LuaResponseAction(hitCache))
"""
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
addCacheInsertedResponseAction(SuffixMatchNodeRule("cacheinsertedresponses.tests.powerdns.com."), LimitTTLResponseAction(%d, %d))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
_config_params = ['capTTLMax', 'capTTLMin', '_testServerPort']
self.assertEqual(receivedResponse, responseOnMiss)
self.assertGreater(receivedResponse.answer[0].ttl, initialTTL)
self.assertLessEqual(receivedResponse.answer[0].ttl, self.capTTLMin)
-
_webServerAPIKeyHashed = '$scrypt$ln=10,p=1,r=8$9v8JxDfzQVyTpBkTbkUqYg==$bDQzAOHeK1G9UvTPypNhrX48w974ZXbFPtRKS34+aso='
_config_params = ['_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
pc = newPacketCache(100)
getPool(""):setCache(pc)
_webServerAPIKeyHashed = '$scrypt$ln=10,p=1,r=8$9v8JxDfzQVyTpBkTbkUqYg==$bDQzAOHeK1G9UvTPypNhrX48w974ZXbFPtRKS34+aso='
_config_params = ['_webServerPort', '_webServerAPIKeyHashed', '_testServerPort']
_config_template = """
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
pc = newPacketCache(100, {maxTTL=86400, minTTL=1, payloadRanks={768, 512, 4096, 1280, 1024, 2048}})
getPool(""):setCache(pc)
s:setUp()
s = newServer{address="127.0.0.1:5355"}
s:setUp()
- carbonServer("127.0.0.1:%s", "%s", %s)
- carbonServer("127.0.0.1:%s", "%s", %s)
+ carbonServer("127.0.0.1:%d", "%s", %s)
+ carbonServer("127.0.0.1:%d", "%s", %s)
"""
@classmethod
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
newServer{address="127.0.0.1:%d"}
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("[::1]:%s")
+ controlSocket("[::1]:%d")
newServer{address="127.0.0.1:%d"}
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
setConsoleACL({'192.0.2.1'})
newServer{address="127.0.0.1:%d"}
"""
_config_params = ['_consolePort', '_testServerPort']
_config_template = """
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
newServer{address="127.0.0.1:%d"}
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_maxConns']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
newServer{address="127.0.0.1:%d"}
setConsoleMaximumConcurrentConnections(%d)
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
newServer{address="127.0.0.1:%d"}
"""
class TestDNSCrypt(DNSCryptTest):
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
generateDNSCryptCertificate("DNSCryptProviderPrivate.key", "DNSCryptResolver.cert", "DNSCryptResolver.key", %d, %d, %d)
addDNSCryptBind("127.0.0.1:%d", "%s", "DNSCryptResolver.cert", "DNSCryptResolver.key")
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function checkDNSCryptUDP(dq)
if dq:getProtocol() ~= "DNSCrypt UDP" then
addDNSCryptBind("127.0.0.1:%d", "%s", "DNSCryptResolver.cert", "DNSCryptResolver.key")
pc = newPacketCache(5, {maxTTL=86400, minTTL=1, numberOfShards=1})
getPool(""):setCache(pc)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testCachedSimpleA(self):
addAction(AllRule(), LuaAction(checkQueryPacket))
addResponseAction(AllRule(), LuaResponseAction(checkResponsePacket))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testQuestionAndResponse(self):
end
addResponseAction(AllRule(), LuaResponseAction(checkResponsePacket))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testQuestionAndResponseWithParsers(self):
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
newServer{address="127.0.0.1:%d"}
_dohServerPort = pickAvailablePort()
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(AllRule(), SpoofAction("3.4.5.6"))
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/PowerDNS" }, {exactPathMatching=false, library='%s'})
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/PowerDNS" }, {exactPathMatching=false, library='%s'})
"""
_config_params = ['_testServerPort', '_dohServerPort', '_serverCert', '_serverKey', '_dohLibrary']
_dohServerPort = pickAvailablePort()
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {library='%s'})
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, {library='%s'})
setECSOverride(true)
"""
_config_params = ['_testServerPort', '_dohServerPort', '_serverCert', '_serverKey', '_dohLibrary']
_serverName = 'tls.tests.dnsdist.org'
_dohBaseURL = ("http://%s:%d/dns-query" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s"}
- addDOHLocal("127.0.0.1:%s", nil, nil, '/dns-query', {library='%s'})
+ newServer{address="127.0.0.1:%d"}
+ addDOHLocal("127.0.0.1:%d", nil, nil, '/dns-query', {library='%s'})
"""
_config_params = ['_testServerPort', '_dohServerPort', '_dohLibrary']
_dohServerPort = pickAvailablePort()
_dohBaseURL = ("https://%s:%d/dns-query" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
- addDOHLocal("127.0.0.1:%s", "%s", "%s", '/dns-query', {library='%s'})
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", '/dns-query', {library='%s'})
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
_dohServerPort = pickAvailablePort()
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {sendCacheControlHeaders=false, library='%s'})
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, {sendCacheControlHeaders=false, library='%s'})
"""
_config_params = ['_testServerPort', '_dohServerPort', '_serverCert', '_serverKey', '_dohLibrary']
_customResponseHeader2 = 'user-agent: derp'
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {customResponseHeaders={["access-control-allow-origin"]="*",["user-agent"]="derp",["UPPERCASE"]="VaLuE"}, keepIncomingHeaders=true, library='%s'})
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, {customResponseHeaders={["access-control-allow-origin"]="*",["user-agent"]="derp",["UPPERCASE"]="VaLuE"}, keepIncomingHeaders=true, library='%s'})
local ffi = require("ffi")
_dohServerPort = pickAvailablePort()
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
setACL('192.0.2.1/32')
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {trustForwardedForHeader=true, library='%s'})
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, {trustForwardedForHeader=true, library='%s'})
-- Set a maximum number of TCP connections per client, to exercise
-- that code along with X-Forwarded-For support
setMaxTCPConnectionsPerClient(2)
_dohServerPort = pickAvailablePort()
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
setACL('192.0.2.1/32')
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {earlyACLDrop=true, library='%s'})
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, {earlyACLDrop=true, library='%s'})
"""
_config_params = ['_testServerPort', '_dohServerPort', '_serverCert', '_serverKey', '_dohLibrary']
_skipListeningOnCL = True
_maxTCPConnsPerDOHFrontend = 5
_config_template = """
- newServer{address="127.0.0.1:%s"}
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, { maxConcurrentTCPConnections=%d, library='%s' })
+ newServer{address="127.0.0.1:%d"}
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, { maxConcurrentTCPConnections=%d, library='%s' })
"""
_config_params = ['_testServerPort', '_dohServerPort', '_serverCert', '_serverKey', '_maxTCPConnsPerDOHFrontend', '_dohLibrary']
_alternateListeningAddr = '127.0.0.1'
end
addAction("protocols.doh.tests.powerdns.com.", LuaAction(checkDOH))
- newServer{address="127.0.0.1:%s"}
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {library='%s'})
+ newServer{address="127.0.0.1:%d"}
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, {library='%s'})
"""
_config_params = ['_testServerPort', '_dohServerPort', '_serverCert', '_serverKey', '_dohLibrary']
_dohServerPort = pickAvailablePort()
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
cert=newTLSCertificate("%s", {password="%s"})
- addDOHLocal("127.0.0.1:%s", cert, "", { "/" }, {library='%s'})
+ addDOHLocal("127.0.0.1:%d", cert, "", { "/" }, {library='%s'})
"""
_config_params = ['_testServerPort', '_serverCert', '_pkcs12Password', '_dohServerPort', '_dohLibrary']
_dohServerPort = pickAvailablePort()
_dohBaseURL = ("https://%s:%d/" % (_serverName, _dohServerPort))
_config_template = """
- newServer{address="127.0.0.1:%s", tcpOnly=true}
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {library='%s'})
+ newServer{address="127.0.0.1:%d", tcpOnly=true}
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, {library='%s'})
"""
_config_params = ['_testServerPort', '_dohServerPort', '_serverCert', '_serverKey', '_dohLibrary']
return DNSAction.Spoof, "address-was-"..dashAddr..".local-address-any.advanced.tests.powerdns.com."
end
addAction("local-address-any.quic.tests.powerdns.com.", LuaAction(answerBasedOnLocalAddress))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addDOH3Local("0.0.0.0:%d", "%s", "%s")
addDOH3Local("[::]:%d", "%s", "%s")
"""
_doqServerPort = pickAvailablePort()
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
newServer{address="127.0.0.1:%d"}
return DNSAction.Spoof, "address-was-"..dashAddr..".local-address-any.advanced.tests.powerdns.com."
end
addAction("local-address-any.quic.tests.powerdns.com.", LuaAction(answerBasedOnLocalAddress))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addDOQLocal("0.0.0.0:%d", "%s", "%s")
addDOQLocal("[::]:%d", "%s", "%s")
"""
return DNSAction.None, ""
end
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
- rl = newRemoteLogger('127.0.0.1:%s')
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
+ rl = newRemoteLogger('127.0.0.1:%d')
addAction(AllRule(), DnstapLogAction("a.server", rl, alterDnstapQuery)) -- Send dnstap message before lookup
_fstrmLoggerCounter = 0
_config_params = ['_testServerPort', '_fstrmLoggerAddress', '_dohServerPort', '_serverCert', '_serverKey', '_doh3ServerPort', '_serverCert', '_serverKey']
_config_template = """
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
fslu = newFrameStreamUnixLogger('%s')
addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, {})
_fstrmLoggerCounter = 0
_config_params = ['_testServerPort', '_fstrmLoggerPort']
_config_template = """
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
- fslu = newFrameStreamTcpLogger('127.0.0.1:%s')
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
+ fslu = newFrameStreamTcpLogger('127.0.0.1:%d')
addAction(AllRule(), DnstapLogAction("a.server", fslu))
"""
function maintenance()
addDynBlocks(exceedQRate(%d, %d), "Exceeded query rate", %d)
end
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_dynBlockQPS', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
addDynBlocks(exceedQRate(%d, %d), "Exceeded query rate", %d)
end
setDynBlocksAction(DNSAction.Refused)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksQRate(self):
addDynBlocks(exceedQRate(%d, %d), "Exceeded query rate", %d, DNSAction.Refused)
end
setDynBlocksAction(DNSAction.Drop)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksQRate(self):
addDynBlocks(exceedQRate(%d, %d), "Exceeded query rate", %d, DNSAction.Nxdomain)
end
setDynBlocksAction(DNSAction.Drop)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksQRate(self):
addDynBlocks(exceedQRate(%d, %d), "Exceeded query rate", %d, DNSAction.Truncate)
end
setDynBlocksAction(DNSAction.Drop)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksQRate(self):
end
addAction("allowlisted-test.dynblocks.tests.powerdns.com.", LuaAction(spoofrule))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAllowlisted(self):
bpf:unblock(newCA("2001:DB8::42"))
bpf:unblockQName(newDNSName("powerdns.com."), 255)
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_dynBlockQPS', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
function maintenance()
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
webserver("127.0.0.1:%s")
setWebserverConfig({password="%s", apiKey="%s"})
"""
dbr:apply()
end
setDynBlocksAction(DNSAction.Refused)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksQRate(self):
dbr:apply()
end
setDynBlocksAction(DNSAction.Drop)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksQRate(self):
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testExcluded(self):
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testExcluded(self):
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_dynBlockQPS', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_dynBlockQPS', '_dynBlockPeriod', '_dynBlockDuration', '_dynBlockWarningQPS', '_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksServFailRatio(self):
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
local pc = newPacketCache(1000, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
"""
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
local pc = newPacketCache(1000, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_dynBlockBytesPerSecond', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
function maintenance()
addDynBlocks(exceedRespByterate(%d, %d), "Exceeded response byterate", %d)
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksResponseByteRate(self):
_config_params = ['_consoleKeyB64', '_consolePort', '_dynBlockBytesPerSecond', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
local dbr = dynBlockRulesGroup()
dbr:setResponseByteRate(%d, %d, "Exceeded query rate", %d)
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksResponseByteRate(self):
function maintenance()
addDynBlocks(exceedServFails(%d, %d), "Exceeded servfail rate", %d)
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksServFailRate(self):
function maintenance()
addDynBlocks(exceedServFails(%d, %d), "Exceeded servfail rate", %d)
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksServFailRateCached(self):
dbr:apply()
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDynBlocksServFailRate(self):
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
newServer{address="127.0.0.1:%d"}
bpf = newBPFFilter({ipv4MaxItems=10, ipv6MaxItems=10, qnamesMaxItems=10})
class TestBasics(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
addAction(AllRule(), LuaAction(testEDNSOptions))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
_config_params = ['_ednsTestFunction', '_testServerPort']
addAction(AllRule(), LuaAction(testEDNSOptions))
addResponseAction("ednsoptions-ecs.tests.powerdns.com.", LuaResponseAction(testEDNSOptionsInResponses))
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
"""
_config_params = ['_ednsTestFunction', '_testServerPort']
addAction(AllRule(), LuaFFIAction(testEDNSOptions))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testWithoutEDNSFFI(self):
setPayloadSizeOnSelfGeneratedAnswers(1042)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testNoEDNS(self):
setPayloadSizeOnSelfGeneratedAnswers(1042)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testWithEDNSNoDO(self):
_config_template = """
truncateTC(true)
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
"""
def testWithoutEDNS(self):
setECSOverride(true)
setECSSourcePrefixV4(24)
setECSSourcePrefixV6(56)
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
"""
def testWithoutEDNS(self):
setECSOverride(false)
setECSSourcePrefixV4(16)
setECSSourcePrefixV6(16)
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
addAction(SuffixMatchNodeRule("disabled.ecsrules.tests.powerdns.com."), SetDisableECSAction())
function disableECSViaLua(dq)
dq.useECS = false
setECSOverride(false)
setECSSourcePrefixV4(24)
setECSSourcePrefixV6(56)
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
addAction(SuffixMatchNodeRule("overridden.ecsrules.tests.powerdns.com."), SetECSOverrideAction(true))
function overrideECSViaLua(dq)
dq.ecsOverride = true
setECSOverride(false)
setECSSourcePrefixV4(24)
setECSSourcePrefixV6(56)
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
addAction(SuffixMatchNodeRule("overriddenprefixlength.ecsrules.tests.powerdns.com."), SetECSPrefixLengthAction(32, 128))
function overrideECSPrefixLengthViaLua(dq)
dq.ecsPrefixLength = 32
setECSOverride(false)
setECSSourcePrefixV4(32)
setECSSourcePrefixV6(128)
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
addAction(SuffixMatchNodeRule("setecsaction.ecsrules.tests.powerdns.com."), SetECSAction("192.0.2.1/32"))
"""
_config_template = """
setKey("%s")
controlSocket("127.0.0.1:%d")
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
newServer{address="127.0.0.1:%d"}
"""
_config_template = """
setKey("%s")
controlSocket("127.0.0.1:%d")
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
srv = newServer{address="127.0.0.1:%d"}
srv:setUp()
_config_template = """
setKey("%s")
controlSocket("127.0.0.1:%d")
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
srv = newServer{address="127.0.0.1:%d"}
srv:setDown()
_config_template = """
setKey("%s")
controlSocket("127.0.0.1:%d")
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
srv = newServer{address="127.0.0.1:%d", checkName='%s'}
"""
_config_template = """
setKey("%s")
controlSocket("127.0.0.1:%d")
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
srv = newServer{address="127.0.0.1:%d", checkName='powerdns.com.'}
"""
_config_template = """
setKey("%s")
controlSocket("127.0.0.1:%d")
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
function myHealthCheckFunction(qname, qtype, qclass, dh)
setKey("%s")
controlSocket("127.0.0.1:%d")
- newServer{address="127.0.0.1:%s", healthCheckMode='lazy', checkInterval=1, lazyHealthCheckFailedInterval=1, lazyHealthCheckThreshold=10, lazyHealthCheckSampleSize=100, lazyHealthCheckMinSampleCount=10, lazyHealthCheckMode='TimeoutOrServFail', pool=''}
+ newServer{address="127.0.0.1:%d", healthCheckMode='lazy', checkInterval=1, lazyHealthCheckFailedInterval=1, lazyHealthCheckThreshold=10, lazyHealthCheckSampleSize=100, lazyHealthCheckMinSampleCount=10, lazyHealthCheckMode='TimeoutOrServFail', pool=''}
- newServer{address="127.0.0.1:%s", tls='openssl', caStore='ca.pem', subjectAddr='127.0.0.1', healthCheckMode='lazy', checkInterval=1, lazyHealthCheckFailedInterval=1, lazyHealthCheckThreshold=10, lazyHealthCheckSampleSize=100, lazyHealthCheckMinSampleCount=10, lazyHealthCheckMode='TimeoutOrServFail', pool='dot'}
+ newServer{address="127.0.0.1:%d", tls='openssl', caStore='ca.pem', subjectAddr='127.0.0.1', healthCheckMode='lazy', checkInterval=1, lazyHealthCheckFailedInterval=1, lazyHealthCheckThreshold=10, lazyHealthCheckSampleSize=100, lazyHealthCheckMinSampleCount=10, lazyHealthCheckMode='TimeoutOrServFail', pool='dot'}
addAction('dot.lazy.test.powerdns.com.', PoolAction('dot'))
- newServer{address="127.0.0.1:%s", tls='openssl', dohPath='/dns-query', caStore='ca.pem', subjectAddr='127.0.0.1', healthCheckMode='lazy', checkInterval=1, lazyHealthCheckFailedInterval=1, lazyHealthCheckThreshold=10, lazyHealthCheckSampleSize=100, lazyHealthCheckMinSampleCount=10, lazyHealthCheckMode='TimeoutOrServFail', pool='doh'}
+ newServer{address="127.0.0.1:%d", tls='openssl', dohPath='/dns-query', caStore='ca.pem', subjectAddr='127.0.0.1', healthCheckMode='lazy', checkInterval=1, lazyHealthCheckFailedInterval=1, lazyHealthCheckThreshold=10, lazyHealthCheckSampleSize=100, lazyHealthCheckMinSampleCount=10, lazyHealthCheckMode='TimeoutOrServFail', pool='doh'}
addAction('doh.lazy.test.powerdns.com.', PoolAction('doh'))
"""
_verboseMode = True
_config_template = """
setKey("%s")
controlSocket("127.0.0.1:%d")
- webserver("127.0.0.1:%s")
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
srv = newServer{address="127.0.0.1:%d",maxCheckFailures=1,checkTimeout=1000,checkInterval=1,rise=1}
srv:setAuto(false)
_config_params = ['_consoleKeyB64', '_consolePort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
counter = 0
function threadmessage(cmd, data)
class TestLuaDNSHeaderBindings(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function checkTCSet(dq)
local tc = dq.dh:getTC()
_config_params = ['_consoleKeyB64', '_consolePort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
debug = nil
"""
class RuleMetricsTest(object):
_config_template = """
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl" })
- addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/"})
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl" })
+ addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/"})
- newServer{address="127.0.0.1:%s", pool={'', 'cache'}}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", pool={'', 'cache'}}
+ webserver("127.0.0.1:%d")
setWebserverConfig({apiKey="%s"})
addAction('rcode-nxdomain.metrics.tests.powerdns.com', RCodeAction(DNSRCode.NXDOMAIN))
_dohWithNGHTTP2ServerPort = pickAvailablePort()
_dohWithH2OServerPort = pickAvailablePort()
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, { ocspResponses={"%s"}, library='nghttp2'})
addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, { ocspResponses={"%s"}, library='h2o'})
_caKey = 'ca.key'
_tlsServerPort = pickAvailablePort()
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
-- generate an OCSP response file for our certificate, valid one day
generateOCSPResponse('%s', '%s', '%s', '%s', 1, 0)
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="gnutls", ocspResponses={"%s"}})
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="gnutls", ocspResponses={"%s"}})
"""
_config_params = ['_testServerPort', '_consoleKeyB64', '_consolePort', '_serverCert', '_caCert', '_caKey', '_ocspFile', '_tlsServerPort', '_serverCert', '_serverKey', '_ocspFile']
_ocspFile = '/dev/null'
_tlsServerPort = pickAvailablePort()
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="gnutls", ocspResponses={"%s"}})
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="gnutls", ocspResponses={"%s"}})
"""
_config_params = ['_testServerPort', '_consoleKeyB64', '_consolePort', '_tlsServerPort', '_serverCert', '_serverKey', '_ocspFile']
_caKey = 'ca.key'
_tlsServerPort = pickAvailablePort()
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
-- generate an OCSP response file for our certificate, valid one day
generateOCSPResponse('%s', '%s', '%s', '%s', 1, 0)
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl", ocspResponses={"%s"}})
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl", ocspResponses={"%s"}})
"""
_config_params = ['_testServerPort', '_consoleKeyB64', '_consolePort', '_serverCert', '_caCert', '_caKey', '_ocspFile', '_tlsServerPort', '_serverCert', '_serverKey', '_ocspFile']
_ocspFile = '/dev/null'
_tlsServerPort = pickAvailablePort()
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl", ocspResponses={"%s"}})
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl", ocspResponses={"%s"}})
"""
_config_params = ['_testServerPort', '_consoleKeyB64', '_consolePort', '_tlsServerPort', '_serverCert', '_serverKey', '_ocspFile']
setKey("%s")
controlSocket("127.0.0.1:%d")
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='%s', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', pool={'', 'cache'}, keyLogFile="/tmp/dohkeys"}:setUp()
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='%s', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', pool={'', 'cache'}, keyLogFile="/tmp/dohkeys"}:setUp()
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
pc = newPacketCache(100)
setKey("%s")
controlSocket("127.0.0.1:%d")
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='%s', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', pool={'', 'cache'}}:setUp()
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='%s', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', pool={'', 'cache'}}:setUp()
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
pc = newPacketCache(100)
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='openssl', validateCertificates=true, caStore='ca.pem', subjectName='not-powerdns.com', dohPath='/dns-query'}:setUp()
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='openssl', validateCertificates=true, caStore='ca.pem', subjectName='not-powerdns.com', dohPath='/dns-query'}:setUp()
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='not-powerdns.com', dohPath='/dns-query'}:setUp()
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='not-powerdns.com', dohPath='/dns-query'}:setUp()
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
setKey("%s")
controlSocket("127.0.0.1:%d")
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='%s', validateCertificates=false, caStore='ca.pem', subjectName='not-powerdns.com', dohPath='/dns-query', pool={'', 'cache'}}:setUp()
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='%s', validateCertificates=false, caStore='ca.pem', subjectName='not-powerdns.com', dohPath='/dns-query', pool={'', 'cache'}}:setUp()
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
pc = newPacketCache(100)
setKey("%s")
controlSocket("127.0.0.1:%d")
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='%s', validateCertificates=false, caStore='ca.pem', subjectName='not-powerdns.com', dohPath='/dns-query', pool={'', 'cache'}}:setUp()
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='%s', validateCertificates=false, caStore='ca.pem', subjectName='not-powerdns.com', dohPath='/dns-query', pool={'', 'cache'}}:setUp()
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
pc = newPacketCache(100)
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='openssl', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', pool={'', 'cache'}}:setUp()
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='openssl', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', pool={'', 'cache'}}:setUp()
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
pc = newPacketCache(100)
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query'}:setUp()
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query'}:setUp()
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_verboseMode = True
_config_params = ['_tlsBackendPort']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', useProxyProtocol=true}:setUp()
+ newServer{address="127.0.0.1:%d", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', useProxyProtocol=true}:setUp()
"""
_verboseMode = True
_config_params = ['_tlsBackendPort']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', addXForwardedHeaders=true}
+ newServer{address="127.0.0.1:%d", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', dohPath='/dns-query', addXForwardedHeaders=true}
"""
_verboseMode = True
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='openssl', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', keyLogFile="/tmp/dotkeys"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='openssl', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com', keyLogFile="/tmp/dotkeys"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com'}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='powerdns.com'}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='openssl', validateCertificates=true, caStore='ca.pem', subjectName='not-powerdns.com'}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='openssl', validateCertificates=true, caStore='ca.pem', subjectName='not-powerdns.com'}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='not-powerdns.com'}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='gnutls', validateCertificates=true, caStore='ca.pem', subjectName='not-powerdns.com'}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='openssl', validateCertificates=false, caStore='ca.pem', subjectName='not-powerdns.com'}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='openssl', validateCertificates=false, caStore='ca.pem', subjectName='not-powerdns.com'}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_config_params = ['_tlsBackendPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
setMaxTCPClientThreads(1)
- newServer{address="127.0.0.1:%s", tls='gnutls', validateCertificates=false, caStore='ca.pem', subjectName='not-powerdns.com'}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", tls='gnutls', validateCertificates=false, caStore='ca.pem', subjectName='not-powerdns.com'}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_webServerAPIKeyHashed = '$scrypt$ln=10,p=1,r=8$9v8JxDfzQVyTpBkTbkUqYg==$bDQzAOHeK1G9UvTPypNhrX48w974ZXbFPtRKS34+aso='
_config_params = ['_testServerPort', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
- newServer{address="127.0.0.1:%s"}
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d"}
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
return DNSAction.None, "" -- continue to the next rule
end
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
- rl = newRemoteLogger('127.0.0.1:%s')
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
+ rl = newRemoteLogger('127.0.0.1:%d')
addAction(AllRule(), LuaAction(alterLuaFirst)) -- Add tags to DNSQuery first
class TestProtobufMetaTags(DNSDistProtobufTest):
_config_params = ['_testServerPort', '_protobufServerPort']
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
rl = newRemoteLogger('127.0.0.1:%d')
local ffi = require("ffi")
class TestProtobufExtendedDNSErrorTags(DNSDistProtobufTest):
_config_params = ['_testServerPort', '_protobufServerPort']
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
rl = newRemoteLogger('127.0.0.1:%d')
addAction(AllRule(), RemoteLogAction(rl, nil, {serverID='dnsdist-server-1'}))
class TestProtobufCacheHit(DNSDistProtobufTest):
_config_params = ['_testServerPort', '_protobufServerPort']
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
rl = newRemoteLogger('127.0.0.1:%d')
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
newServer{address="127.0.0.1:%d"}
rl = newRemoteLogger('127.0.0.1:%d')
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl" })
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl" })
addDOHLocal("127.0.0.1:%d", "%s", "%s", { '/dns-query' }, { keepIncomingHeaders=true, library='nghttp2' })
addDOHLocal("127.0.0.1:%d", "%s", "%s", { '/dns-query' }, { keepIncomingHeaders=true, library='h2o' })
class TestProtobufIPCipher(DNSDistProtobufTest):
_config_params = ['_testServerPort', '_protobufServerPort', '_protobufServerID', '_protobufServerID']
_config_template = """
- newServer{address="127.0.0.1:%s", useClientSubnet=true}
+ newServer{address="127.0.0.1:%d", useClientSubnet=true}
key = makeIPCipherKey("some 16-byte key")
- rl = newRemoteLogger('127.0.0.1:%s')
+ rl = newRemoteLogger('127.0.0.1:%d')
addAction(AllRule(), RemoteLogAction(rl, nil, {serverID='%s', ipEncryptKey=key})) -- Send protobuf message before lookup
addResponseAction(AllRule(), RemoteLogResponseAction(rl, nil, true, {serverID='%s', ipEncryptKey=key})) -- Send protobuf message after lookup
_dohWithH2OBaseURL = ("https://%s:%d/dns-query" % (_serverName, _dohWithH2OServerPort))
_proxyResponderPort = proxyResponderPort
_config_template = """
- newServer{address="127.0.0.1:%s", useProxyProtocol=true}
+ newServer{address="127.0.0.1:%d", useProxyProtocol=true}
addDOHLocal("127.0.0.1:%d", "%s", "%s", { '/dns-query' }, { trustForwardedForHeader=true, library='nghttp2' })
addDOHLocal("127.0.0.1:%d", "%s", "%s", { '/dns-query' }, { trustForwardedForHeader=true, library='h2o' })
setACL( { "::1/128", "127.0.0.0/8" } )
_config_template = """
addAction(NotRule(RecordsCountRule(DNSSection.Additional, 1, 1)), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testRecordsCountRefuseEmptyAR(self):
_config_template = """
addAction(RecordsCountRule(DNSSection.Answer, 2, 3), AllowAction())
addAction(AllRule(), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testRecordsCountRefuseOneAN(self):
_config_template = """
addAction(RecordsCountRule(DNSSection.Authority, 0, 0), AllowAction())
addAction(AllRule(), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testRecordsCountRefuseNS(self):
_config_template = """
addAction(NotRule(RecordsTypeCountRule(DNSSection.Additional, DNSQType.OPT, 0, 0)), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testRecordsCountRefuseOPTinAR(self):
class TestResponseRuleNXDelayed(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addResponseAction(RCodeRule(DNSRCode.NXDOMAIN), DelayResponseAction(1000))
"""
_extraStartupSleep = 1
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addResponseAction(ERCodeRule(DNSRCode.BADVERS), DelayResponseAction(1000))
"""
class TestResponseRuleQNameDropped(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addResponseAction("drop.responses.tests.powerdns.com.", DropResponseAction())
"""
class TestResponseRuleQNameAllowed(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addResponseAction("allow.responses.tests.powerdns.com.", AllowResponseAction())
addResponseAction(AllRule(), DropResponseAction())
"""
_ttl = 5
_config_params = ['_testServerPort', '_ttl']
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function editTTLCallback(section, class, type, ttl)
return %d
return DNSResponseAction.None, ""
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addResponseAction("min.responses.tests.powerdns.com.", SetMinTTLResponseAction(highttl))
addResponseAction("max.responses.tests.powerdns.com.", SetMaxTTLResponseAction(lowttl))
_config_params = ['_percentage', '_testServerPort']
_config_template = """
addResponseAction(AllRule(), SetReducedTTLResponseAction(%d))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testLimitTTL(self):
class TestResponseLuaActionReturnSyntax(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function customDelay(dr)
return DNSResponseAction.Delay, "1000"
end
return DNSResponseAction.HeaderModify, ""
end
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addResponseAction("ffi.clear-records-type.responses.tests.powerdns.com.", LuaFFIResponseAction(luafct))
addResponseAction("clear-records-type.responses.tests.powerdns.com.", ClearRecordTypesResponseAction(DNSQType.AAAA))
_config_params = ['_testServerPort']
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function rewriteServFail(dq)
if dq.rcode == DNSRCode.SERVFAIL then
class TestAdvancedSetEDNSOptionResponseAction(DNSDistTest):
_config_template = """
addResponseAction(AllRule(), SetEDNSOptionResponseAction(10, "deadbeefdeadc0de"))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedSetEDNSOptionResponse(self):
_config_params = ['_testServer1Port', '_testServer2Port', '_testServer3Port', '_testServer4Port']
_config_template = """
MaxRestart = 2
- s0 = newServer{name="s0", address="127.0.0.1:%s"}
+ s0 = newServer{name="s0", address="127.0.0.1:%d"}
s0:setUp()
s0:addPool("pool0")
- s1 = newServer{name="s1", address="127.0.0.1:%s"}
+ s1 = newServer{name="s1", address="127.0.0.1:%d"}
s1:setUp()
s1:addPool("pool1")
- s2 = newServer{name="s2", address="127.0.0.1:%s"}
+ s2 = newServer{name="s2", address="127.0.0.1:%d"}
s2:setUp()
s2:addPool("pool2")
- s3 = newServer{name="s3", address="127.0.0.1:%s"}
+ s3 = newServer{name="s3", address="127.0.0.1:%d"}
s3:setUp()
s3:addPool("pool3")
function makeQueryRestartable(dq) dq:setRestartable() return DNSAction.None end
class TestRoutingPoolRouting(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s", pool="real"}
+ newServer{address="127.0.0.1:%d", pool="real"}
addAction(SuffixMatchNodeRule("poolaction.routing.tests.powerdns.com"), PoolAction("real"))
-- by default PoolAction stops the processing so the second rule should not be executed
addAction(SuffixMatchNodeRule("poolaction.routing.tests.powerdns.com"), PoolAction("not-real"))
class TestRoutingQPSPoolRouting(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s", pool="regular"}
+ newServer{address="127.0.0.1:%d", pool="regular"}
addAction(SuffixMatchNodeRule("qpspoolaction.routing.tests.powerdns.com"), QPSPoolAction(10, "regular"))
"""
_config_params = ['_testServerPort', '_testServer2Port']
_config_template = """
setServerPolicy(roundrobin)
- s1 = newServer{address="127.0.0.1:%s"}
+ s1 = newServer{address="127.0.0.1:%d"}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s"}
+ s2 = newServer{address="127.0.0.1:%d"}
s2:setUp()
"""
_config_params = ['_testServerPort', '_testServer2Port']
_config_template = """
setServerPolicy(roundrobin)
- s1 = newServer{address="127.0.0.1:%s"}
+ s1 = newServer{address="127.0.0.1:%d"}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s"}
+ s2 = newServer{address="127.0.0.1:%d"}
s2:setDown()
"""
_config_template = """
setServerPolicy(roundrobin)
setRoundRobinFailOnNoServer(true)
- s1 = newServer{address="127.0.0.1:%s"}
+ s1 = newServer{address="127.0.0.1:%d"}
s1:setDown()
- s2 = newServer{address="127.0.0.1:%s"}
+ s2 = newServer{address="127.0.0.1:%d"}
s2:setDown()
"""
end
]])
- s1 = newServer{address="127.0.0.1:%s"}
+ s1 = newServer{address="127.0.0.1:%d"}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s"}
+ s2 = newServer{address="127.0.0.1:%d"}
s2:setUp()
function atExit()
end
setServerPolicy(newServerPolicy("custom lua round robin policy", luaroundrobin))
- s1 = newServer{address="127.0.0.1:%s"}
+ s1 = newServer{address="127.0.0.1:%d"}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s"}
+ s2 = newServer{address="127.0.0.1:%d"}
s2:setUp()
"""
_config_params = ['_testServerPort', '_testServer2Port']
_config_template = """
setServerPolicy(firstAvailable)
- s1 = newServer{address="127.0.0.1:%s", order=2}
+ s1 = newServer{address="127.0.0.1:%d", order=2}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s", order=1}
+ s2 = newServer{address="127.0.0.1:%d", order=1}
s2:setUp()
"""
_config_params = ['_testServerPort', '_testServer2Port']
_config_template = """
setServerPolicy(firstAvailable)
- s1 = newServer{address="127.0.0.1:%s", order=2}
+ s1 = newServer{address="127.0.0.1:%d", order=2}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s", order=1, qps=10}
+ s2 = newServer{address="127.0.0.1:%d", order=1, qps=10}
s2:setUp()
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
class TestRoutingNoServer(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s", pool="real"}
+ newServer{address="127.0.0.1:%d", pool="real"}
setServFailWhenNoServer(true)
"""
setWeightedBalancingFactor(1.5)
-- this is the default, but let's ensure we can reset it to the initial value
setWeightedBalancingFactor(0)
- s1 = newServer{address="127.0.0.1:%s", weight=1}
+ s1 = newServer{address="127.0.0.1:%d", weight=1}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s", weight=2}
+ s2 = newServer{address="127.0.0.1:%d", weight=2}
s2:setUp()
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_testServer2Port']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
setServerPolicy(wrandom)
- s1 = newServer{address="127.0.0.1:%s", weight=2000000000}
+ s1 = newServer{address="127.0.0.1:%d", weight=2000000000}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s", weight=2000000000}
+ s2 = newServer{address="127.0.0.1:%d", weight=2000000000}
s2:setUp()
"""
setWeightedBalancingFactor(1.5)
-- this is the default, but let's ensure we can reset it to the initial value
setWeightedBalancingFactor(0)
- s1 = newServer{address="127.0.0.1:%s", weight=1}
+ s1 = newServer{address="127.0.0.1:%d", weight=1}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s", weight=1}
+ s2 = newServer{address="127.0.0.1:%d", weight=1}
s2:setUp()
"""
setConsistentHashingBalancingFactor(1.5)
-- this is the default, but let's ensure we can reset it to the initial value
setConsistentHashingBalancingFactor(0)
- s1 = newServer{address="127.0.0.1:%s", weight=1000}
+ s1 = newServer{address="127.0.0.1:%d", weight=1000}
s1:setUp()
- s2 = newServer{address="127.0.0.1:%s", weight=1000}
+ s2 = newServer{address="127.0.0.1:%d", weight=1000}
s2:setUp()
"""
end
setServerPolicyLuaFFI("luaffipolicy", luaffipolicy)
- s1 = newServer{address="127.0.0.1:%s"}
+ s1 = newServer{address="127.0.0.1:%d"}
s1:setDown()
"""
_verboseMode = True
setKey("%s")
controlSocket("127.0.0.1:%d")
setServerPolicy(orderedWrandUntag)
- s11 = newServer{name="s11", address="127.0.0.1:%s", order=1, weight=1}
+ s11 = newServer{name="s11", address="127.0.0.1:%d", order=1, weight=1}
s11:setUp()
- s12 = newServer{name="s12", address="127.0.0.1:%s", order=1, weight=2}
+ s12 = newServer{name="s12", address="127.0.0.1:%d", order=1, weight=2}
s12:setUp()
- s21 = newServer{name="s21", address="127.0.0.1:%s", order=2, weight=1}
+ s21 = newServer{name="s21", address="127.0.0.1:%d", order=2, weight=1}
s21:setUp()
- s22 = newServer{name="s22", address="127.0.0.1:%s", order=2, weight=2}
+ s22 = newServer{name="s22", address="127.0.0.1:%d", order=2, weight=2}
s22:setUp()
function setServerState(name, flag)
for _, s in ipairs(getServers()) do
addAction(AllRule(), NoneAction())
addAction(QNameSuffixRule("allowed.advanced.tests.powerdns.com."), AllowAction())
addAction(AllRule(), DropAction())
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedAllow(self):
_config_template = """
addAction("norecurse.advanced.tests.powerdns.com.", SetNoRecurseAction())
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedNoRD(self):
_config_template = """
addAction("setcd.advanced.tests.powerdns.com.", SetDisableValidationAction())
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedSetCD(self):
_config_template = """
addAction("clearrd.advanced.tests.powerdns.com.", SetNoRecurseAction())
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedClearRD(self):
_config_template = """
addAction(AllRule(), DelayAction(1000))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDelayed(self):
_config_template = """
addAction(AndRule({NotRule(QTypeRule("A")), TCPRule(false)}), RCodeAction(DNSRCode.NOTIMP))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAOverUDPReturnsNotImplementedCanary(self):
"""
_config_template = """
addAction(OrRule({QTypeRule("A"), TCPRule(false)}), RCodeAction(DNSRCode.NOTIMP))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAAAAOverUDPReturnsNotImplemented(self):
"""
class TestAdvancedLogAction(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(AllRule(), LogAction("dnsdist.log", false))
"""
def testAdvancedLogAction(self):
class TestAdvancedDNSSEC(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(DNSSECRule(), DropAction())
"""
def testAdvancedDNSSECDrop(self):
class TestAdvancedQClass(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(QClassRule(DNSClass.CHAOS), DropAction())
"""
def testAdvancedQClassChaosDrop(self):
class TestAdvancedOpcode(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(OpcodeRule(DNSOpcode.Notify), DropAction())
"""
def testAdvancedOpcodeNotifyDrop(self):
class TestAdvancedNonTerminalRule(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s", pool="real"}
+ newServer{address="127.0.0.1:%d", pool="real"}
addAction(AllRule(), SetDisableValidationAction())
addAction(AllRule(), PoolAction("real"))
addAction(AllRule(), DropAction())
_config_template = """
addAction(AllRule(), SetDisableValidationAction())
addAction(AllRule(), SpoofAction("192.0.2.1"))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedRestoreFlagsOnSpoofResponse(self):
_config_template = """
addAction("qps.advanced.tests.powerdns.com", QPSAction(10))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedQPSLimit(self):
_config_template = """
addAction("qpsnone.advanced.tests.powerdns.com", QPSAction(100))
addAction(AllRule(), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedQPSNone(self):
allowed = newNMG()
allowed:addMask("192.0.2.1/32")
addAction(NotRule(NetmaskGroupRule(allowed)), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedNMGRule(self):
oneNMG:addNMG(anotherNMG)
addAction(NotRule(NetmaskGroupRule(oneNMG)), DropAction())
addAction(AllRule(), SpoofAction('192.0.2.1'))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedNMGRuleAddNMG(self):
_config_template = """
addAction(NotRule(NetmaskGroupRule('192.0.2.1')), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedNMGRule(self):
_config_template = """
addAction(NotRule(NetmaskGroupRule({'192.0.2.1', '192.0.2.128/25'})), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedNMGRule(self):
_config_params = ['_dnsDistPort', '_testServerPort']
_config_template = """
addAction(DSTPortRule(%d), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testDSTPortRule(self):
_config_template = """
addAction(QNameLabelsCountRule(5,6), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedLabelsCountRule(self):
_config_template = """
addAction(QNameWireLengthRule(54,56), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedWireLengthRule(self):
return DNSAction.None, ""
end
addAction(AllRule(), LuaAction(nxDOLua))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testNxDOViaLua(self):
return DNSAction.Refused, ""
end
addAction(AllRule(), LuaAction(refuse))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testRefusedViaLua(self):
return DNSAction.Refused
end
addAction(AllRule(), LuaAction(refuse))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testRefusedWithEmptyRule(self):
return DNSAction.None, ""
end
addAction(AllRule(), LuaAction(trunc))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testTCViaLua(self):
_config_template = """
addAction(RDRule(), RCodeAction(DNSRCode.REFUSED))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedRDRefused(self):
return DNSAction.None, ""
end
addAction(AllRule(), LuaAction(testAction))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testTempFailureTTLBinding(self):
class TestAdvancedEDNSOptionRule(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(EDNSOptionRule(EDNSOptionCode.ECS), DropAction())
"""
class TestAdvancedEDNSVersionRule(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(EDNSVersionRule(0), ERCodeAction(DNSRCode.BADVERS))
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
- newServer{address="127.0.0.1:%s"}
+ controlSocket("127.0.0.1:%d")
+ newServer{address="127.0.0.1:%d"}
addAction(AllRule(), SpoofAction("192.0.2.1"))
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
- newServer{address="127.0.0.1:%s"}
+ controlSocket("127.0.0.1:%d")
+ newServer{address="127.0.0.1:%d"}
addAction(AllRule(), SpoofAction("192.0.2.1"), {name='myFirstRule', uuid='090736ca-2fb6-41e7-a836-58efaca3d71e'})
addAction(AllRule(), SpoofAction("192.0.2.1"), {name='mySecondRule'})
addResponseAction(AllRule(), AllowResponseAction(), {name='myFirstResponseRule', uuid='745a03b5-89e0-4eee-a6bf-c9700b0d31f0'})
class TestAdvancedContinueAction(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s", pool="mypool"}
+ newServer{address="127.0.0.1:%d", pool="mypool"}
addAction("nocontinue.continue-action.advanced.tests.powerdns.com.", PoolAction("mypool"))
addAction("continue.continue-action.advanced.tests.powerdns.com.", ContinueAction(PoolAction("mypool")))
addAction(AllRule(), SetDisableValidationAction())
addAction("nxd.negativeandsoa.advanced.tests.powerdns.com.", NegativeAndSOAAction(true, "auth.", 42, "mname", "rname", 5, 4, 3, 2, 1))
addAction("nodata.negativeandsoa.advanced.tests.powerdns.com.", NegativeAndSOAAction(false, "another-auth.", 42, "mname", "rname", 1, 2, 3, 4, 5))
setPayloadSizeOnSelfGeneratedAnswers(%d)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
_config_params = ['_selfGeneratedPayloadSize', '_testServerPort']
addAction("nxd.negativeandsoa.advanced.tests.powerdns.com.", NegativeAndSOAAction(true, "auth.", 42, "mname", "rname", 5, 4, 3, 2, 1, { soaInAuthoritySection=true }))
addAction("nodata.negativeandsoa.advanced.tests.powerdns.com.", NegativeAndSOAAction(false, "another-auth.", 42, "mname", "rname", 1, 2, 3, 4, 5, { soaInAuthoritySection=true }))
setPayloadSizeOnSelfGeneratedAnswers(%d)
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
_config_params = ['_selfGeneratedPayloadSize', '_testServerPort']
addAction(AllRule(), SetTagAction('a-tag', 'a-value'))
addAction(LuaRule(luarulefunction), RCodeAction(DNSRCode.NOTIMP))
addAction(AllRule(), RCodeAction(DNSRCode.REFUSED))
- -- newServer{address="127.0.0.1:%s"}
+ -- newServer{address="127.0.0.1:%d"}
"""
def testAdvancedLuaRule(self):
_config_template = """
addAction(AllRule(), SetEDNSOptionAction(10, "deadbeefdeadc0de"))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testAdvancedSetEDNSOption(self):
return DNSAction.None, ""
end
addAction(AllRule(), LuaAction(accessContentLua))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testGetContentViaLua(self):
_snmpOID = '1.3.6.1.4.1.43315.3'
_queriesSent = 0
_config_template = """
- newServer{address="127.0.0.1:%s", name="servername"}
+ newServer{address="127.0.0.1:%d", name="servername"}
snmpAgent(true)
setVerboseHealthChecks(true)
"""
## state
self.assertEqual(str(results['1.3.6.1.4.1.43315.3.2.1.8.0']), "up")
## address
- self.assertEqual(str(results['1.3.6.1.4.1.43315.3.2.1.9.0']), ("127.0.0.1:%s" % (self._testServerPort)))
+ self.assertEqual(str(results['1.3.6.1.4.1.43315.3.2.1.9.0']), ("127.0.0.1:%d" % (self._testServerPort)))
## pools
self.assertEqual(str(results['1.3.6.1.4.1.43315.3.2.1.10.0']), "")
## queries
local httpsSVC = { newSVCRecordParameters(1, ".", { mandatory={"port"}, alpn={ "h2" }, noDefaultAlpn=true, port=8002, ipv4hint={ "192.0.2.2" }, ipv6hint={ "2001:db8::2" }}) }
addAction(AndRule{QTypeRule(65), SuffixMatchNodeRule("https.svcb.tests.powerdns.com.")}, SpoofSVCAction(httpsSVC))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testBasic(self):
addAction(AndRule{QTypeRule(65), SuffixMatchNodeRule("https.svcb.tests.powerdns.com.")}, LuaFFIAction(httpsSVC))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testBasic(self):
addSelfAnsweredResponseAction(AndRule({SuffixMatchNodeRule("udp.selfanswered.tests.powerdns.com."), NotRule(MaxQPSRule(1))}), DropResponseAction())
addAction(SuffixMatchNodeRule("tcp.selfanswered.tests.powerdns.com."), SpoofAction("192.0.2.1"))
addSelfAnsweredResponseAction(AndRule({SuffixMatchNodeRule("tcp.selfanswered.tests.powerdns.com."), NotRule(MaxQPSRule(1))}), DropResponseAction())
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testSelfAnsweredUDP(self):
addAction(AndRule{SuffixMatchNodeRule("multiraw.spoofing.tests.powerdns.com"), QTypeRule(DNSQType.A)}, SpoofRawAction({"\\192\\000\\002\\001", "\\192\\000\\002\\002"}))
-- rfc8482
addAction(AndRule{SuffixMatchNodeRule("raw-any.spoofing.tests.powerdns.com"), QTypeRule(DNSQType.ANY)}, SpoofRawAction("\\007rfc\\056\\052\\056\\050\\000", { typeForAny=DNSQType.HINFO }))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testSpoofActionA(self):
addAction("luaspoof1.spoofing.tests.powerdns.com.", LuaAction(spoof1rule))
addAction("luaspoof2.spoofing.tests.powerdns.com.", LuaAction(spoof2rule))
addAction("lua-raw.spoofing.tests.powerdns.com.", LuaAction(spoofrawrule))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testLuaSpoofA(self):
addAction("luaspoof1multi.spoofing.tests.powerdns.com.", LuaAction(spoof1multirule))
addAction("lua-raw-multi.spoofing.tests.powerdns.com.", LuaAction(spoofrawmultirule))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testLuaSpoofMultiA(self):
end
addAction("lua-raw-multi.ffi-spoofing.tests.powerdns.com.", LuaFFIAction(spoofrawmultirule))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
_verboseMode = True
end
end
addAction("luaspoofwithstats.spoofing.tests.powerdns.com.", LuaAction(spoof1rule))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
def testLuaSpoofBasedOnStatistics(self):
end
addAction("lua-raw-packet.ffi-spoofing.tests.powerdns.com.", LuaFFIAction(spoofpacketffi))
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
"""
_verboseMode = True
_webServerAPIKeyHashed = '$scrypt$ln=10,p=1,r=8$9v8JxDfzQVyTpBkTbkUqYg==$bDQzAOHeK1G9UvTPypNhrX48w974ZXbFPtRKS34+aso='
_config_params = ['_testServerPort', '_testServerRetries', '_webServerPort', '_webServerBasicAuthPasswordHashed', '_webServerAPIKeyHashed']
_config_template = """
- newServer{address="127.0.0.1:%s", useClientSubnet=true, tcpFastOpen=true, retries=%d }
- webserver("127.0.0.1:%s")
+ newServer{address="127.0.0.1:%d", useClientSubnet=true, tcpFastOpen=true, retries=%d }
+ webserver("127.0.0.1:%d")
setWebserverConfig({password="%s", apiKey="%s"})
"""
_maxTCPConnsPerClient = 100
_maxTCPConnDuration = 99
_config_template = """
- newServer{address="127.0.0.1:%s"}
- setTCPRecvTimeout(%s)
- setMaxTCPQueriesPerConnection(%s)
- setMaxTCPConnectionsPerClient(%s)
- setMaxTCPConnectionDuration(%s)
+ newServer{address="127.0.0.1:%d"}
+ setTCPRecvTimeout(%d)
+ setMaxTCPQueriesPerConnection(%d)
+ setMaxTCPConnectionsPerClient(%d)
+ setMaxTCPConnectionDuration(%d)
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
addAction("largernumberofconnections.tcpka.tests.powerdns.com.", SetSkipCacheAction())
_maxTCPConnsPerClient = 3
_maxTCPConnDuration = 99
_config_template = """
- newServer{address="127.0.0.1:%s"}
- setTCPRecvTimeout(%s)
- setMaxTCPQueriesPerConnection(%s)
- setMaxTCPConnectionsPerClient(%s)
- setMaxTCPConnectionDuration(%s)
+ newServer{address="127.0.0.1:%d"}
+ setTCPRecvTimeout(%d)
+ setMaxTCPQueriesPerConnection(%d)
+ setMaxTCPConnectionsPerClient(%d)
+ setMaxTCPConnectionDuration(%d)
-- create the pool named "nosuchpool"
getPool("nosuchpool")
addAction("nodownstream-drop.tcpka.tests.powerdns.com.", PoolAction("nosuchpool"))
class TestTCPOnly(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s", tcpOnly=true}
+ newServer{address="127.0.0.1:%d", tcpOnly=true}
"""
def testUDP(self):
_tlsServerPort = pickAvailablePort()
_tcpSendTimeout = 60
_config_template = """
- newServer{address="127.0.0.1:%s"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s")
+ newServer{address="127.0.0.1:%d"}
+ addTLSLocal("127.0.0.1:%d", "%s", "%s")
setTCPSendTimeout(%d)
"""
_config_params = ['_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey', '_tcpSendTimeout']
_tlsServerPort = pickAvailablePort()
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
- newServer{address="127.0.0.1:%s"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl" })
+ newServer{address="127.0.0.1:%d"}
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl" })
addAction(SNIRule("powerdns.com"), SpoofAction("1.2.3.4"))
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey']
_tlsServerPort = pickAvailablePort()
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
- newServer{address="127.0.0.1:%s"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="gnutls" })
+ newServer{address="127.0.0.1:%d"}
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="gnutls" })
addAction(SNIRule("powerdns.com"), SpoofAction("1.2.3.4"))
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey']
_caCert = 'ca.pem'
_tlsServerPort = pickAvailablePort()
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s")
+ addTLSLocal("127.0.0.1:%d", "%s", "%s")
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
getPool(""):setCache(pc)
_tcpIdleTimeout = 2
_maxTCPConnsPerTLSFrontend = 5
_config_template = """
- newServer{address="127.0.0.1:%s"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl", maxConcurrentTCPConnections=%d })
+ newServer{address="127.0.0.1:%d"}
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl", maxConcurrentTCPConnections=%d })
"""
_config_params = ['_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey', '_maxTCPConnsPerTLSFrontend']
_alternateListeningAddr = '127.0.0.1'
end
addAction("protocols.tls.tests.powerdns.com.", LuaAction(checkDOT))
- newServer{address="127.0.0.1:%s"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl" })
+ newServer{address="127.0.0.1:%d"}
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl" })
"""
_config_params = ['_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey']
_tlsServerPort = pickAvailablePort()
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
- newServer{address="127.0.0.1:%s"}
+ controlSocket("127.0.0.1:%d")
+ newServer{address="127.0.0.1:%d"}
cert=newTLSCertificate("%s", {password="%s"})
- addTLSLocal("127.0.0.1:%s", cert, "", { provider="openssl" })
+ addTLSLocal("127.0.0.1:%d", cert, "", { provider="openssl" })
addAction(SNIRule("powerdns.com"), SpoofAction("1.2.3.4"))
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_serverCert', '_pkcsPassphrase', '_tlsServerPort']
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
- newServer{address="127.0.0.1:%s"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl" })
+ newServer{address="127.0.0.1:%d"}
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl" })
lastKey = ""
lastKeyLen = 0
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey']
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
- newServer{address="127.0.0.1:%s"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="gnutls" })
+ newServer{address="127.0.0.1:%d"}
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="gnutls" })
lastKey = ""
lastKeyLen = 0
_dohWithH2OServerPort = pickAvailablePort()
_numberOfKeys = 0
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, { numberOfTicketsKeys=%d, numberOfStoredSessions=0, sessionTickets=false, library='nghttp2' })
addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, { numberOfTicketsKeys=%d, numberOfStoredSessions=0, sessionTickets=false, library='h2o' })
_numberOfKeys = 5
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
- newServer{address="127.0.0.1:%s"}
+ controlSocket("127.0.0.1:%d")
+ newServer{address="127.0.0.1:%d"}
addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, { numberOfTicketsKeys=%d, library='nghttp2' })
addDOHLocal("127.0.0.1:%d", "%s", "%s", { "/" }, { numberOfTicketsKeys=%d, library='h2o' })
_tlsServerPort = pickAvailablePort()
_numberOfKeys = 0
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { numberOfTicketsKeys=%d, numberOfStoredSessions=0, sessionTickets=false })
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { numberOfTicketsKeys=%d, numberOfStoredSessions=0, sessionTickets=false })
"""
_config_params = ['_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey', '_numberOfKeys']
_config_template = """
setKey("%s")
controlSocket("127.0.0.1:%s")
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
- addTLSLocal("127.0.0.1:%s", "%s", "%s", { provider="openssl", numberOfTicketsKeys=%d })
+ addTLSLocal("127.0.0.1:%d", "%s", "%s", { provider="openssl", numberOfTicketsKeys=%d })
"""
_config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort', '_tlsServerPort', '_serverCert', '_serverKey', '_numberOfKeys']
class TestTags(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function lol(dq)
return DNSAction.None, ""
class TestSetTagAction(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(AllRule(), SetTagAction("dns", "value1"))
addAction("tag-me-dns-2.tags.tests.powerdns.com.", SetTagAction("dns", "value2"))
class TestSetTag(DNSDistTest):
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function dqset(dq)
dq:setTag("dns", "value1")
_fromTeeProxyQueue = Queue()
_config_template = """
setKey("%s")
- controlSocket("127.0.0.1:%s")
+ controlSocket("127.0.0.1:%d")
newServer{address="127.0.0.1:%d"}
addAction(QTypeRule(DNSQType.A), TeeAction("127.0.0.1:%d", true))
addAction(QTypeRule(DNSQType.AAAA), TeeAction("127.0.0.1:%d", false))
_testServerPort = pickAvailablePort()
_verboseMode = True
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
function replaceTrailingData(dq)
local success = dq:setTrailingData("ABC")
class TestTrailingDataToDnsdist(DNSDistTest):
_verboseMode = True
_config_template = """
- newServer{address="127.0.0.1:%s"}
+ newServer{address="127.0.0.1:%d"}
addAction(AndRule({QNameRule("dropped.trailing.tests.powerdns.com."), TrailingDataRule()}), DropAction())