return ok;
}
-bool LUABackend::getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, DNSName& unhashed, std::string& before, std::string& after) {
+bool LUABackend::getBeforeAndAfterNamesAbsolute(uint32_t id, const DNSName& qname, DNSName& unhashed, DNSName& before, DNSName& after) {
if(f_lua_getbeforeandafternamesabsolute == 0)
return false;
lua_rawgeti(lua, LUA_REGISTRYINDEX, f_lua_updatednssecorderandauthabsolute);
lua_pushinteger(lua, id);
- lua_pushstring(lua, qname.c_str());
+ lua_pushstring(lua, qname.toString().c_str());
if(lua_pcall(lua, 2, 3, f_lua_exec_error) != 0) {
string e = backend_name + lua_tostring(lua, -1);
returnedwhat = lua_type(lua, -1);
ok = (returnedwhat == LUA_TSTRING) && ok;
- before = lua_tostring(lua, -1);
+ before = DNSName(lua_tostring(lua, -1));
lua_pop(lua, 1);
returnedwhat = lua_type(lua, -1);
ok = (returnedwhat == LUA_TSTRING) && ok;
- after = lua_tostring(lua, -1);
+ after = DNSName(lua_tostring(lua, -1));
lua_pop(lua, 1);
if(logging)
bool getTSIGKey(const DNSName& name, DNSName* algorithm, string* content) override ;
bool addDomainKey(const DNSName& name, const KeyData& key, int64_t& id) override ;
bool updateDNSSECOrderAndAuthAbsolute(uint32_t domain_id, const DNSName& qname, const std::string& ordername, bool auth);
- bool getBeforeAndAfterNamesAbsolute(uint32_t id, const string& qname, DNSName& unhashed, string& before, string& after) override;
+ bool getBeforeAndAfterNamesAbsolute(uint32_t id, const DNSName& qname, DNSName& unhashed, DNSName& before, DNSName& after) override;
bool updateDNSSECOrderNameAndAuth(uint32_t domain_id, const DNSName& zonename, const DNSName& qname, const DNSName& ordername, bool auth, const uint16_t qtype=QType::ANY) override;
bool updateDNSSECOrderAndAuth(uint32_t domain_id, const DNSName& zonename, const DNSName& qname, bool auth);
// OTHER
bool
OracleBackend::getBeforeAndAfterNamesAbsolute(uint32_t zoneId,
- const string& name, DNSName& unhashed, string& before, string& after)
+ const DNSName& name, DNSName& unhashed, DNSName& before, DNSName& after)
{
if(!d_dnssecQueries)
return -1;
bind_str_ind(stmt, ":prev", mResultPrevName, sizeof(mResultPrevName), &mResultPrevNameInd);
bind_str_ind(stmt, ":next", mResultNextName, sizeof(mResultNextName), &mResultNextNameInd);
bind_uint32(stmt, ":zoneid", &zoneId);
- string_to_cbuf(mQueryName, name, sizeof(mQueryName));
+ string_to_cbuf(mQueryName, name.labelReverse().toString(" ", false)), sizeof(mQueryName));
mResultNameInd = -1;
mResultPrevNameInd = -1;
mResultNextNameInd = -1;
check_indicator(mResultNextNameInd, false);
unhashed = DNSName(mResultName);
- before = mResultPrevName;
- after = mResultNextName;
+ before = DNSName(boost::replace_all_copy(mResultPrevName," ",".")).labelReverse();
+ after = DNSName(boost::replace_all_copy(mResultNextName," ",".")).labelReverse();
release_query(stmt, prevNextHashQueryKey);
return true;
const DNSName& name,
DNSName& before, DNSName& after);
bool getBeforeAndAfterNamesAbsolute(uint32_t zoneId,
- const string& name,
+ const DNSName& name,
DNSName& unhashed,
- string& before,
- string& after);
+ DNSName& before,
+ DNSName& after);
bool get(DNSResourceRecord &rr);
vector<string> getDomainMasters(const DNSName& domain, int zoneId);
bool isMaster(const DNSName& domain, const string &master);
return true;
}
-bool RemoteBackend::getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, DNSName& unhashed, std::string& before, std::string& after) {
+bool RemoteBackend::getBeforeAndAfterNamesAbsolute(uint32_t id, const DNSName& qname, DNSName& unhashed, DNSName& before, DNSName& after) {
// no point doing dnssec if it's not supported
if (d_dnssec == false) return false;
{ "method", "getBeforeAndAfterNamesAbsolute" },
{ "parameters", Json::object {
{ "id", Json(static_cast<double>(id)) },
- { "qname", qname }
+ { "qname", qname.toString() }
}}
};
Json answer;
return false;
unhashed = DNSName(stringFromJson(answer["result"], "unhashed"));
- before = "";
- after = "";
+ before.clear();
+ after.clear();
if (answer["result"]["before"] != Json())
- before = stringFromJson(answer["result"], "before");
+ before = DNSName(stringFromJson(answer["result"], "before"));
if (answer["result"]["after"] != Json())
- after = stringFromJson(answer["result"], "after");
+ after = DNSName(stringFromJson(answer["result"], "after"));
return true;
}
virtual bool getDomainMetadata(const DNSName& name, const std::string& kind, std::vector<std::string>& meta);
virtual bool getDomainKeys(const DNSName& name, unsigned int kind, std::vector<DNSBackend::KeyData>& keys);
virtual bool getTSIGKey(const DNSName& name, DNSName* algorithm, std::string* content);
- virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const string& qname, DNSName& unhashed, string& before, string& after);
+ virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const DNSName& qname, DNSName& unhashed, DNSName& before, DNSName& after);
virtual bool setDomainMetadata(const DNSName& name, const string& kind, const std::vector<std::basic_string<char> >& meta);
virtual bool removeDomainKey(const DNSName& name, unsigned int id);
virtual bool addDomainKey(const DNSName& name, const KeyData& key, int64_t& id);
}
BOOST_AUTO_TEST_CASE(test_method_getBeforeAndAfterNamesAbsolute) {
- DNSName unhashed;
- std::string before,after;
+ DNSName unhashed, before, after;
BOOST_TEST_MESSAGE("Testing getBeforeAndAfterNamesAbsolute method");
- be->getBeforeAndAfterNamesAbsolute(-1, "middle.unit.test.", unhashed, before, after);
+ be->getBeforeAndAfterNamesAbsolute(-1, DNSName("middle.unit.test."), unhashed, before, after);
BOOST_CHECK_EQUAL(unhashed.toString(), "middle.");
- BOOST_CHECK_EQUAL(before, "begin.");
- BOOST_CHECK_EQUAL(after, "stop.");
+ BOOST_CHECK_EQUAL(before.toString(), "begin.");
+ BOOST_CHECK_EQUAL(after.toString(), "stop.");
}
BOOST_AUTO_TEST_CASE(test_method_setTSIGKey) {