]>
Commit | Line | Data |
---|---|---|
b4ce8b4e BH |
1 | #include <string> |
2 | #include <map> | |
3 | #include "ssql.hh" | |
4 | ||
10f4eea8 | 5 | #include "../../namespaces.hh" |
b4ce8b4e BH |
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); | |
77151d0b | 29 | void alsoNotifies(const string &domain, set<string> *ips); |
b4ce8b4e BH |
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); |
b4ce8b4e BH |
37 | void getUnfreshSlaveInfos(vector<DomainInfo> *domains); |
38 | void getUpdatedMasters(vector<DomainInfo> *updatedDomains); | |
39 | bool getDomainInfo(const string &domain, DomainInfo &di); | |
092f210a | 40 | void setNotified(uint32_t domain_id, uint32_t serial); |
c3c89361 | 41 | virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, std::string& unhashed, std::string& before, std::string& after); |
81b39e4b | 42 | bool updateDNSSECOrderAndAuth(uint32_t domain_id, const std::string& zonename, const std::string& qname, bool auth); |
5c3bf2db BH |
43 | virtual bool updateDNSSECOrderAndAuthAbsolute(uint32_t domain_id, const std::string& qname, const std::string& ordername, bool auth); |
44 | ||
d07fc616 PD |
45 | virtual bool calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial); |
46 | ||
c0273500 BH |
47 | int addDomainKey(const string& name, const KeyData& key); |
48 | bool getDomainKeys(const string& name, unsigned int kind, std::vector<KeyData>& keys); | |
49 | bool getDomainMetadata(const string& name, const std::string& kind, std::vector<std::string>& meta); | |
50 | bool setDomainMetadata(const string& name, const std::string& kind, const std::vector<std::string>& meta); | |
4496f66f BH |
51 | |
52 | bool removeDomainKey(const string& name, unsigned int id); | |
53 | bool activateDomainKey(const string& name, unsigned int id); | |
54 | bool deactivateDomainKey(const string& name, unsigned int id); | |
55 | ||
78bcb858 | 56 | bool getTSIGKey(const string& name, string* algorithm, string* content); |
b4ce8b4e BH |
57 | private: |
58 | string d_qname; | |
59 | QType d_qtype; | |
60 | int d_count; | |
61 | SSql *d_db; | |
62 | SSql::result_t d_result; | |
63 | ||
64 | string d_wildCardNoIDQuery; | |
65 | string d_noWildCardNoIDQuery; | |
66 | string d_noWildCardIDQuery; | |
67 | string d_wildCardIDQuery; | |
68 | string d_wildCardANYNoIDQuery; | |
69 | string d_noWildCardANYNoIDQuery; | |
70 | string d_noWildCardANYIDQuery; | |
71 | string d_wildCardANYIDQuery; | |
72 | string d_listQuery; | |
73 | string d_logprefix; | |
36d772ab BH |
74 | |
75 | string d_MasterOfDomainsZoneQuery; | |
76 | string d_InfoOfDomainsZoneQuery; | |
77 | string d_InfoOfAllSlaveDomainsQuery; | |
78 | string d_SuperMasterInfoQuery; | |
79 | string d_InsertSlaveZoneQuery; | |
80 | string d_InsertRecordQuery; | |
81 | string d_UpdateSerialOfZoneQuery; | |
82 | string d_UpdateLastCheckofZoneQuery; | |
83 | string d_InfoOfAllMasterDomainsQuery; | |
66dba9d7 | 84 | string d_DeleteZoneQuery; |
d07fc616 | 85 | string d_ZoneLastChangeQuery; |
136efa2f | 86 | |
5697411b | 87 | string d_firstOrderQuery; |
136efa2f BH |
88 | string d_beforeOrderQuery; |
89 | string d_afterOrderQuery; | |
bc74a078 | 90 | string d_lastOrderQuery; |
136efa2f BH |
91 | string d_setOrderAuthQuery; |
92 | ||
c0273500 BH |
93 | string d_AddDomainKeyQuery; |
94 | string d_ListDomainKeysQuery; | |
95 | string d_GetDomainMetadataQuery; | |
f7bcc763 | 96 | string d_ClearDomainMetadataQuery; |
c0273500 | 97 | string d_SetDomainMetadataQuery; |
4496f66f BH |
98 | |
99 | string d_RemoveDomainKeyQuery; | |
100 | string d_ActivateDomainKeyQuery; | |
101 | string d_DeactivateDomainKeyQuery; | |
78bcb858 BH |
102 | |
103 | string d_getTSIGKeyQuery; | |
136efa2f BH |
104 | protected: |
105 | bool d_dnssecQueries; | |
b4ce8b4e | 106 | }; |