]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/backends/gsql/gsqlbackend.hh
introduce new setMaster/setKind functions
[thirdparty/pdns.git] / pdns / backends / gsql / gsqlbackend.hh
CommitLineData
b4ce8b4e
BH
1#include <string>
2#include <map>
3#include "ssql.hh"
4
10f4eea8 5#include "../../namespaces.hh"
b4ce8b4e 6
1325e8a2
PD
7/*
8GSQLBackend is a generic backend used by other sql backends
9*/
b4ce8b4e
BH
10class GSQLBackend : public DNSBackend
11{
12public:
13 GSQLBackend(const string &mode, const string &suffix); //!< Makes our connection to the database. Throws an exception if it fails.
14 virtual ~GSQLBackend()
15 {
16 if(d_db)
17 delete d_db;
18 }
19
20 void setDB(SSql *db)
21 {
22 d_db=db;
23 }
24
bdaab6b8 25 virtual string sqlEscape(const string &name);
b4ce8b4e 26 void lookup(const QType &, const string &qdomain, DNSPacket *p=0, int zoneId=-1);
88def049 27 bool list(const string &target, int domain_id);
b4ce8b4e 28 bool get(DNSResourceRecord &r);
1325e8a2 29 void getAllDomains(vector<DomainInfo> *domains);
b4ce8b4e 30 bool isMaster(const string &domain, const string &ip);
77151d0b 31 void alsoNotifies(const string &domain, set<string> *ips);
b4ce8b4e
BH
32 bool startTransaction(const string &domain, int domain_id=-1);
33 bool commitTransaction();
34 bool abortTransaction();
f9cf6d92
KM
35 bool feedRecord(const DNSResourceRecord &r, string *ordername=0);
36 bool feedEnts(int domain_id, set<string>& nonterm);
37 bool feedEnts3(int domain_id, const string &domain, set<string> &nonterm, unsigned int times, const string &salt, bool narrow);
487cf033 38 bool createDomain(const string &domain);
b4ce8b4e
BH
39 bool createSlaveDomain(const string &ip, const string &domain, const string &account);
40 bool superMasterBackend(const string &ip, const string &domain, const vector<DNSResourceRecord>&nsset, string *account, DNSBackend **db);
092f210a 41 void setFresh(uint32_t domain_id);
b4ce8b4e
BH
42 void getUnfreshSlaveInfos(vector<DomainInfo> *domains);
43 void getUpdatedMasters(vector<DomainInfo> *updatedDomains);
44 bool getDomainInfo(const string &domain, DomainInfo &di);
092f210a 45 void setNotified(uint32_t domain_id, uint32_t serial);
c3c89361 46 virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, std::string& unhashed, std::string& before, std::string& after);
81b39e4b 47 bool updateDNSSECOrderAndAuth(uint32_t domain_id, const std::string& zonename, const std::string& qname, bool auth);
5c3bf2db 48 virtual bool updateDNSSECOrderAndAuthAbsolute(uint32_t domain_id, const std::string& qname, const std::string& ordername, bool auth);
c2df797e 49 virtual bool nullifyDNSSECOrderNameAndUpdateAuth(uint32_t domain_id, const std::string& qname, bool auth);
27045410 50 virtual bool nullifyDNSSECOrderNameAndAuth(uint32_t domain_id, const std::string& qname, const std::string& type);
c2df797e 51 virtual bool setDNSSECAuthOnDsRecord(uint32_t domain_id, const std::string& qname);
b5baefaf 52 virtual bool updateEmptyNonTerminals(uint32_t domain_id, const std::string& zonename, set<string>& insert ,set<string>& erase, bool remove);
ece45ffb 53 virtual bool doesDNSSEC();
5c3bf2db 54
d07fc616
PD
55 virtual bool calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial);
56
8bbb6f36 57 bool replaceRRSet(uint32_t domain_id, const string& qname, const QType& qt, const vector<DNSResourceRecord>& rrset);
6a323f63 58 bool listSubZone(const string &zone, int domain_id);
c0273500
BH
59 int addDomainKey(const string& name, const KeyData& key);
60 bool getDomainKeys(const string& name, unsigned int kind, std::vector<KeyData>& keys);
61 bool getDomainMetadata(const string& name, const std::string& kind, std::vector<std::string>& meta);
62 bool setDomainMetadata(const string& name, const std::string& kind, const std::vector<std::string>& meta);
4496f66f
BH
63
64 bool removeDomainKey(const string& name, unsigned int id);
65 bool activateDomainKey(const string& name, unsigned int id);
66 bool deactivateDomainKey(const string& name, unsigned int id);
67
78bcb858 68 bool getTSIGKey(const string& name, string* algorithm, string* content);
9a72349d
AT
69 bool setTSIGKey(const string& name, const string& algorithm, const string& content);
70 bool deleteTSIGKey(const string& name);
71 bool getTSIGKeys(std::vector< struct TSIGKey > &keys);
72
b4ce8b4e
BH
73private:
74 string d_qname;
75 QType d_qtype;
76 int d_count;
77 SSql *d_db;
78 SSql::result_t d_result;
79
80 string d_wildCardNoIDQuery;
81 string d_noWildCardNoIDQuery;
82 string d_noWildCardIDQuery;
83 string d_wildCardIDQuery;
84 string d_wildCardANYNoIDQuery;
85 string d_noWildCardANYNoIDQuery;
86 string d_noWildCardANYIDQuery;
87 string d_wildCardANYIDQuery;
88 string d_listQuery;
89 string d_logprefix;
36d772ab
BH
90
91 string d_MasterOfDomainsZoneQuery;
92 string d_InfoOfDomainsZoneQuery;
93 string d_InfoOfAllSlaveDomainsQuery;
94 string d_SuperMasterInfoQuery;
487cf033 95 string d_InsertZoneQuery;
36d772ab
BH
96 string d_InsertSlaveZoneQuery;
97 string d_InsertRecordQuery;
f9cf6d92
KM
98 string d_InsertEntQuery;
99 string d_InsertRecordOrderQuery;
100 string d_InsertEntOrderQuery;
36d772ab
BH
101 string d_UpdateSerialOfZoneQuery;
102 string d_UpdateLastCheckofZoneQuery;
103 string d_InfoOfAllMasterDomainsQuery;
66dba9d7 104 string d_DeleteZoneQuery;
87e85d73 105 string d_DeleteRRSet;
d07fc616 106 string d_ZoneLastChangeQuery;
136efa2f 107
5697411b 108 string d_firstOrderQuery;
136efa2f
BH
109 string d_beforeOrderQuery;
110 string d_afterOrderQuery;
bc74a078 111 string d_lastOrderQuery;
136efa2f 112 string d_setOrderAuthQuery;
c2df797e 113 string d_nullifyOrderNameAndUpdateAuthQuery;
27045410 114 string d_nullifyOrderNameAndAuthQuery;
e3dc2b56 115 string d_nullifyOrderNameAndAuthENTQuery;
c2df797e 116 string d_setAuthOnDsRecordQuery;
b5baefaf
PD
117 string d_removeEmptyNonTerminalsFromZoneQuery;
118 string d_insertEmptyNonTerminalQuery;
119 string d_deleteEmptyNonTerminalQuery;
136efa2f 120
c0273500
BH
121 string d_AddDomainKeyQuery;
122 string d_ListDomainKeysQuery;
123 string d_GetDomainMetadataQuery;
f7bcc763 124 string d_ClearDomainMetadataQuery;
c0273500 125 string d_SetDomainMetadataQuery;
4496f66f
BH
126
127 string d_RemoveDomainKeyQuery;
128 string d_ActivateDomainKeyQuery;
129 string d_DeactivateDomainKeyQuery;
78bcb858
BH
130
131 string d_getTSIGKeyQuery;
9a72349d
AT
132 string d_setTSIGKeyQuery;
133 string d_deleteTSIGKeyQuery;
134 string d_getTSIGKeysQuery;
1325e8a2
PD
135
136 string d_getAllDomainsQuery;
137
136efa2f
BH
138protected:
139 bool d_dnssecQueries;
b4ce8b4e 140};