Changeset 1932
- Timestamp:
- 01/30/11 13:49:13 (2 years ago)
- Location:
- trunk/pdns/pdns
- Files:
-
- 9 modified
-
backends/bind/bindbackend2.cc (modified) (1 diff)
-
dbdnsseckeeper.cc (modified) (1 diff)
-
dnspacket.cc (modified) (3 diffs)
-
dnssecinfra.hh (modified) (2 diffs)
-
dnsseckeeper.hh (modified) (1 diff)
-
dnssecsigner.cc (modified) (4 diffs)
-
packethandler.cc (modified) (3 diffs)
-
tcpreceiver.cc (modified) (4 diffs)
-
ueberbackend.hh (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pdns/pdns/backends/bind/bindbackend2.cc
r1906 r1932 849 849 NSEC3PARAMRecordContent ns3pr; 850 850 string auth=state->id_zone_map[id].d_name; 851 852 851 853 852 if(!dk.getNSEC3PARAM(auth, &ns3pr)) { 854 853 cerr<<"in bind2backend::getBeforeAndAfterAbsolute: no nsec3 for "<<auth<<endl; -
trunk/pdns/pdns/dbdnsseckeeper.cc
r1912 r1932 323 323 } 324 324 325 bool DNSSECKeeper::getPreRRSIGs( const std::string& signer, const std::string& qname, const QType& qtype,325 bool DNSSECKeeper::getPreRRSIGs(DNSBackend& db, const std::string& signer, const std::string& qname, const QType& qtype, 326 326 DNSPacketWriter::Place signPlace, vector<DNSResourceRecord>& rrsigs) 327 327 { 328 d_db.lookup(QType(QType::RRSIG), qname); 328 // cerr<<"Doing DB lookup for precomputed RRSIGs for '"<<qname<<"'"<<endl; 329 db.lookup(QType(QType::RRSIG), qname); 329 330 DNSResourceRecord rr; 330 while(d _db.get(rr)) {331 cerr<<"Considering for '"<<qtype.getName()<<"' RRSIG '"<<rr.content<<"'\n";331 while(db.get(rr)) { 332 // cerr<<"Considering for '"<<qtype.getName()<<"' RRSIG '"<<rr.content<<"'\n"; 332 333 if(boost::starts_with(rr.content, qtype.getName()+" ")) { 333 cerr<<"Got it"<<endl;334 // cerr<<"Got it"<<endl; 334 335 rr.d_place = (DNSResourceRecord::Place)signPlace; 335 336 rrsigs.push_back(rr); 336 337 } 337 else cerr<<"Skipping!"<<endl;338 else ; // cerr<<"Skipping!"<<endl; 338 339 } 339 340 return true; -
trunk/pdns/pdns/dnspacket.cc
r1903 r1932 231 231 return; 232 232 } 233 234 // do embedded-additional processing decapsulation 233 235 234 DNSResourceRecord rr; 236 235 vector<DNSResourceRecord>::iterator pos; … … 240 239 241 240 stable_sort(d_rrs.begin(),d_rrs.end(), rrcomp); 242 243 241 static bool mustShuffle =::arg().mustDo("no-shuffle"); 244 242 … … 290 288 } 291 289 goto noCommit; 292 293 break;294 290 } 295 291 } -
trunk/pdns/pdns/dnssecinfra.hh
r1915 r1932 101 101 void fillOutRRSIG(DNSSECPrivateKey& dpk, const std::string& signQName, RRSIGRecordContent& rrc, vector<shared_ptr<DNSRecordContent> >& toSign); 102 102 uint32_t getCurrentInception(); 103 void addSignature(DNSSECKeeper& dk, const std::string signQName, const std::string& wildcardname, uint16_t signQType, uint32_t signTTL, DNSPacketWriter::Place signPlace,103 void addSignature(DNSSECKeeper& dk, DNSBackend& db, const std::string signQName, const std::string& wildcardname, uint16_t signQType, uint32_t signTTL, DNSPacketWriter::Place signPlace, 104 104 vector<shared_ptr<DNSRecordContent> >& toSign, vector<DNSResourceRecord>& outsigned); 105 105 int getRRSIGsForRRSET(DNSSECKeeper& dk, const std::string& signer, const std::string signQName, uint16_t signQType, uint32_t signTTL, … … 109 109 void decodeDERIntegerSequence(const std::string& input, vector<string>& output); 110 110 class DNSPacket; 111 void addRRSigs(DNSSECKeeper& dk, const std::string& signer, DNSPacket& p);111 void addRRSigs(DNSSECKeeper& dk, DNSBackend& db, const std::string& signer, DNSPacket& p); 112 112 113 113 -
trunk/pdns/pdns/dnsseckeeper.hh
r1904 r1932 48 48 void unsetNSEC3PARAM(const std::string& zname); 49 49 void clearCaches(const std::string& name); 50 bool getPreRRSIGs( const std::string& signer, const std::string& qname, const QType& qtype, DNSPacketWriter::Place, vector<DNSResourceRecord>& rrsigs);50 bool getPreRRSIGs(DNSBackend& db, const std::string& signer, const std::string& qname, const QType& qtype, DNSPacketWriter::Place, vector<DNSResourceRecord>& rrsigs); 51 51 bool isPresigned(const std::string& zname); 52 52 void setPresigned(const std::string& zname); -
trunk/pdns/pdns/dnssecsigner.cc
r1905 r1932 74 74 75 75 // this is the entrypoint from DNSPacket 76 void addSignature(DNSSECKeeper& dk, const std::string& signer, const std::string signQName, const std::string& wildcardname, uint16_t signQType,76 void addSignature(DNSSECKeeper& dk, DNSBackend& db, const std::string& signer, const std::string signQName, const std::string& wildcardname, uint16_t signQType, 77 77 uint32_t signTTL, DNSPacketWriter::Place signPlace, 78 78 vector<shared_ptr<DNSRecordContent> >& toSign, vector<DNSResourceRecord>& outsigned) 79 79 { 80 // cerr<<"Asked to sign '"<<signQName<<"'|"<<DNSRecordContent::NumberToType(signQType)<<", "<<toSign.size()<<" records\n";80 //cerr<<"Asked to sign '"<<signQName<<"'|"<<DNSRecordContent::NumberToType(signQType)<<", "<<toSign.size()<<" records\n"; 81 81 if(toSign.empty()) 82 82 return; 83 83 vector<RRSIGRecordContent> rrcs; 84 84 if(dk.isPresigned(signer)) { 85 dk.getPreRRSIGs(signer, signQName, QType(signQType), signPlace, outsigned); // does it all 85 //cerr<<"Doing presignatures"<<endl; 86 dk.getPreRRSIGs(db, signer, signQName, QType(signQType), signPlace, outsigned); // does it all 86 87 } 87 88 else { … … 140 141 } 141 142 142 void addRRSigs(DNSSECKeeper& dk, const std::string& signer, DNSPacket& p)143 void addRRSigs(DNSSECKeeper& dk, DNSBackend& db, const std::string& signer, DNSPacket& p) 143 144 { 144 145 vector<DNSResourceRecord>& rrs=p.getRRS(); … … 158 159 signedRecords.push_back(*pos); 159 160 if(pos != rrs.begin() && (signQType != pos->qtype.getCode() || signQName != pos->qname)) { 160 addSignature(dk, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords);161 addSignature(dk, db, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords); 161 162 } 162 163 signQName= pos->qname; … … 180 181 } 181 182 } 182 addSignature(dk, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords); 183 183 addSignature(dk, db, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords); 184 184 rrs.swap(signedRecords); 185 185 } -
trunk/pdns/pdns/packethandler.cc
r1930 r1932 39 39 #include "dnsproxy.hh" 40 40 41 #if 141 #if 0 42 42 #undef DLOG 43 43 #define DLOG(x) x … … 474 474 rr.d_place = (mode == 2 ) ? DNSResourceRecord::ANSWER: DNSResourceRecord::AUTHORITY; 475 475 rr.auth = true; 476 476 477 r->addRecord(rr); 477 478 } … … 1356 1357 1357 1358 if(p->d_dnssecOk) 1358 addRRSigs(d_dk, sd.qname, *r);1359 addRRSigs(d_dk, B, sd.qname, *r); 1359 1360 r->wrapup(); // needed for inserting in cache 1360 1361 PC.insert(p, r); // in the packet cache -
trunk/pdns/pdns/tcpreceiver.cc
r1893 r1932 515 515 outpacket->d_dnssecOk=true; // WRONG 516 516 string keyname; 517 UeberBackend signatureDB; 517 518 while(B->get(rr)) { 518 519 if(rr.auth || rr.qtype.getCode() == QType::NS || rr.qtype.getCode() == QType::DS) { … … 533 534 if(!((++count)%chunk)) { 534 535 count=0; 535 addRRSigs(dk, s d.qname, *outpacket);536 addRRSigs(dk, signatureDB, sd.qname, *outpacket); 536 537 sendPacket(outpacket, outsock); 537 538 … … 595 596 596 597 if(count) { 597 addRRSigs(dk, s d.qname, *outpacket);598 addRRSigs(dk, signatureDB, sd.qname, *outpacket); 598 599 sendPacket(outpacket, outsock); 599 600 } … … 603 604 outpacket=shared_ptr<DNSPacket>(q->replyPacket()); 604 605 605 addRRSigs(dk, s d.qname, *outpacket); // don't sign the SOA!606 addRRSigs(dk, signatureDB, sd.qname, *outpacket); // don't sign the SOA! 606 607 outpacket->addRecord(soa); 607 608 sendPacket(outpacket, outsock); -
trunk/pdns/pdns/ueberbackend.hh
r1796 r1932 1 1 /* 2 2 PowerDNS Versatile Database Driven Nameserver 3 Copyright (C) 2002 PowerDNS.COM BV3 Copyright (C) 2002 - 2011 PowerDNS.COM BV 4 4 5 5 This program is free software; you can redistribute it and/or modify