]> git.ipfire.org Git - thirdparty/pdns.git/blame - modules/gmysqlbackend/gmysqlbackend.hh
small fixes
[thirdparty/pdns.git] / modules / gmysqlbackend / gmysqlbackend.hh
CommitLineData
2ffc06cb
BH
1#include <string>
2#include <map>
343546e5 3#include "ssql.hh"
2ffc06cb
BH
4
5using namespace std;
6
7/** The gMySQLBackend is a DNSBackend that can answer DNS related questions. It looks up data
8 in PostgreSQL */
9class gMySQLBackend : public DNSBackend
10{
11public:
12 gMySQLBackend(const string &mode, const string &suffix); //!< Makes our connection to the database. Throws an exception if it fails.
13 ~gMySQLBackend();
14
15 string sqlEscape(const string &name);
16 void lookup(const QType &, const string &qdomain, DNSPacket *p=0, int zoneId=-1);
17 bool list(int domain_id);
18 bool get(DNSResourceRecord &r);
19 bool isMaster(const string &domain, const string &ip);
20
21 bool startTransaction(const string &domain, int domain_id=-1);
22 bool commitTransaction();
23 bool abortTransaction();
24 bool feedRecord(const DNSResourceRecord &r);
25 bool createSlaveDomain(const string &ip, const string &domain, const string &account);
26 bool superMasterBackend(const string &ip, const string &domain, const vector<DNSResourceRecord>&nsset, string *account, DNSBackend **db);
27 void setFresh(u_int32_t domain_id);
28 void getUnfreshSlaveInfos(vector<DomainInfo> *domains);
29 void getUpdatedMasters(vector<DomainInfo> *updatedDomains);
30 bool getDomainInfo(const string &domain, DomainInfo &di);
31 void setNotified(u_int32_t domain_id, u_int32_t serial);
32private:
33 string d_qname;
34 QType d_qtype;
35 int d_count;
36 SSql *d_db;
37 SSql::result_t d_result;
38
39 string d_wildCardNoIDQuery;
40 string d_noWildCardNoIDQuery;
41 string d_noWildCardIDQuery;
42 string d_wildCardIDQuery;
43 string d_wildCardANYNoIDQuery;
44 string d_noWildCardANYNoIDQuery;
45 string d_noWildCardANYIDQuery;
46 string d_wildCardANYIDQuery;
47 string d_listQuery;
48 string d_logprefix;
49};