virtual bool setTSIGKey(const string& name, const string& algorithm, const string& content);
virtual bool deleteTSIGKey(const string& name);
virtual bool getTSIGKeys(std::vector< struct TSIGKey > &keys);
- virtual bool createDNSSECDB(const string& fname);
virtual bool doesDNSSEC();
// end of DNSSEC
throw runtime_error("bind-dnssec-db requires building PowerDNS with SQLite3");
}
-void Bind2Backend::createDNSSECDB(const string& fname)
-{ return false; }
-
bool Bind2Backend::doesDNSSEC()
{ return false; }
d_dnssecdb->setLog(::arg().mustDo("query-logging"));
}
-bool Bind2Backend::createDNSSECDB(const string& fname)
-{
- try {
- SSQLite3 db(fname, true); // create=ok
- vector<string> statements;
- stringtok(statements, sqlCreate, ";");
- BOOST_FOREACH(const string& statement, statements)
- db.doCommand(statement);
- }
- catch(SSqlException& se) {
- throw PDNSException("Error creating database in BIND backend: "+se.txtReason());
- }
- return true;
-}
-
bool Bind2Backend::doesDNSSEC()
{
return true;
virtual bool deleteTSIGKey(const string& name) { return false; }
virtual bool getTSIGKeys(std::vector< struct TSIGKey > &keys) { return false; }
- virtual bool createDNSSECDB(const string& fname) { return false; }
-
virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, std::string& unhashed, std::string& before, std::string& after)
{
std::cerr<<"Default beforeAndAfterAbsolute called!"<<std::endl;
#include "signingpipe.hh"
#include <boost/scoped_ptr.hpp>
#include "dns_random.hh"
+#ifdef HAVE_SQLITE3
+#include "ssqlite3.hh"
+#include "../modules/bindbackend/bind-dnssec.schema.sqlite3.sql.h"
+#endif
StatBag S;
PacketCache PC;
return -1;
}
-void loadMainConfig(const std::string& configdir, bool launchBind)
+void loadMainConfig(const std::string& configdir)
{
::arg().set("config-dir","Location of configuration directory (pdns.conf)")=configdir;
::arg().set("pipebackend-abi-version","Version of the pipe backend ABI")="1";
::arg().setSwitch("experimental-direct-dnskey","EXPERIMENTAL: fetch DNSKEY RRs from backend during DNSKEY synthesis")="no";
::arg().laxFile(configname.c_str());
- if (launchBind)
- BackendMakers().launch("bind");
- else
- BackendMakers().launch(::arg()["launch"]); // vrooooom!
+ BackendMakers().launch(::arg()["launch"]); // vrooooom!
::arg().laxFile(configname.c_str());
//cerr<<"Backend: "<<::arg()["launch"]<<", '" << ::arg()["gmysql-dbname"] <<"'" <<endl;
return 0;
}
- loadMainConfig(g_vm["config-dir"].as<string>(), cmds[0] == "create-bind-db");
+ loadMainConfig(g_vm["config-dir"].as<string>());
reportAllTypes();
if(cmds[0] == "create-bind-db") {
+#ifdef HAVE_SQLITE3
if(cmds.size() != 2) {
cerr << "Syntax: pdnssec create-bind-db fname"<<endl;
return 0;
}
- UeberBackend B("default");
- if (!B.createDNSSECDB(cmds[1]))
- return 1;
- else
- return 0;
+ try {
+ SSQLite3 db(cmds[1], true); // create=ok
+ vector<string> statements;
+ stringtok(statements, sqlCreate, ";");
+ BOOST_FOREACH(const string& statement, statements)
+ db.doCommand(statement);
+ }
+ catch(SSqlException& se) {
+ throw PDNSException("Error creating database in BIND backend: "+se.txtReason());
+ }
+ return 0;
+#else
+ cerr<<"bind-dnssec-db requires build PowerDNS with SQLite3"<<endl;
+ return 1;
+#endif
}
DNSSECKeeper dk;
return true;
}
-bool UeberBackend::createDNSSECDB(const string& fname)
-{
- BOOST_FOREACH(DNSBackend* db, backends) {
- db->createDNSSECDB(fname);
- }
- return true;
-}
void UeberBackend::reload()
{
bool deleteTSIGKey(const string& name);
bool getTSIGKeys(std::vector< struct TSIGKey > &keys);
- bool createDNSSECDB(const string& fname);
void alsoNotifies(const string &domain, set<string> *ips);
void rediscover(string* status=0);