]>
Commit | Line | Data |
---|---|---|
b4ce8b4e BH |
1 | #include <string> |
2 | #include <map> | |
3 | #include "ssql.hh" | |
4 | ||
5 | using namespace std; | |
6 | ||
7 | /** The GSQLBackend is a DNSBackend that can answer DNS related questions. It looks up data | |
8 | in PostgreSQL */ | |
9 | class GSQLBackend : public DNSBackend | |
10 | { | |
11 | public: | |
12 | GSQLBackend(const string &mode, const string &suffix); //!< Makes our connection to the database. Throws an exception if it fails. | |
13 | virtual ~GSQLBackend() | |
14 | { | |
15 | if(d_db) | |
16 | delete d_db; | |
17 | } | |
18 | ||
19 | void setDB(SSql *db) | |
20 | { | |
21 | d_db=db; | |
22 | } | |
23 | ||
bdaab6b8 | 24 | virtual string sqlEscape(const string &name); |
b4ce8b4e | 25 | void lookup(const QType &, const string &qdomain, DNSPacket *p=0, int zoneId=-1); |
88def049 | 26 | bool list(const string &target, int domain_id); |
b4ce8b4e BH |
27 | bool get(DNSResourceRecord &r); |
28 | bool isMaster(const string &domain, const string &ip); | |
29 | ||
30 | bool startTransaction(const string &domain, int domain_id=-1); | |
31 | bool commitTransaction(); | |
32 | bool abortTransaction(); | |
33 | bool feedRecord(const DNSResourceRecord &r); | |
34 | bool createSlaveDomain(const string &ip, const string &domain, const string &account); | |
35 | bool superMasterBackend(const string &ip, const string &domain, const vector<DNSResourceRecord>&nsset, string *account, DNSBackend **db); | |
092f210a | 36 | void setFresh(uint32_t domain_id); |
ab5edd12 | 37 | bool checkACL(const string &acl_type, const string &key, const string &value); |
b4ce8b4e BH |
38 | void getUnfreshSlaveInfos(vector<DomainInfo> *domains); |
39 | void getUpdatedMasters(vector<DomainInfo> *updatedDomains); | |
40 | bool getDomainInfo(const string &domain, DomainInfo &di); | |
092f210a | 41 | void setNotified(uint32_t domain_id, uint32_t serial); |
75943e62 | 42 | virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, std::string& before, std::string& after); |
81b39e4b BH |
43 | bool updateDNSSECOrderAndAuth(uint32_t domain_id, const std::string& zonename, const std::string& qname, bool auth); |
44 | ||
b4ce8b4e BH |
45 | private: |
46 | string d_qname; | |
47 | QType d_qtype; | |
48 | int d_count; | |
49 | SSql *d_db; | |
50 | SSql::result_t d_result; | |
51 | ||
52 | string d_wildCardNoIDQuery; | |
53 | string d_noWildCardNoIDQuery; | |
54 | string d_noWildCardIDQuery; | |
55 | string d_wildCardIDQuery; | |
56 | string d_wildCardANYNoIDQuery; | |
57 | string d_noWildCardANYNoIDQuery; | |
58 | string d_noWildCardANYIDQuery; | |
59 | string d_wildCardANYIDQuery; | |
60 | string d_listQuery; | |
61 | string d_logprefix; | |
36d772ab BH |
62 | |
63 | string d_MasterOfDomainsZoneQuery; | |
64 | string d_InfoOfDomainsZoneQuery; | |
65 | string d_InfoOfAllSlaveDomainsQuery; | |
66 | string d_SuperMasterInfoQuery; | |
67 | string d_InsertSlaveZoneQuery; | |
68 | string d_InsertRecordQuery; | |
69 | string d_UpdateSerialOfZoneQuery; | |
70 | string d_UpdateLastCheckofZoneQuery; | |
71 | string d_InfoOfAllMasterDomainsQuery; | |
66dba9d7 | 72 | string d_DeleteZoneQuery; |
ab5edd12 | 73 | string d_CheckACLQuery; |
136efa2f BH |
74 | |
75 | string d_beforeOrderQuery; | |
76 | string d_afterOrderQuery; | |
77 | string d_setOrderAuthQuery; | |
78 | ||
79 | protected: | |
80 | bool d_dnssecQueries; | |
b4ce8b4e | 81 | }; |