]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
allow setting of some oracle env vars. Patch by Aki Tuomi, closes #725
authorPeter van Dijk <peter.van.dijk@netherlabs.nl>
Thu, 28 Mar 2013 13:45:33 +0000 (13:45 +0000)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Thu, 28 Mar 2013 13:45:33 +0000 (13:45 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@3138 d19b8d6e-7fed-0310-83ef-9ca221ded41b

modules/goraclebackend/goraclebackend.cc
modules/oraclebackend/oraclebackend.cc

index ab45482e1a44dd9000ddbd82675870485d0b8aaa..4d25227e952a4a02b394e03c9aeaa031bbed8ced 100644 (file)
 
 #include "soracle.hh"
 
-
 #include <sstream>
 
 gOracleBackend::gOracleBackend(const string &mode, const string &suffix)  : GSQLBackend(mode,suffix)
 {
   try {
+    // set some envionment variables
+    setenv("ORACLE_HOME", getArg("home").c_str(), 1);
+    setenv("ORACLE_SID", getArg("sid").c_str(), 1);
+    setenv("NLS_LANG", getArg("nls-lang").c_str(), 1);
     setDB(new SOracle(getArg("tnsname"),
                     getArg("user"),
                     getArg("password")));
@@ -41,10 +45,15 @@ public:
   
   void declareArguments(const string &suffix="")
   {
+    declare(suffix,"home", "Oracle home path", "");
+    declare(suffix,"sid", "Oracle sid", "XE");
+    declare(suffix,"nls-lang", "Oracle language", "AMERICAN_AMERICA.AL32UTF8");
+
     declare(suffix,"tnsname","Generic Oracle backend TNSNAME to connect to","powerdns");
     declare(suffix,"user","Database backend user to connect as","powerdns");
     declare(suffix,"password","Pdns backend password to connect with","");
 
+    declare(suffix,"get-all-domains-query", "Get all domain","select id,name,master,last_check,type,notified_serial,account from domains");
     declare(suffix,"basic-query","Basic query","select content,ttl,prio,type,domain_id,name from records where type='%s' and name='%s'");
     declare(suffix,"id-query","Basic with ID query","select content,ttl,prio,type,domain_id,name from records where type='%s' and name='%s' and domain_id=%d");
     declare(suffix,"wildcard-query","Wildcard query","select content,ttl,prio,type,domain_id,name from records where type='%s' and name like '%s'");
index 4b1f890620ca5bb89a8ec27c57fe49ddcde1feb3..52ddc83edd9c0ffaee5091158c2a413f1dccd4ce 100644 (file)
@@ -1809,6 +1809,11 @@ private:
     sword err;
 
     try {
+      // set some envionment variables
+      setenv("ORACLE_HOME", arg()["oracle-home"].c_str(), 1);
+      setenv("ORACLE_SID", arg()["oracle-sid"].c_str(), 1);
+      setenv("NLS_LANG", arg()["oracle-nls-lang"].c_str(), 1);
+
       // Initialize and create the environment
       err = OCIEnvCreate(&oraenv, OCI_THREADED, NULL, NULL,
                          NULL, NULL, 0, NULL);
@@ -1910,6 +1915,10 @@ OracleFactory () : BackendFactory("oracle") {
   }
 
   void declareArguments (const string & suffix = "") {
+    declare(suffix,"home", "Oracle home path", "");
+    declare(suffix,"sid", "Oracle sid", "XE");
+    declare(suffix,"nls-lang", "Oracle language", "AMERICAN_AMERICA.AL32UTF8");
+
     declare(suffix, "pool-database", "Database to connect to for the session pool", "powerdns");
     declare(suffix, "pool-username", "Username to connect as for the session pool", "powerdns");
     declare(suffix, "pool-password", "Password to connect with for the session pool", "");