|
@@ -98,8 +98,7 @@ protected:
|
|
|
// The empty string is expected value of the parameter of
|
|
|
// requestSocket, not the app_name (there's no fallback, it checks
|
|
|
// the empty string is passed).
|
|
|
- sock_requestor_(dnss_, address_store_, 53210, ""),
|
|
|
- datasrc_configurator_(&server)
|
|
|
+ sock_requestor_(dnss_, address_store_, 53210, "")
|
|
|
{
|
|
|
server.setDNSService(dnss_);
|
|
|
server.setXfrinSession(¬ify_session);
|
|
@@ -724,7 +723,7 @@ TEST_F(AuthSrvTest, notifyWithSessionMessageError) {
|
|
|
}
|
|
|
|
|
|
void
|
|
|
-updateDatabase(DataSourceConfigurator& datasrc_configurator,
|
|
|
+updateDatabase(AuthSrv& server, DataSourceConfigurator& datasrc_configurator,
|
|
|
const char* params)
|
|
|
{
|
|
|
const ConstElementPtr config(Element::fromJSON("{"
|
|
@@ -732,11 +731,11 @@ updateDatabase(DataSourceConfigurator& datasrc_configurator,
|
|
|
" \"type\": \"sqlite3\","
|
|
|
" \"params\": " + string(params) +
|
|
|
"}]}"));
|
|
|
- datasrc_configurator.reconfigure(config);
|
|
|
+ datasrc_configurator.reconfigure(server, config);
|
|
|
}
|
|
|
|
|
|
void
|
|
|
-updateInMemory(DataSourceConfigurator& datasrc_configurator,
|
|
|
+updateInMemory(AuthSrv& server, DataSourceConfigurator& datasrc_configurator,
|
|
|
const char* origin, const char* filename)
|
|
|
{
|
|
|
const ConstElementPtr config(Element::fromJSON("{"
|
|
@@ -751,17 +750,17 @@ updateInMemory(DataSourceConfigurator& datasrc_configurator,
|
|
|
" \"type\": \"static\","
|
|
|
" \"params\": \"" + string(STATIC_DSRC_FILE) + "\""
|
|
|
"}]}"));
|
|
|
- datasrc_configurator.reconfigure(config);
|
|
|
+ datasrc_configurator.reconfigure(server, config);
|
|
|
}
|
|
|
|
|
|
void
|
|
|
-updateBuiltin(DataSourceConfigurator& datasrc_configurator) {
|
|
|
+updateBuiltin(AuthSrv& server, DataSourceConfigurator& datasrc_configurator) {
|
|
|
const ConstElementPtr config(Element::fromJSON("{"
|
|
|
"\"CH\": [{"
|
|
|
" \"type\": \"static\","
|
|
|
" \"params\": \"" + string(STATIC_DSRC_FILE) + "\""
|
|
|
"}]}"));
|
|
|
- datasrc_configurator.reconfigure(config);
|
|
|
+ datasrc_configurator.reconfigure(server, config);
|
|
|
}
|
|
|
|
|
|
// Try giving the server a TSIG signed request and see it can anwer signed as
|
|
@@ -772,7 +771,7 @@ TEST_F(AuthSrvTest, DISABLED_TSIGSigned) { // Needs builtin
|
|
|
TEST_F(AuthSrvTest, TSIGSigned) {
|
|
|
#endif
|
|
|
// Prepare key, the client message, etc
|
|
|
- updateBuiltin(datasrc_configurator_);
|
|
|
+ updateBuiltin(server, datasrc_configurator_);
|
|
|
const TSIGKey key("key:c2VjcmV0Cg==:hmac-sha1");
|
|
|
TSIGContext context(key);
|
|
|
UnitTestUtil::createRequestMessage(request_message, opcode, default_qid,
|
|
@@ -820,7 +819,7 @@ TEST_F(AuthSrvTest, DISABLED_builtInQueryViaDNSServer) {
|
|
|
#else
|
|
|
TEST_F(AuthSrvTest, builtInQueryViaDNSServer) {
|
|
|
#endif
|
|
|
- updateBuiltin(datasrc_configurator_);
|
|
|
+ updateBuiltin(server, datasrc_configurator_);
|
|
|
UnitTestUtil::createRequestMessage(request_message, Opcode::QUERY(),
|
|
|
default_qid, Name("VERSION.BIND."),
|
|
|
RRClass::CH(), RRType::TXT());
|
|
@@ -852,7 +851,7 @@ TEST_F(AuthSrvTest, DISABLED_builtInQuery) {
|
|
|
#else
|
|
|
TEST_F(AuthSrvTest, builtInQuery) {
|
|
|
#endif
|
|
|
- updateBuiltin(datasrc_configurator_);
|
|
|
+ updateBuiltin(server, datasrc_configurator_);
|
|
|
UnitTestUtil::createRequestMessage(request_message, Opcode::QUERY(),
|
|
|
default_qid, Name("VERSION.BIND."),
|
|
|
RRClass::CH(), RRType::TXT());
|
|
@@ -873,7 +872,7 @@ TEST_F(AuthSrvTest, DISABLED_iqueryViaDNSServer) { // Needs builtin
|
|
|
#else
|
|
|
TEST_F(AuthSrvTest, iqueryViaDNSServer) { // Needs builtin
|
|
|
#endif
|
|
|
- updateBuiltin(datasrc_configurator_);
|
|
|
+ updateBuiltin(server, datasrc_configurator_);
|
|
|
createDataFromFile("iquery_fromWire.wire");
|
|
|
(*server.getDNSLookupProvider())(*io_message, parse_message,
|
|
|
response_message,
|
|
@@ -895,7 +894,7 @@ TEST_F(AuthSrvTest, DISABLED_updateConfig) {
|
|
|
#else
|
|
|
TEST_F(AuthSrvTest, updateConfig) {
|
|
|
#endif
|
|
|
- updateDatabase(datasrc_configurator_, CONFIG_TESTDB);
|
|
|
+ updateDatabase(server, datasrc_configurator_, CONFIG_TESTDB);
|
|
|
|
|
|
// query for existent data in the installed data source. The resulting
|
|
|
// response should have the AA flag on, and have an RR in each answer
|
|
@@ -913,7 +912,7 @@ TEST_F(AuthSrvTest, DISABLED_datasourceFail) {
|
|
|
#else
|
|
|
TEST_F(AuthSrvTest, datasourceFail) {
|
|
|
#endif
|
|
|
- updateDatabase(datasrc_configurator_, CONFIG_TESTDB);
|
|
|
+ updateDatabase(server, datasrc_configurator_, CONFIG_TESTDB);
|
|
|
|
|
|
// This query will hit a corrupted entry of the data source (the zoneload
|
|
|
// tool and the data source itself naively accept it). This will result
|
|
@@ -933,10 +932,11 @@ TEST_F(AuthSrvTest, DISABLED_updateConfigFail) {
|
|
|
TEST_F(AuthSrvTest, updateConfigFail) {
|
|
|
#endif
|
|
|
// First, load a valid data source.
|
|
|
- updateDatabase(datasrc_configurator_, CONFIG_TESTDB);
|
|
|
+ updateDatabase(server, datasrc_configurator_, CONFIG_TESTDB);
|
|
|
|
|
|
// Next, try to update it with a non-existent one. This should fail.
|
|
|
- EXPECT_THROW(updateDatabase(datasrc_configurator_, BADCONFIG_TESTDB),
|
|
|
+ EXPECT_THROW(updateDatabase(server, datasrc_configurator_,
|
|
|
+ BADCONFIG_TESTDB),
|
|
|
isc::datasrc::DataSourceError);
|
|
|
|
|
|
// The original data source should still exist.
|
|
@@ -959,7 +959,7 @@ TEST_F(AuthSrvTest, updateWithInMemoryClient) {
|
|
|
" \"params\": {},"
|
|
|
" \"cache-enable\": true"
|
|
|
"}]}"));
|
|
|
- datasrc_configurator_.reconfigure(config);
|
|
|
+ datasrc_configurator_.reconfigure(server, config);
|
|
|
// after successful configuration, we should have one (with empty zoneset).
|
|
|
|
|
|
// The memory data source is empty, should return REFUSED rcode.
|
|
@@ -980,7 +980,8 @@ TEST_F(AuthSrvTest, queryWithInMemoryClientNoDNSSEC) {
|
|
|
// query handler class, and confirm it returns no error and a non empty
|
|
|
// answer section. Detailed examination on the response content
|
|
|
// for various types of queries are tested in the query tests.
|
|
|
- updateInMemory(datasrc_configurator_, "example.", CONFIG_INMEMORY_EXAMPLE);
|
|
|
+ updateInMemory(server, datasrc_configurator_, "example.",
|
|
|
+ CONFIG_INMEMORY_EXAMPLE);
|
|
|
|
|
|
createDataFromFile("nsec3query_nodnssec_fromWire.wire");
|
|
|
server.processMessage(*io_message, *parse_message, *response_obuffer,
|
|
@@ -999,7 +1000,8 @@ TEST_F(AuthSrvTest, queryWithInMemoryClientDNSSEC) {
|
|
|
// Similar to the previous test, but the query has the DO bit on.
|
|
|
// The response should contain RRSIGs, and should have more RRs than
|
|
|
// the previous case.
|
|
|
- updateInMemory(datasrc_configurator_, "example.", CONFIG_INMEMORY_EXAMPLE);
|
|
|
+ updateInMemory(server, datasrc_configurator_, "example.",
|
|
|
+ CONFIG_INMEMORY_EXAMPLE);
|
|
|
|
|
|
createDataFromFile("nsec3query_fromWire.wire");
|
|
|
server.processMessage(*io_message, *parse_message, *response_obuffer,
|
|
@@ -1019,7 +1021,8 @@ TEST_F(AuthSrvTest,
|
|
|
)
|
|
|
{
|
|
|
// Set up the in-memory
|
|
|
- updateInMemory(datasrc_configurator_, "example.", CONFIG_INMEMORY_EXAMPLE);
|
|
|
+ updateInMemory(server, datasrc_configurator_, "example.",
|
|
|
+ CONFIG_INMEMORY_EXAMPLE);
|
|
|
|
|
|
// This shouldn't affect the result of class CH query
|
|
|
UnitTestUtil::createRequestMessage(request_message, Opcode::QUERY(),
|
|
@@ -1431,7 +1434,8 @@ TEST_F(AuthSrvTest,
|
|
|
)
|
|
|
{
|
|
|
// Set real inmem client to proxy
|
|
|
- updateInMemory(datasrc_configurator_, "example.", CONFIG_INMEMORY_EXAMPLE);
|
|
|
+ updateInMemory(server, datasrc_configurator_, "example.",
|
|
|
+ CONFIG_INMEMORY_EXAMPLE);
|
|
|
{
|
|
|
isc::util::thread::Mutex::Locker locker(server.getClientListMutex());
|
|
|
boost::shared_ptr<isc::datasrc::ConfigurableClientList>
|
|
@@ -1456,17 +1460,18 @@ TEST_F(AuthSrvTest,
|
|
|
// If non null rrset is given, it will be passed to the proxy so it can
|
|
|
// return some faked response.
|
|
|
void
|
|
|
-setupThrow(AuthSrv* server, DataSourceConfigurator& datasrc_configurator,
|
|
|
+setupThrow(AuthSrv& server, DataSourceConfigurator& datasrc_configurator,
|
|
|
ThrowWhen throw_when, bool isc_exception,
|
|
|
ConstRRsetPtr rrset = ConstRRsetPtr())
|
|
|
{
|
|
|
- updateInMemory(datasrc_configurator, "example.", CONFIG_INMEMORY_EXAMPLE);
|
|
|
+ updateInMemory(server, datasrc_configurator, "example.",
|
|
|
+ CONFIG_INMEMORY_EXAMPLE);
|
|
|
|
|
|
- isc::util::thread::Mutex::Locker locker(server->getClientListMutex());
|
|
|
+ isc::util::thread::Mutex::Locker locker(server.getClientListMutex());
|
|
|
boost::shared_ptr<isc::datasrc::ConfigurableClientList>
|
|
|
- list(new FakeList(server->getClientList(RRClass::IN()), throw_when,
|
|
|
+ list(new FakeList(server.getClientList(RRClass::IN()), throw_when,
|
|
|
isc_exception, rrset));
|
|
|
- server->setClientList(RRClass::IN(), list);
|
|
|
+ server.setClientList(RRClass::IN(), list);
|
|
|
}
|
|
|
|
|
|
TEST_F(AuthSrvTest,
|
|
@@ -1489,11 +1494,11 @@ TEST_F(AuthSrvTest,
|
|
|
RRClass::IN(), RRType::TXT());
|
|
|
for (ThrowWhen* when(throws); *when != THROW_NEVER; ++when) {
|
|
|
createRequestPacket(request_message, IPPROTO_UDP);
|
|
|
- setupThrow(&server, datasrc_configurator_, *when, true);
|
|
|
+ setupThrow(server, datasrc_configurator_, *when, true);
|
|
|
processAndCheckSERVFAIL();
|
|
|
// To be sure, check same for non-isc-exceptions
|
|
|
createRequestPacket(request_message, IPPROTO_UDP);
|
|
|
- setupThrow(&server, datasrc_configurator_, *when, false);
|
|
|
+ setupThrow(server, datasrc_configurator_, *when, false);
|
|
|
processAndCheckSERVFAIL();
|
|
|
}
|
|
|
}
|
|
@@ -1509,7 +1514,7 @@ TEST_F(AuthSrvTest,
|
|
|
)
|
|
|
{
|
|
|
createDataFromFile("nsec3query_nodnssec_fromWire.wire");
|
|
|
- setupThrow(&server, datasrc_configurator_, THROW_AT_GET_CLASS, true);
|
|
|
+ setupThrow(server, datasrc_configurator_, THROW_AT_GET_CLASS, true);
|
|
|
|
|
|
// getClass is not called so it should just answer
|
|
|
server.processMessage(*io_message, *parse_message, *response_obuffer,
|
|
@@ -1533,7 +1538,7 @@ TEST_F(AuthSrvTest,
|
|
|
ConstRRsetPtr empty_rrset(new RRset(Name("foo.example"),
|
|
|
RRClass::IN(), RRType::TXT(),
|
|
|
RRTTL(0)));
|
|
|
- setupThrow(&server, datasrc_configurator_, THROW_NEVER, true, empty_rrset);
|
|
|
+ setupThrow(server, datasrc_configurator_, THROW_NEVER, true, empty_rrset);
|
|
|
|
|
|
// Repeat the query processing two times. Due to the faked RRset,
|
|
|
// toWire() should throw, and it should result in SERVFAIL.
|