From: Aki Tuomi Date: Sun, 26 Jun 2016 17:28:02 +0000 (+0300) Subject: DNSPacket API change X-Git-Tag: auth-4.0.1~36^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F4044%2Fhead;p=thirdparty%2Fpdns.git DNSPacket API change --- diff --git a/modules/luabackend/lua_functions.cc b/modules/luabackend/lua_functions.cc index bb0b19a520..daea36937c 100644 --- a/modules/luabackend/lua_functions.cc +++ b/modules/luabackend/lua_functions.cc @@ -124,9 +124,9 @@ int l_dnspacket (lua_State *lua) { return 1; } - lua_pushstring(lua, lb->dnspacket->getRemote().c_str()); + lua_pushstring(lua, lb->dnspacket->getRemote().toString().c_str()); lua_pushinteger(lua, lb->dnspacket->getRemotePort()); - lua_pushstring(lua, lb->dnspacket->getLocal().c_str()); + lua_pushstring(lua, lb->dnspacket->getLocal().toString().c_str()); lua_pushstring(lua, lb->dnspacket->getRealRemote().toString().c_str()); return 4; diff --git a/modules/pipebackend/pipebackend.cc b/modules/pipebackend/pipebackend.cc index fbbf5bccd6..1154bba77a 100644 --- a/modules/pipebackend/pipebackend.cc +++ b/modules/pipebackend/pipebackend.cc @@ -155,9 +155,9 @@ void PipeBackend::lookup(const QType& qtype,const DNSName& qname, DNSPacket *pkt string remoteIP="0.0.0.0"; Netmask realRemote("0.0.0.0/0"); if (pkt_p) { - localIP=pkt_p->getLocal(); + localIP=pkt_p->getLocal().toString(); realRemote = pkt_p->getRealRemote(); - remoteIP = pkt_p->getRemote(); + remoteIP = pkt_p->getRemote().toString(); } // abi-version = 1 // type qname qclass qtype id remote-ip-address diff --git a/modules/remotebackend/remotebackend.cc b/modules/remotebackend/remotebackend.cc index 5261120db1..95c40df79a 100644 --- a/modules/remotebackend/remotebackend.cc +++ b/modules/remotebackend/remotebackend.cc @@ -157,9 +157,9 @@ void RemoteBackend::lookup(const QType &qtype, const DNSName& qdomain, DNSPacket string realRemote="0.0.0.0/0"; if (pkt_p) { - localIP=pkt_p->getLocal(); + localIP=pkt_p->getLocal().toString(); realRemote = pkt_p->getRealRemote().toString(); - remoteIP = pkt_p->getRemote(); + remoteIP = pkt_p->getRemote().toString(); } Json query = Json::object{ diff --git a/pdns/common_startup.cc b/pdns/common_startup.cc index c783d9a747..210dbf8502 100644 --- a/pdns/common_startup.cc +++ b/pdns/common_startup.cc @@ -389,9 +389,9 @@ void *qthread(void *number) if(logDNSQueries) { string remote; if(P->hasEDNSSubnet()) - remote = P->getRemote() + "<-" + P->getRealRemote().toString(); + remote = P->getRemote().toString() + "<-" + P->getRealRemote().toString(); else - remote = P->getRemote(); + remote = P->getRemote().toString(); L << Logger::Notice<<"Remote "<< remote <<" wants '" << P->qdomain<<"|"<qtype.getName() << "', do = " <d_dnssecOk <<", bufsize = "<< P->getMaxReplyLen()<<": "; } diff --git a/pdns/logger.cc b/pdns/logger.cc index ae4585f10c..9c10eb5bac 100644 --- a/pdns/logger.cc +++ b/pdns/logger.cc @@ -235,3 +235,10 @@ Logger& Logger::operator<<(const DNSName &d) return *this; } + +Logger& Logger::operator<<(const ComboAddress &ca) +{ + *this<getRemote().c_str()); + lua_pushstring(L, p->getRemote().toString().c_str()); return 1; } static int ldp_getRemoteRaw(lua_State *L) { DNSPacket *p=ldp_checkDNSPacket(L); - const ComboAddress& ca=p->d_remote; + const ComboAddress& ca=p->getRemote(); if(ca.sin4.sin_family == AF_INET) { lua_pushlstring(L, (const char*)&ca.sin4.sin_addr.s_addr, 4); } diff --git a/pdns/packethandler.cc b/pdns/packethandler.cc index fc0bd4ef43..6dedcd3819 100644 --- a/pdns/packethandler.cc +++ b/pdns/packethandler.cc @@ -763,8 +763,8 @@ int PacketHandler::trySuperMasterSynchronous(DNSPacket *p, const DNSName& tsigke try { Resolver resolver; uint32_t theirserial; - resolver.getSoaSerial(p->getRemote(),p->qdomain, &theirserial); - resolver.resolve(p->getRemote(), p->qdomain, QType::NS, &nsset); + resolver.getSoaSerial(p->getRemote().toString(),p->qdomain, &theirserial); + resolver.resolve(p->getRemote().toString(), p->qdomain, QType::NS, &nsset); } catch(ResolverException &re) { L<qdomain<<" at: "<< p->getRemote() <<": "<getRemote(), p->qdomain, nsset, &nameserver, &account, &db)) { + if(!B.superMasterBackend(p->getRemote().toString(), p->qdomain, nsset, &nameserver, &account, &db)) { L<qdomain<<" for potential supermaster "<getRemote()<<". Remote nameservers: "<createSlaveDomain(p->getRemote(), p->qdomain, nameserver, account); + db->createSlaveDomain(p->getRemote().toString(), p->qdomain, nameserver, account); if (tsigkeyname.empty() == false) { vector meta; meta.push_back(tsigkeyname.toStringNoDot()); @@ -863,7 +863,7 @@ int PacketHandler::processNotify(DNSPacket *p) } } - if(::arg().contains("trusted-notification-proxy", p->getRemote())) { + if(::arg().contains("trusted-notification-proxy", p->getRemote().toString())) { L<qdomain<<" from trusted-notification-proxy "<< p->getRemote()<qdomain<<" does not have any masters defined"<qdomain<<" from "<getRemote()<<" but we are master, rejecting"<isMaster(p->qdomain, p->getRemote())) { + else if(!db->isMaster(p->qdomain, p->getRemote().toString())) { L<qdomain<<" from "<getRemote()<<" which is not a master"<d.id) + ") from " + p->getRemote() + " for " + p->qdomain.toLogString() + ": "; + string msgPrefix="UPDATE (" + itoa(p->d.id) + ") from " + p->getRemote().toString() + " for " + p->qdomain.toLogString() + ": "; L<hasEDNSSubnet()) - remote = packet->getRemote() + "<-" + packet->getRealRemote().toString(); + remote = packet->getRemote().toString() + "<-" + packet->getRealRemote().toString(); else - remote = packet->getRemote(); + remote = packet->getRemote().toString(); L << Logger::Notice<<"TCP Remote "<< remote <<" wants '" << packet->qdomain<<"|"<qtype.getName() << "', do = " <d_dnssecOk <<", bufsize = "<< packet->getMaxReplyLen()<<": "; } @@ -470,7 +470,7 @@ bool TCPNameserver::canDoAXFR(shared_ptr q) vector nsips=fns.lookup(j, B); for(vector::const_iterator k=nsips.begin();k!=nsips.end();++k) { // cerr<<"got "<<*k<<" from AUTO-NS"<getRemote()) + if(*k == q->getRemote().toString()) { // cerr<<"got AUTO-NS hit"<qdomain<<"' allowed: client IP "<getRemote()<<" is in NSset"< q) extern CommunicatorClass Communicator; - if(Communicator.justNotified(q->qdomain, q->getRemote())) { // we just notified this ip + if(Communicator.justNotified(q->qdomain, q->getRemote().toString())) { // we just notified this ip L<qdomain<<"' from recently notified slave "<getRemote()<