]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
always store non DNSSEC metadata in oracle backend
authorKees Monshouwer <mind04@monshouwer.org>
Sat, 8 Mar 2014 22:46:31 +0000 (23:46 +0100)
committermind04 <mind04@monshouwer.org>
Mon, 10 Mar 2014 10:38:22 +0000 (11:38 +0100)
modules/oraclebackend/oraclebackend.cc
pdns/backends/gsql/gsqlbackend.cc
pdns/backends/gsql/gsqlbackend.hh
pdns/dnsbackend.hh
regression-tests/backends/oracle-master
regression-tests/backends/oracle-slave

index c6f6ecb2ad19db3945a32117ef2181adeb862011..38321210556c29ac9475dc5db522d7dac19da9c4 100644 (file)
@@ -1251,9 +1251,6 @@ OracleBackend::createSlaveDomain(const string &ip, const string &domain,
 bool
 OracleBackend::getAllDomainMetadata (const string& name, std::map<string, vector<string> >& meta)
 {
-  if(!d_dnssecQueries)
-    return -1;
-
   DomainInfo di;
   if (getDomainInfo(name, di) == false) return false;
 
@@ -1280,7 +1277,8 @@ OracleBackend::getAllDomainMetadata (const string& name, std::map<string, vector
 
     string kind = mResultType;
     string content = mResultContent;
-    meta[kind].push_back(content);
+    if (!isDnssecDomainMetadata(content))
+      meta[kind].push_back(content);
 
     rc = OCIStmtFetch2(stmt, oraerr, 1, OCI_FETCH_NEXT, 0, OCI_DEFAULT);
   }
@@ -1293,7 +1291,7 @@ bool
 OracleBackend::getDomainMetadata (const string& name, const string& kind,
                                   vector<string>& meta)
 {
-  if(!d_dnssecQueries)
+  if(!d_dnssecQueries && isDnssecDomainMetadata(kind))
     return -1;
   DomainInfo di;
   if (getDomainInfo(name, di) == false) return false;
@@ -1333,7 +1331,7 @@ bool
 OracleBackend::setDomainMetadata(const string& name, const string& kind,
                                  const vector<string>& meta)
 {
-  if(!d_dnssecQueries)
+  if(!d_dnssecQueries && isDnssecDomainMetadata(kind))
     return -1;
   DomainInfo di;
   if (getDomainInfo(name, di) == false) return false;
@@ -1396,9 +1394,6 @@ OracleBackend::setDomainMetadata(const string& name, const string& kind,
 bool
 OracleBackend::getTSIGKey (const string& name, string* algorithm, string* content)
 {
-  if(!d_dnssecQueries)
-    return -1;
-
   sword rc;
   OCIStmt *stmt;
 
@@ -1432,9 +1427,6 @@ OracleBackend::getTSIGKey (const string& name, string* algorithm, string* conten
 bool
 OracleBackend::delTSIGKey(const string& name)
 {
-  if(!d_dnssecQueries)
-    return -1;
-
   sword rc;
   OCIStmt *stmt;
 
@@ -1464,9 +1456,6 @@ OracleBackend::delTSIGKey(const string& name)
 bool
 OracleBackend::setTSIGKey(const string& name, const string& algorithm, const string& content)
 {
-  if(!d_dnssecQueries)
-    return -1;
-
   sword rc;
   OCIStmt *stmt;
 
@@ -1520,9 +1509,6 @@ OracleBackend::setTSIGKey(const string& name, const string& algorithm, const str
 bool
 OracleBackend::getTSIGKeys(std::vector< struct TSIGKey > &keys)
 {
-  if(!d_dnssecQueries)
-    return -1;
-
   sword rc;
   OCIStmt *stmt;
 
index 18eb8732bde3f3fbdebdc64ee8224fcc2d1a9904..71d15f4dc8e77d0cc646f62121c6201841250a4a 100644 (file)
@@ -348,10 +348,6 @@ GSQLBackend::GSQLBackend(const string &mode, const string &suffix)
   d_getTSIGKeysQuery = getArg("get-tsig-keys-query");
 }
 
-bool isDnssecDomainMetadata (const string& name) {
-  return (name == "PRESIGNED" || name == "NSEC3PARAM" || name == "NSEC3NARROW");
-}
-
 bool GSQLBackend::updateDNSSECOrderAndAuth(uint32_t domain_id, const std::string& zonename, const std::string& qname, bool auth)
 {
   if(!d_dnssecQueries)
index 9b86cb5d749354c9b85a1181a1bf2f791068cdf9..6b4794d39444ca99f38c529c23e21364a6c1a059 100644 (file)
@@ -5,6 +5,8 @@
 
 #include "../../namespaces.hh"
 
+bool isDnssecDomainMetadata (const string& name);
+
 /* 
 GSQLBackend is a generic backend used by other sql backends
 */
index 0bfbb45a1a7e4e5f436832ffa182efab405ad54a..8e03d532bae9e648e4119699220547f464ce0099 100644 (file)
@@ -134,6 +134,9 @@ public:
   }
 
   // the DNSSEC related (getDomainMetadata has broader uses too)
+  bool isDnssecDomainMetadata (const string& name) {
+    return (name == "PRESIGNED" || name == "NSEC3PARAM" || name == "NSEC3NARROW");
+  }
   virtual bool getAllDomainMetadata(const string& name, std::map<std::string, std::vector<std::string> >& meta) { return false; };
   virtual bool getDomainMetadata(const string& name, const std::string& kind, std::vector<std::string>& meta) { return false; }
   virtual bool setDomainMetadata(const string& name, const std::string& kind, const std::vector<std::string>& meta) {return false;}
index 4b4505c54284634e56b6660d761f1a6878b1e6fe..ebdad4569b022b573ba040107ae7076b6d8d2579 100644 (file)
@@ -25,8 +25,6 @@ __EOF__
                if [ $context != oracle-nodnssec ]
                then
                        echo "oracle-dnssec" >> pdns-oracle.conf
-                       ../pdns/pdnssec --config-dir=. --config-name=oracle import-tsig-key test $ALGORITHM $KEY
-                       ../pdns/pdnssec --config-dir=. --config-name=oracle activate-tsig-key tsig.com test master
                fi
 
                if [ $context != oracle-nodnssec ]
@@ -44,6 +42,9 @@ __EOF__
                echo "TRUNCATE TABLE records;" | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
                ../pdns/zone2sql --oracle | grep -v 'INSERT INTO Zones' | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
 
+               ../pdns/pdnssec --config-dir=. --config-name=oracle import-tsig-key test $ALGORITHM $KEY
+               ../pdns/pdnssec --config-dir=. --config-name=oracle activate-tsig-key tsig.com test master
+
                $RUNWRAPPER $PDNS --daemon=no --local-port=$port --config-dir=. \
                        --config-name=oracle --socket-dir=./ --no-shuffle \
                        --send-root-referral --query-logging \
index 6f2a6f99d5ef48d240dedcb9eb6612acec051117..e785d62b0bcb7bc0578252029e54091af6536732 100644 (file)
@@ -25,17 +25,14 @@ __EOF__
                echo "INSERT ALL INTO zones (id, name, type) VALUES (zones_id_seq.nextval, name, 'SLAVE') INTO zonemasters (zone_id, master) VALUES (zones_id_seq.nextval, master) SELECT '$zone' AS name, '127.0.0.1:$port' AS master FROM dual;" | sqlplus -S $ORACLE2USER/$ORACLE2PASSWD@xe >> oracle2.log
        done
 
+       ../pdns/pdnssec --config-dir=. --config-name=oracle2 import-tsig-key test $ALGORITHM $KEY
+       ../pdns/pdnssec --config-dir=. --config-name=oracle2 activate-tsig-key tsig.com test master
+
        set +e
-       echo $skipreasons | grep -q nodnssec
+       echo $skipreasons | grep -q nolua
        if [ $? -ne 0 ]
        then
-               ../pdns/pdnssec --config-dir=. --config-name=oracle2 import-tsig-key test $ALGORITHM $KEY
-               ../pdns/pdnssec --config-dir=. --config-name=oracle2 activate-tsig-key tsig.com test master
-               echo $skipreasons | grep -q nolua
-               if [ $? -ne 0 ]
-               then
-                       ../pdns/pdnssec --config-dir=. --config-name=oracle2 set-meta stest.com AXFR-SOURCE 127.0.0.2
-               fi
+               ../pdns/pdnssec --config-dir=. --config-name=oracle2 set-meta stest.com AXFR-SOURCE 127.0.0.2
        fi
        set -e