]> granicus.if.org Git - pdns/commitdiff
make oracle backend compilable
authorKees Monshouwer <mind04@monshouwer.org>
Fri, 3 Jan 2014 10:27:11 +0000 (11:27 +0100)
committermind04 <mind04@monshouwer.org>
Fri, 3 Jan 2014 10:56:25 +0000 (11:56 +0100)
modules/oraclebackend/oraclebackend.cc
modules/oraclebackend/oraclebackend.hh
modules/oraclebackend/schema.sql

index bf6dbd41ce3aa7f4cf7491dc4065b27e9f8d47b8..ead7e412ac203dfb0792c11d56c9157d11f6b2a8 100644 (file)
@@ -213,6 +213,25 @@ static const char *getTSIGKeyQueryDefaultSQL =
   "FROM TSIGKeys "
   "WHERE name = :name";
 
+static const char *delTSIGKeyQueryKey = "PDNS_Del_TSIG_Key";
+static const char *delTSIGKeyQueryDefaultSQL =
+  "DELETE FROM TSIGKeys "
+  "WHERE name = :name";
+
+static const char *setTSIGKeyQueryKey = "PDNS_Set_TSIG_Key";
+static const char *setTSIGKeyQueryDefaultSQL =
+  "INSERT INTO TSIGKeys (name,algorithm,secret)"
+  "VALUES("
+  ":name,"
+  ":algorithm,"
+  ":secret"
+  ")";
+
+static const char *getTSIGKeysQueryKey = "PDNS_Get_TSIG_Keys";
+static const char *getTSIGKeysQueryDefaultSQL =
+  "SELECT name, algorithm, secret "
+  "FROM TSIGKeys";
+
 static const char *getZoneKeysQueryKey = "PDNS_Get_Zone_Keys";
 static const char *getZoneKeysQueryDefaultSQL =
   "SELECT k.id, k.flags, k.active, k.keydata "
@@ -238,22 +257,6 @@ static const char *setZoneKeyStateQueryKey = "PDNS_Set_Zone_Key_State";
 static const char *setZoneKeyStateQueryDefaultSQL =
   "UPDATE ZoneDNSKeys SET active = :active WHERE id = :keyid";
 
-static const char *setTSIGKeyQueryKey = "PDNS_Set_TSIG_Key";
-static const char *setTSIGKeyQueryDefaultSQL = 
-  "INSERT INTO TSIGKeys (name,algorithm,secret)"
-  "VALUES("
-  ":name,"
-  ":algorithm,"
-  ":secret"
-  ")";
-static const char *deleteTSIGKeyQueryKey = "PDNS_Delete_TSIG_Key";
-static const char *deleteTSIGKeyQueryDefaultSQL = 
-  "DELETE FROM TSIGKeys "
-  "WHERE name = :name";
-static const char *getTSIGKeysQueryKey = "PDNS_Get_TSIG_Keys";
-static const char *getTSIGKeysQueryDefaultSQL =   
-  "SELECT name, algorithm, secret "
-  "FROM TSIGKeys";
 
 static void
 string_to_cbuf (char *buf, const string& s, size_t bufsize)
@@ -325,8 +328,8 @@ OracleBackend::OracleBackend (const string &suffix, OCIEnv *envh,
   delZoneMetadataQuerySQL = getArg("del-zone-metadata-query");
   setZoneMetadataQuerySQL = getArg("set-zone-metadata-query");
   getTSIGKeyQuerySQL = getArg("get-tsig-key-query");
+  delTSIGKeyQuerySQL = getArg("del-tsig-key-query");
   setTSIGKeyQuerySQL = getArg("set-tsig-key-query");
-  deleteTSIGKeyQuerySQL = getArg("delete-tsig-key-query");
   getTSIGKeysQuerySQL = getArg("get-tsig-keys-query");
   getZoneKeysQuerySQL = getArg("get-zone-keys-query");
   delZoneKeyQuerySQL = getArg("del-zone-key-query");
@@ -1381,7 +1384,7 @@ OracleBackend::getTSIGKey (const string& name, string* algorithm, string* conten
 }
 
 bool
-OracleBackend::setTSIGKey(const string& name, const string& algorithm, const string& content)
+OracleBackend::delTSIGKey(const string& name)
 {
   if(!d_dnssecQueries)
     return -1;
@@ -1390,46 +1393,28 @@ OracleBackend::setTSIGKey(const string& name, const string& algorithm, const str
   OCIStmt *stmt;
 
   openMasterConnection();
-
   rc = OCITransStart(masterSvcCtx, oraerr, 60, OCI_TRANS_NEW);
 
-  stmt = prepare_query(masterSvcCtx, deleteTSIGKeyQuerySQL, deleteTSIGKeyQueryKey);
+  stmt = prepare_query(masterSvcCtx, delTSIGKeyQuerySQL, delTSIGKeyQueryKey);
   string_to_cbuf(mQueryName, name, sizeof(mQueryName));
   bind_str(stmt, ":name", mQueryName, sizeof(mQueryName));
-
   rc = OCIStmtExecute(masterSvcCtx, stmt, oraerr, 1, 0, NULL, NULL, OCI_DEFAULT);
-  if (rc == OCI_ERROR) {
-    throw OracleException("Oracle setTSIGKey", oraerr);
-  }
-
-  release_query(stmt, setTSIGKeyQueryKey);
 
-  stmt = prepare_query(masterSvcCtx, setTSIGKeyQuerySQL, setTSIGKeyQueryKey);
-  string_to_cbuf(mQueryName, name, sizeof(mQueryName));
-  string_to_cbuf(mQueryType, type, sizeof(mQueryType));
-  string_to_cbuf(mQueryContent, content, sizeof(mQueryContent));
-
-  bind_str(stmt, ":name", mQueryName, sizeof(mQueryName));
-  bind_str(stmt, ":algorithm", mQueryType, sizeof(mQueryType));
-  bind_str(stmt, ":secret", mQueryContent, sizeof(mQueryContent));
-
-  rc = OCIStmtExecute(masterSvcCtx, stmt, oraerr, 1, 0, NULL, NULL, OCI_DEFAULT);
   if (rc == OCI_ERROR) {
-    throw OracleException("Oracle setTSIGKey", oraerr);
+    throw OracleException("Oracle delTSIGKey", oraerr);
   }
 
   release_query(stmt, setTSIGKeyQueryKey);
 
   rc = OCITransCommit(masterSvcCtx, oraerr, OCI_DEFAULT);
   if (rc == OCI_ERROR) {
-    throw OracleException("Oracle setTSIGKey COMMIT", oraerr);
+    throw OracleException("Oracle delTSIGKey COMMIT", oraerr);
   }
-
   return true;
 }
 
 bool
-OracleBackend::deleteTSIGKey(const string& name)
+OracleBackend::setTSIGKey(const string& name, const string& algorithm, const string& content)
 {
   if(!d_dnssecQueries)
     return -1;
@@ -1438,23 +1423,41 @@ OracleBackend::deleteTSIGKey(const string& name)
   OCIStmt *stmt;
 
   openMasterConnection();
+
   rc = OCITransStart(masterSvcCtx, oraerr, 60, OCI_TRANS_NEW);
 
-  stmt = prepare_query(masterSvcCtx, deleteTSIGKeyQuerySQL, deleteTSIGKeyQueryKey);
+  stmt = prepare_query(masterSvcCtx, delTSIGKeyQuerySQL, delTSIGKeyQueryKey);
   string_to_cbuf(mQueryName, name, sizeof(mQueryName));
   bind_str(stmt, ":name", mQueryName, sizeof(mQueryName));
+
   rc = OCIStmtExecute(masterSvcCtx, stmt, oraerr, 1, 0, NULL, NULL, OCI_DEFAULT);
+  if (rc == OCI_ERROR) {
+    throw OracleException("Oracle setTSIGKey", oraerr);
+  }
 
+  release_query(stmt, setTSIGKeyQueryKey);
+
+  stmt = prepare_query(masterSvcCtx, setTSIGKeyQuerySQL, setTSIGKeyQueryKey);
+  string_to_cbuf(mQueryName, name, sizeof(mQueryName));
+  string_to_cbuf(mQueryType, algorithm, sizeof(mQueryType));
+  string_to_cbuf(mQueryContent, content, sizeof(mQueryContent));
+
+  bind_str(stmt, ":name", mQueryName, sizeof(mQueryName));
+  bind_str(stmt, ":algorithm", mQueryType, sizeof(mQueryType));
+  bind_str(stmt, ":secret", mQueryContent, sizeof(mQueryContent));
+
+  rc = OCIStmtExecute(masterSvcCtx, stmt, oraerr, 1, 0, NULL, NULL, OCI_DEFAULT);
   if (rc == OCI_ERROR) {
-    throw OracleException("Oracle deleteTSIGKey", oraerr);
+    throw OracleException("Oracle setTSIGKey", oraerr);
   }
 
   release_query(stmt, setTSIGKeyQueryKey);
 
   rc = OCITransCommit(masterSvcCtx, oraerr, OCI_DEFAULT);
   if (rc == OCI_ERROR) {
-    throw OracleException("Oracle deleteTSIGKey COMMIT", oraerr);
+    throw OracleException("Oracle setTSIGKey COMMIT", oraerr);
   }
+
   return true;
 }
 
@@ -1468,8 +1471,9 @@ OracleBackend::getTSIGKeys(std::vector< struct TSIGKey > &keys)
   OCIStmt *stmt;
 
   stmt = prepare_query(pooledSvcCtx, getTSIGKeysQuerySQL, getTSIGKeysQueryKey);
-  define_output_str(stmt, 1, &mResultTypeInd, mResultType, sizeof(mResultType));
-  define_output_str(stmt, 2, &mResultContentInd, mResultContent, sizeof(mResultContent));
+  define_output_str(stmt, 1, &mResultNameInd, mResultName, sizeof(mResultName));
+  define_output_str(stmt, 2, &mResultTypeInd, mResultType, sizeof(mResultType));
+  define_output_str(stmt, 3, &mResultContentInd, mResultContent, sizeof(mResultContent));
 
   rc = OCIStmtExecute(pooledSvcCtx, stmt, oraerr, 1, 0, NULL, NULL, OCI_DEFAULT);
 
@@ -1484,9 +1488,9 @@ OracleBackend::getTSIGKeys(std::vector< struct TSIGKey > &keys)
 
     struct TSIGKey key;
 
-    key.name = name;
-    key.algorithm = type;
-    key.key = content;
+    key.name = mResultName;
+    key.algorithm = mResultType;
+    key.key = mResultContent;
     keys.push_back(key);
 
     rc = OCIStmtFetch2(stmt, oraerr, 1, OCI_FETCH_NEXT, 0, OCI_DEFAULT);
@@ -2196,9 +2200,10 @@ OracleFactory () : BackendFactory("oracle") {
     declare(suffix, "set-zone-metadata-query", "", setZoneMetadataQueryDefaultSQL);
 
     declare(suffix, "get-tsig-key-query", "", getTSIGKeyQueryDefaultSQL);
+    declare(suffix, "del-tsig-key-query", "", delTSIGKeyQueryDefaultSQL);
     declare(suffix, "set-tsig-key-query", "", setTSIGKeyQueryDefaultSQL);
-    declare(suffix, "delete-tsig-key-query", "", deleteTSIGKeyQueryDefaultSQL);
     declare(suffix, "get-tsig-keys-query", "", getTSIGKeysQueryDefaultSQL);
+
     declare(suffix, "get-zone-keys-query", "", getZoneKeysQueryDefaultSQL);
     declare(suffix, "del-zone-key-query", "", delZoneKeyQueryDefaultSQL);
     declare(suffix, "add-zone-key-query", "", addZoneKeyQueryDefaultSQL);
index 95aa90811c7fa370fe7a093378d7563ff77ac9f4..7f270e2d0405861521a138eb93eb3276ffc15c2c 100644 (file)
@@ -82,6 +82,10 @@ public:
   bool setDomainMetadata(const string& name, const std::string& kind, const std::vector<std::string>& meta);
 
   bool getTSIGKey(const string& name, string* algorithm, string* content);
+  bool delTSIGKey(const string& name);
+  bool setTSIGKey(const string& name, const string& algorithm, const string& content);
+  bool getTSIGKeys(std::vector< struct TSIGKey > &keys);
+
   bool getDomainKeys(const string& name, unsigned int kind, vector<KeyData>& keys);
   bool removeDomainKey(const string& name, unsigned int id);
   int addDomainKey(const string& name, const KeyData& key);
@@ -127,6 +131,10 @@ private:
   string setZoneMetadataQuerySQL;
 
   string getTSIGKeyQuerySQL;
+  string delTSIGKeyQuerySQL;
+  string setTSIGKeyQuerySQL;
+  string getTSIGKeysQuerySQL;
+
   string getZoneKeysQuerySQL;
   string delZoneKeyQuerySQL;
   string addZoneKeyQuerySQL;
index a96b5fdc1abe7c60486749dd9276c747fb4b6b82..7a1005f4e5402e33da7cbde7fdc4a0ce8e90d77e 100644 (file)
@@ -84,9 +84,9 @@ CREATE INDEX zonednskeys_zone_ind ON ZoneDNSKeys (zone_id);
 
 
 CREATE TABLE TSIGKeys (
-  name VARCHAR2(255) CONSTRAINT pkey_tsigkeys PRIMARY KEY,
-  algorithm VARCHAR2(63) NOT NULL,
-  secret VARCHAR2(2047) NOT NULL
+  name VARCHAR2(256) CONSTRAINT pkey_tsigkeys PRIMARY KEY,
+  algorithm VARCHAR2(64) NOT NULL,
+  secret VARCHAR2(2048) NOT NULL
 );