]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/backends/gsql/gsqlbackend.hh
regression-tests: fix PATH for named-checkzone
[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);
719f9024 39 bool createSlaveDomain(const string &ip, const string &domain, const string &nameserver, const string &account);
09d6667a 40 bool deleteDomain(const string &domain);
719f9024 41 bool superMasterBackend(const string &ip, const string &domain, const vector<DNSResourceRecord>&nsset, string *nameserver, string *account, DNSBackend **db);
092f210a 42 void setFresh(uint32_t domain_id);
b4ce8b4e
BH
43 void getUnfreshSlaveInfos(vector<DomainInfo> *domains);
44 void getUpdatedMasters(vector<DomainInfo> *updatedDomains);
45 bool getDomainInfo(const string &domain, DomainInfo &di);
092f210a 46 void setNotified(uint32_t domain_id, uint32_t serial);
c02f13ef
CH
47 bool setMaster(const string &domain, const string &ip);
48 bool setKind(const string &domain, const DomainInfo::DomainKind kind);
49
c3c89361 50 virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, std::string& unhashed, std::string& before, std::string& after);
81b39e4b 51 bool updateDNSSECOrderAndAuth(uint32_t domain_id, const std::string& zonename, const std::string& qname, bool auth);
5c3bf2db 52 virtual bool updateDNSSECOrderAndAuthAbsolute(uint32_t domain_id, const std::string& qname, const std::string& ordername, bool auth);
c2df797e 53 virtual bool nullifyDNSSECOrderNameAndUpdateAuth(uint32_t domain_id, const std::string& qname, bool auth);
27045410 54 virtual bool nullifyDNSSECOrderNameAndAuth(uint32_t domain_id, const std::string& qname, const std::string& type);
c2df797e 55 virtual bool setDNSSECAuthOnDsRecord(uint32_t domain_id, const std::string& qname);
b5baefaf 56 virtual bool updateEmptyNonTerminals(uint32_t domain_id, const std::string& zonename, set<string>& insert ,set<string>& erase, bool remove);
ece45ffb 57 virtual bool doesDNSSEC();
5c3bf2db 58
d07fc616
PD
59 virtual bool calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial);
60
8bbb6f36 61 bool replaceRRSet(uint32_t domain_id, const string& qname, const QType& qt, const vector<DNSResourceRecord>& rrset);
6a323f63 62 bool listSubZone(const string &zone, int domain_id);
c0273500
BH
63 int addDomainKey(const string& name, const KeyData& key);
64 bool getDomainKeys(const string& name, unsigned int kind, std::vector<KeyData>& keys);
65 bool getDomainMetadata(const string& name, const std::string& kind, std::vector<std::string>& meta);
66 bool setDomainMetadata(const string& name, const std::string& kind, const std::vector<std::string>& meta);
09d6667a 67 bool clearDomainAllMetadata(const string& domain);
4496f66f
BH
68
69 bool removeDomainKey(const string& name, unsigned int id);
70 bool activateDomainKey(const string& name, unsigned int id);
71 bool deactivateDomainKey(const string& name, unsigned int id);
72
78bcb858 73 bool getTSIGKey(const string& name, string* algorithm, string* content);
9a72349d
AT
74 bool setTSIGKey(const string& name, const string& algorithm, const string& content);
75 bool deleteTSIGKey(const string& name);
76 bool getTSIGKeys(std::vector< struct TSIGKey > &keys);
77
b4ce8b4e
BH
78private:
79 string d_qname;
b4ce8b4e
BH
80 SSql *d_db;
81 SSql::result_t d_result;
82
83 string d_wildCardNoIDQuery;
84 string d_noWildCardNoIDQuery;
85 string d_noWildCardIDQuery;
86 string d_wildCardIDQuery;
87 string d_wildCardANYNoIDQuery;
88 string d_noWildCardANYNoIDQuery;
89 string d_noWildCardANYIDQuery;
90 string d_wildCardANYIDQuery;
91 string d_listQuery;
92 string d_logprefix;
770e6a9c 93
36d772ab
BH
94 string d_MasterOfDomainsZoneQuery;
95 string d_InfoOfDomainsZoneQuery;
96 string d_InfoOfAllSlaveDomainsQuery;
97 string d_SuperMasterInfoQuery;
5805615b
AT
98 string d_GetSuperMasterName;
99 string d_GetSuperMasterIPs;
100
487cf033 101 string d_InsertZoneQuery;
36d772ab
BH
102 string d_InsertSlaveZoneQuery;
103 string d_InsertRecordQuery;
f9cf6d92
KM
104 string d_InsertEntQuery;
105 string d_InsertRecordOrderQuery;
106 string d_InsertEntOrderQuery;
c02f13ef
CH
107 string d_UpdateMasterOfZoneQuery;
108 string d_UpdateKindOfZoneQuery;
36d772ab
BH
109 string d_UpdateSerialOfZoneQuery;
110 string d_UpdateLastCheckofZoneQuery;
111 string d_InfoOfAllMasterDomainsQuery;
09d6667a
CH
112 string d_DeleteDomainQuery;
113 string d_DeleteZoneQuery;
87e85d73 114 string d_DeleteRRSet;
d07fc616 115 string d_ZoneLastChangeQuery;
770e6a9c 116
5697411b 117 string d_firstOrderQuery;
136efa2f
BH
118 string d_beforeOrderQuery;
119 string d_afterOrderQuery;
bc74a078 120 string d_lastOrderQuery;
136efa2f 121 string d_setOrderAuthQuery;
c2df797e 122 string d_nullifyOrderNameAndUpdateAuthQuery;
27045410 123 string d_nullifyOrderNameAndAuthQuery;
e3dc2b56 124 string d_nullifyOrderNameAndAuthENTQuery;
c2df797e 125 string d_setAuthOnDsRecordQuery;
b5baefaf
PD
126 string d_removeEmptyNonTerminalsFromZoneQuery;
127 string d_insertEmptyNonTerminalQuery;
128 string d_deleteEmptyNonTerminalQuery;
136efa2f 129
c0273500
BH
130 string d_AddDomainKeyQuery;
131 string d_ListDomainKeysQuery;
132 string d_GetDomainMetadataQuery;
f7bcc763 133 string d_ClearDomainMetadataQuery;
09d6667a 134 string d_ClearDomainAllMetadataQuery;
c0273500 135 string d_SetDomainMetadataQuery;
4496f66f
BH
136
137 string d_RemoveDomainKeyQuery;
138 string d_ActivateDomainKeyQuery;
139 string d_DeactivateDomainKeyQuery;
09d6667a 140 string d_ClearDomainAllKeysQuery;
770e6a9c 141
78bcb858 142 string d_getTSIGKeyQuery;
9a72349d
AT
143 string d_setTSIGKeyQuery;
144 string d_deleteTSIGKeyQuery;
145 string d_getTSIGKeysQuery;
1325e8a2
PD
146
147 string d_getAllDomainsQuery;
148
770e6a9c 149protected:
136efa2f 150 bool d_dnssecQueries;
b4ce8b4e 151};