]>
Commit | Line | Data |
---|---|---|
12471842 PL |
1 | /* |
2 | * This file is part of PowerDNS or dnsdist. | |
3 | * Copyright -- PowerDNS.COM B.V. and its contributors | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify | |
6 | * it under the terms of version 2 of the GNU General Public License as | |
7 | * published by the Free Software Foundation. | |
8 | * | |
9 | * In addition, for the avoidance of any doubt, permission is granted to | |
10 | * link this program with OpenSSL and to (re)distribute the binaries | |
11 | * produced as the result of such linking. | |
12 | * | |
13 | * This program is distributed in the hope that it will be useful, | |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | * GNU General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU General Public License | |
19 | * along with this program; if not, write to the Free Software | |
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
21 | */ | |
680f25f8 RK |
22 | #ifndef PDNS_GSQLBACKEND_HH |
23 | #define PDNS_GSQLBACKEND_HH | |
24 | ||
b4ce8b4e BH |
25 | #include <string> |
26 | #include <map> | |
27 | #include "ssql.hh" | |
eb743bba | 28 | #include "pdns/arguments.hh" |
b4ce8b4e | 29 | |
9ad7641b | 30 | #include "pdns/namespaces.hh" |
b4ce8b4e | 31 | |
ad34750d KM |
32 | bool isDnssecDomainMetadata (const string& name); |
33 | ||
1325e8a2 PD |
34 | /* |
35 | GSQLBackend is a generic backend used by other sql backends | |
36 | */ | |
b4ce8b4e BH |
37 | class GSQLBackend : public DNSBackend |
38 | { | |
39 | public: | |
40 | GSQLBackend(const string &mode, const string &suffix); //!< Makes our connection to the database. Throws an exception if it fails. | |
41 | virtual ~GSQLBackend() | |
42 | { | |
0f310932 | 43 | freeStatements(); |
c2826d2e | 44 | d_db.reset(); |
b4ce8b4e BH |
45 | } |
46 | ||
47 | void setDB(SSql *db) | |
48 | { | |
0f310932 | 49 | freeStatements(); |
c2826d2e | 50 | d_db=std::unique_ptr<SSql>(db); |
eb743bba CH |
51 | if (d_db) { |
52 | d_db->setLog(::arg().mustDo("query-logging")); | |
db737018 RG |
53 | allocateStatements(); |
54 | } | |
55 | } | |
56 | ||
57 | void allocateStatements() | |
58 | { | |
59 | if (d_db) { | |
0f310932 AT |
60 | d_NoIdQuery_stmt = d_db->prepare(d_NoIdQuery, 2); |
61 | d_IdQuery_stmt = d_db->prepare(d_IdQuery, 3); | |
62 | d_ANYNoIdQuery_stmt = d_db->prepare(d_ANYNoIdQuery, 1); | |
63 | d_ANYIdQuery_stmt = d_db->prepare(d_ANYIdQuery, 2); | |
64 | d_listQuery_stmt = d_db->prepare(d_listQuery, 2); | |
65 | d_listSubZoneQuery_stmt = d_db->prepare(d_listSubZoneQuery, 3); | |
66 | d_MasterOfDomainsZoneQuery_stmt = d_db->prepare(d_MasterOfDomainsZoneQuery, 1); | |
67 | d_InfoOfDomainsZoneQuery_stmt = d_db->prepare(d_InfoOfDomainsZoneQuery, 1); | |
68 | d_InfoOfAllSlaveDomainsQuery_stmt = d_db->prepare(d_InfoOfAllSlaveDomainsQuery, 0); | |
69 | d_SuperMasterInfoQuery_stmt = d_db->prepare(d_SuperMasterInfoQuery, 2); | |
70 | d_GetSuperMasterIPs_stmt = d_db->prepare(d_GetSuperMasterIPs, 2); | |
aa09fa3b | 71 | d_InsertZoneQuery_stmt = d_db->prepare(d_InsertZoneQuery, 4); |
08536840 | 72 | d_InsertRecordQuery_stmt = d_db->prepare(d_InsertRecordQuery, 9); |
09070ce7 | 73 | d_InsertEmptyNonTerminalOrderQuery_stmt = d_db->prepare(d_InsertEmptyNonTerminalOrderQuery, 4); |
0f310932 AT |
74 | d_UpdateMasterOfZoneQuery_stmt = d_db->prepare(d_UpdateMasterOfZoneQuery, 2); |
75 | d_UpdateKindOfZoneQuery_stmt = d_db->prepare(d_UpdateKindOfZoneQuery, 2); | |
79532aa7 | 76 | d_UpdateAccountOfZoneQuery_stmt = d_db->prepare(d_UpdateAccountOfZoneQuery, 2); |
0f310932 AT |
77 | d_UpdateSerialOfZoneQuery_stmt = d_db->prepare(d_UpdateSerialOfZoneQuery, 2); |
78 | d_UpdateLastCheckofZoneQuery_stmt = d_db->prepare(d_UpdateLastCheckofZoneQuery, 2); | |
79 | d_InfoOfAllMasterDomainsQuery_stmt = d_db->prepare(d_InfoOfAllMasterDomainsQuery, 0); | |
80 | d_DeleteDomainQuery_stmt = d_db->prepare(d_DeleteDomainQuery, 1); | |
81 | d_DeleteZoneQuery_stmt = d_db->prepare(d_DeleteZoneQuery, 1); | |
82 | d_DeleteRRSetQuery_stmt = d_db->prepare(d_DeleteRRSetQuery, 3); | |
83 | d_DeleteNamesQuery_stmt = d_db->prepare(d_DeleteNamesQuery, 2); | |
0f310932 AT |
84 | d_firstOrderQuery_stmt = d_db->prepare(d_firstOrderQuery, 1); |
85 | d_beforeOrderQuery_stmt = d_db->prepare(d_beforeOrderQuery, 2); | |
86 | d_afterOrderQuery_stmt = d_db->prepare(d_afterOrderQuery, 2); | |
87 | d_lastOrderQuery_stmt = d_db->prepare(d_lastOrderQuery, 1); | |
79de0a80 KM |
88 | d_updateOrderNameAndAuthQuery_stmt = d_db->prepare(d_updateOrderNameAndAuthQuery, 4); |
89 | d_updateOrderNameAndAuthTypeQuery_stmt = d_db->prepare(d_updateOrderNameAndAuthTypeQuery, 5); | |
0f310932 | 90 | d_nullifyOrderNameAndUpdateAuthQuery_stmt = d_db->prepare(d_nullifyOrderNameAndUpdateAuthQuery, 3); |
79de0a80 | 91 | d_nullifyOrderNameAndUpdateAuthTypeQuery_stmt = d_db->prepare(d_nullifyOrderNameAndUpdateAuthTypeQuery, 4); |
09070ce7 PL |
92 | d_RemoveEmptyNonTerminalsFromZoneQuery_stmt = d_db->prepare(d_RemoveEmptyNonTerminalsFromZoneQuery, 1); |
93 | d_DeleteEmptyNonTerminalQuery_stmt = d_db->prepare(d_DeleteEmptyNonTerminalQuery, 2); | |
0f310932 | 94 | d_AddDomainKeyQuery_stmt = d_db->prepare(d_AddDomainKeyQuery, 4); |
63de5311 | 95 | d_GetLastInsertedKeyIdQuery_stmt = d_db->prepare(d_GetLastInsertedKeyIdQuery, 0); |
0f310932 AT |
96 | d_ListDomainKeysQuery_stmt = d_db->prepare(d_ListDomainKeysQuery, 1); |
97 | d_GetAllDomainMetadataQuery_stmt = d_db->prepare(d_GetAllDomainMetadataQuery, 1); | |
98 | d_GetDomainMetadataQuery_stmt = d_db->prepare(d_GetDomainMetadataQuery, 2); | |
99 | d_ClearDomainMetadataQuery_stmt = d_db->prepare(d_ClearDomainMetadataQuery, 2); | |
100 | d_ClearDomainAllMetadataQuery_stmt = d_db->prepare(d_ClearDomainAllMetadataQuery, 1); | |
101 | d_SetDomainMetadataQuery_stmt = d_db->prepare(d_SetDomainMetadataQuery, 3); | |
102 | d_RemoveDomainKeyQuery_stmt = d_db->prepare(d_RemoveDomainKeyQuery, 2); | |
103 | d_ActivateDomainKeyQuery_stmt = d_db->prepare(d_ActivateDomainKeyQuery, 2); | |
104 | d_DeactivateDomainKeyQuery_stmt = d_db->prepare(d_DeactivateDomainKeyQuery, 2); | |
105 | d_ClearDomainAllKeysQuery_stmt = d_db->prepare(d_ClearDomainAllKeysQuery, 1); | |
106 | d_getTSIGKeyQuery_stmt = d_db->prepare(d_getTSIGKeyQuery, 1); | |
107 | d_setTSIGKeyQuery_stmt = d_db->prepare(d_setTSIGKeyQuery, 3); | |
108 | d_deleteTSIGKeyQuery_stmt = d_db->prepare(d_deleteTSIGKeyQuery, 1); | |
109 | d_getTSIGKeysQuery_stmt = d_db->prepare(d_getTSIGKeysQuery, 0); | |
110 | d_getAllDomainsQuery_stmt = d_db->prepare(d_getAllDomainsQuery, 1); | |
111 | d_ListCommentsQuery_stmt = d_db->prepare(d_ListCommentsQuery, 1); | |
112 | d_InsertCommentQuery_stmt = d_db->prepare(d_InsertCommentQuery, 6); | |
113 | d_DeleteCommentRRsetQuery_stmt = d_db->prepare(d_DeleteCommentRRsetQuery, 3); | |
114 | d_DeleteCommentsQuery_stmt = d_db->prepare(d_DeleteCommentsQuery, 1); | |
474cacfa AT |
115 | d_SearchRecordsQuery_stmt = d_db->prepare(d_SearchRecordsQuery, 3); |
116 | d_SearchCommentsQuery_stmt = d_db->prepare(d_SearchCommentsQuery, 3); | |
eb743bba | 117 | } |
b4ce8b4e | 118 | } |
0f310932 | 119 | |
0f310932 | 120 | void freeStatements() { |
a59a9c23 AT |
121 | d_NoIdQuery_stmt.reset(); |
122 | d_IdQuery_stmt.reset(); | |
123 | d_ANYNoIdQuery_stmt.reset(); | |
124 | d_ANYIdQuery_stmt.reset(); | |
125 | d_listQuery_stmt.reset(); | |
126 | d_listSubZoneQuery_stmt.reset(); | |
127 | d_MasterOfDomainsZoneQuery_stmt.reset(); | |
128 | d_InfoOfDomainsZoneQuery_stmt.reset(); | |
129 | d_InfoOfAllSlaveDomainsQuery_stmt.reset(); | |
130 | d_SuperMasterInfoQuery_stmt.reset(); | |
131 | d_GetSuperMasterIPs_stmt.reset(); | |
132 | d_InsertZoneQuery_stmt.reset(); | |
133 | d_InsertRecordQuery_stmt.reset(); | |
134 | d_InsertEmptyNonTerminalOrderQuery_stmt.reset(); | |
135 | d_UpdateMasterOfZoneQuery_stmt.reset(); | |
136 | d_UpdateKindOfZoneQuery_stmt.reset(); | |
137 | d_UpdateAccountOfZoneQuery_stmt.reset(); | |
138 | d_UpdateSerialOfZoneQuery_stmt.reset(); | |
139 | d_UpdateLastCheckofZoneQuery_stmt.reset(); | |
140 | d_InfoOfAllMasterDomainsQuery_stmt.reset(); | |
141 | d_DeleteDomainQuery_stmt.reset(); | |
142 | d_DeleteZoneQuery_stmt.reset(); | |
143 | d_DeleteRRSetQuery_stmt.reset(); | |
144 | d_DeleteNamesQuery_stmt.reset(); | |
a59a9c23 AT |
145 | d_firstOrderQuery_stmt.reset(); |
146 | d_beforeOrderQuery_stmt.reset(); | |
147 | d_afterOrderQuery_stmt.reset(); | |
148 | d_lastOrderQuery_stmt.reset(); | |
149 | d_updateOrderNameAndAuthQuery_stmt.reset(); | |
150 | d_updateOrderNameAndAuthTypeQuery_stmt.reset(); | |
151 | d_nullifyOrderNameAndUpdateAuthQuery_stmt.reset(); | |
152 | d_nullifyOrderNameAndUpdateAuthTypeQuery_stmt.reset(); | |
153 | d_RemoveEmptyNonTerminalsFromZoneQuery_stmt.reset(); | |
154 | d_DeleteEmptyNonTerminalQuery_stmt.reset(); | |
155 | d_AddDomainKeyQuery_stmt.reset(); | |
156 | d_GetLastInsertedKeyIdQuery_stmt.reset(); | |
157 | d_ListDomainKeysQuery_stmt.reset(); | |
158 | d_GetAllDomainMetadataQuery_stmt.reset(); | |
159 | d_GetDomainMetadataQuery_stmt.reset(); | |
160 | d_ClearDomainMetadataQuery_stmt.reset(); | |
161 | d_ClearDomainAllMetadataQuery_stmt.reset(); | |
162 | d_SetDomainMetadataQuery_stmt.reset(); | |
163 | d_RemoveDomainKeyQuery_stmt.reset(); | |
164 | d_ActivateDomainKeyQuery_stmt.reset(); | |
165 | d_DeactivateDomainKeyQuery_stmt.reset(); | |
166 | d_ClearDomainAllKeysQuery_stmt.reset(); | |
167 | d_getTSIGKeyQuery_stmt.reset(); | |
168 | d_setTSIGKeyQuery_stmt.reset(); | |
169 | d_deleteTSIGKeyQuery_stmt.reset(); | |
170 | d_getTSIGKeysQuery_stmt.reset(); | |
171 | d_getAllDomainsQuery_stmt.reset(); | |
172 | d_ListCommentsQuery_stmt.reset(); | |
173 | d_InsertCommentQuery_stmt.reset(); | |
174 | d_DeleteCommentRRsetQuery_stmt.reset(); | |
175 | d_DeleteCommentsQuery_stmt.reset(); | |
176 | d_SearchRecordsQuery_stmt.reset(); | |
177 | d_SearchCommentsQuery_stmt.reset(); | |
0f310932 AT |
178 | } |
179 | ||
acb61e0a | 180 | void lookup(const QType &, const DNSName &qdomain, int zoneId, DNSPacket *p=nullptr) override; |
d57d7155 KM |
181 | bool list(const DNSName &target, int domain_id, bool include_disabled=false) override; |
182 | bool get(DNSResourceRecord &r) override; | |
183 | void getAllDomains(vector<DomainInfo> *domains, bool include_disabled=false) override; | |
d57d7155 KM |
184 | void alsoNotifies(const DNSName &domain, set<string> *ips) override; |
185 | bool startTransaction(const DNSName &domain, int domain_id=-1) override; | |
186 | bool commitTransaction() override; | |
187 | bool abortTransaction() override; | |
3bb3f561 | 188 | bool feedRecord(const DNSResourceRecord &r, const DNSName &ordername, bool ordernameIsNSEC3=false) override; |
d57d7155 KM |
189 | bool feedEnts(int domain_id, map<DNSName,bool>& nonterm) override; |
190 | bool feedEnts3(int domain_id, const DNSName &domain, map<DNSName,bool> &nonterm, const NSEC3PARAMRecordContent& ns3prc, bool narrow) override; | |
191 | bool createDomain(const DNSName &domain) override { | |
aa09fa3b PL |
192 | return createDomain(domain, "NATIVE", "", ""); |
193 | }; | |
d57d7155 KM |
194 | bool createSlaveDomain(const string &ip, const DNSName &domain, const string &nameserver, const string &account) override; |
195 | bool deleteDomain(const DNSName &domain) override; | |
196 | bool superMasterBackend(const string &ip, const DNSName &domain, const vector<DNSResourceRecord>&nsset, string *nameserver, string *account, DNSBackend **db) override; | |
197 | void setFresh(uint32_t domain_id) override; | |
198 | void getUnfreshSlaveInfos(vector<DomainInfo> *domains) override; | |
199 | void getUpdatedMasters(vector<DomainInfo> *updatedDomains) override; | |
47bddbb7 | 200 | bool getDomainInfo(const DNSName &domain, DomainInfo &di, bool getSerial=true) override; |
d57d7155 KM |
201 | void setNotified(uint32_t domain_id, uint32_t serial) override; |
202 | bool setMaster(const DNSName &domain, const string &ip) override; | |
203 | bool setKind(const DNSName &domain, const DomainInfo::DomainKind kind) override; | |
204 | bool setAccount(const DNSName &domain, const string &account) override; | |
c02f13ef | 205 | |
d57d7155 KM |
206 | bool getBeforeAndAfterNamesAbsolute(uint32_t id, const DNSName& qname, DNSName& unhashed, DNSName& before, DNSName& after) override; |
207 | bool updateDNSSECOrderNameAndAuth(uint32_t domain_id, const DNSName& qname, const DNSName& ordername, bool auth, const uint16_t=QType::ANY) override; | |
79de0a80 | 208 | |
d57d7155 KM |
209 | bool updateEmptyNonTerminals(uint32_t domain_id, set<DNSName>& insert ,set<DNSName>& erase, bool remove) override; |
210 | bool doesDNSSEC() override; | |
5c3bf2db | 211 | |
d57d7155 KM |
212 | bool replaceRRSet(uint32_t domain_id, const DNSName& qname, const QType& qt, const vector<DNSResourceRecord>& rrset) override; |
213 | bool listSubZone(const DNSName &zone, int domain_id) override; | |
214 | bool addDomainKey(const DNSName& name, const KeyData& key, int64_t& id) override; | |
215 | bool getDomainKeys(const DNSName& name, std::vector<KeyData>& keys) override; | |
216 | bool getAllDomainMetadata(const DNSName& name, std::map<std::string, std::vector<std::string> >& meta) override; | |
217 | bool getDomainMetadata(const DNSName& name, const std::string& kind, std::vector<std::string>& meta) override; | |
218 | bool setDomainMetadata(const DNSName& name, const std::string& kind, const std::vector<std::string>& meta) override; | |
4496f66f | 219 | |
d57d7155 KM |
220 | bool removeDomainKey(const DNSName& name, unsigned int id) override; |
221 | bool activateDomainKey(const DNSName& name, unsigned int id) override; | |
222 | bool deactivateDomainKey(const DNSName& name, unsigned int id) override; | |
4496f66f | 223 | |
d57d7155 KM |
224 | bool getTSIGKey(const DNSName& name, DNSName* algorithm, string* content) override; |
225 | bool setTSIGKey(const DNSName& name, const DNSName& algorithm, const string& content) override; | |
226 | bool deleteTSIGKey(const DNSName& name) override; | |
227 | bool getTSIGKeys(std::vector< struct TSIGKey > &keys) override; | |
9a72349d | 228 | |
d57d7155 KM |
229 | bool listComments(const uint32_t domain_id) override; |
230 | bool getComment(Comment& comment) override; | |
231 | void feedComment(const Comment& comment) override; | |
232 | bool replaceComments(const uint32_t domain_id, const DNSName& qname, const QType& qt, const vector<Comment>& comments) override; | |
233 | string directBackendCmd(const string &query) override; | |
234 | bool searchRecords(const string &pattern, int maxResults, vector<DNSResourceRecord>& result) override; | |
235 | bool searchComments(const string &pattern, int maxResults, vector<Comment>& result) override; | |
512eafef | 236 | |
474cacfa | 237 | protected: |
d57d7155 | 238 | bool createDomain(const DNSName &domain, const string &type, const string &masters, const string &account); |
474cacfa AT |
239 | string pattern2SQLPattern(const string& pattern); |
240 | void extractRecord(const SSqlStatement::row_t& row, DNSResourceRecord& rr); | |
512ad04f | 241 | void extractComment(const SSqlStatement::row_t& row, Comment& c); |
45d36933 RG |
242 | bool isConnectionUsable() { |
243 | if (d_db) { | |
244 | return d_db->isConnectionUsable(); | |
245 | } | |
246 | return false; | |
247 | } | |
bfa196c0 | 248 | void reconnectIfNeeded() |
45d36933 | 249 | { |
8fc3a46d | 250 | if (inTransaction() || isConnectionUsable()) { |
aacd07ce RG |
251 | return; |
252 | } | |
253 | ||
bfa196c0 RG |
254 | reconnect(); |
255 | } | |
256 | virtual void reconnect() { } | |
257 | virtual bool inTransaction() | |
258 | { | |
259 | return d_inTransaction; | |
45d36933 | 260 | } |
6cc98ddf | 261 | |
b4ce8b4e | 262 | private: |
7c779a31 | 263 | string d_query_name; |
f1d06abf | 264 | DNSName d_qname; |
0f310932 | 265 | SSqlStatement::result_t d_result; |
b4ce8b4e | 266 | |
75f02b56 KM |
267 | string d_NoIdQuery; |
268 | string d_IdQuery; | |
269 | string d_ANYNoIdQuery; | |
270 | string d_ANYIdQuery; | |
271 | ||
b4ce8b4e | 272 | string d_listQuery; |
c69120f2 | 273 | string d_listSubZoneQuery; |
b4ce8b4e | 274 | string d_logprefix; |
770e6a9c | 275 | |
36d772ab BH |
276 | string d_MasterOfDomainsZoneQuery; |
277 | string d_InfoOfDomainsZoneQuery; | |
278 | string d_InfoOfAllSlaveDomainsQuery; | |
279 | string d_SuperMasterInfoQuery; | |
5805615b AT |
280 | string d_GetSuperMasterName; |
281 | string d_GetSuperMasterIPs; | |
282 | ||
487cf033 | 283 | string d_InsertZoneQuery; |
36d772ab | 284 | string d_InsertRecordQuery; |
09070ce7 | 285 | string d_InsertEmptyNonTerminalOrderQuery; |
c02f13ef CH |
286 | string d_UpdateMasterOfZoneQuery; |
287 | string d_UpdateKindOfZoneQuery; | |
79532aa7 | 288 | string d_UpdateAccountOfZoneQuery; |
36d772ab BH |
289 | string d_UpdateSerialOfZoneQuery; |
290 | string d_UpdateLastCheckofZoneQuery; | |
291 | string d_InfoOfAllMasterDomainsQuery; | |
09d6667a CH |
292 | string d_DeleteDomainQuery; |
293 | string d_DeleteZoneQuery; | |
98d47e2e CH |
294 | string d_DeleteRRSetQuery; |
295 | string d_DeleteNamesQuery; | |
770e6a9c | 296 | |
5697411b | 297 | string d_firstOrderQuery; |
136efa2f BH |
298 | string d_beforeOrderQuery; |
299 | string d_afterOrderQuery; | |
bc74a078 | 300 | string d_lastOrderQuery; |
79de0a80 KM |
301 | |
302 | string d_updateOrderNameAndAuthQuery; | |
303 | string d_updateOrderNameAndAuthTypeQuery; | |
c2df797e | 304 | string d_nullifyOrderNameAndUpdateAuthQuery; |
79de0a80 KM |
305 | string d_nullifyOrderNameAndUpdateAuthTypeQuery; |
306 | ||
09070ce7 PL |
307 | string d_RemoveEmptyNonTerminalsFromZoneQuery; |
308 | string d_DeleteEmptyNonTerminalQuery; | |
136efa2f | 309 | |
c0273500 | 310 | string d_AddDomainKeyQuery; |
63de5311 | 311 | string d_GetLastInsertedKeyIdQuery; |
c0273500 | 312 | string d_ListDomainKeysQuery; |
df0cc941 | 313 | string d_GetAllDomainMetadataQuery; |
c0273500 | 314 | string d_GetDomainMetadataQuery; |
f7bcc763 | 315 | string d_ClearDomainMetadataQuery; |
09d6667a | 316 | string d_ClearDomainAllMetadataQuery; |
c0273500 | 317 | string d_SetDomainMetadataQuery; |
4496f66f BH |
318 | |
319 | string d_RemoveDomainKeyQuery; | |
320 | string d_ActivateDomainKeyQuery; | |
321 | string d_DeactivateDomainKeyQuery; | |
09d6667a | 322 | string d_ClearDomainAllKeysQuery; |
770e6a9c | 323 | |
78bcb858 | 324 | string d_getTSIGKeyQuery; |
9a72349d AT |
325 | string d_setTSIGKeyQuery; |
326 | string d_deleteTSIGKeyQuery; | |
327 | string d_getTSIGKeysQuery; | |
1325e8a2 PD |
328 | |
329 | string d_getAllDomainsQuery; | |
330 | ||
6cc98ddf CH |
331 | string d_ListCommentsQuery; |
332 | string d_InsertCommentQuery; | |
333 | string d_DeleteCommentRRsetQuery; | |
334 | string d_DeleteCommentsQuery; | |
335 | ||
474cacfa AT |
336 | string d_SearchRecordsQuery; |
337 | string d_SearchCommentsQuery; | |
338 | ||
a59a9c23 | 339 | unique_ptr<SSqlStatement>* d_query_stmt; |
0f310932 | 340 | |
a59a9c23 AT |
341 | unique_ptr<SSqlStatement> d_NoIdQuery_stmt; |
342 | unique_ptr<SSqlStatement> d_IdQuery_stmt; | |
343 | unique_ptr<SSqlStatement> d_ANYNoIdQuery_stmt; | |
344 | unique_ptr<SSqlStatement> d_ANYIdQuery_stmt; | |
345 | unique_ptr<SSqlStatement> d_listQuery_stmt; | |
346 | unique_ptr<SSqlStatement> d_listSubZoneQuery_stmt; | |
347 | unique_ptr<SSqlStatement> d_MasterOfDomainsZoneQuery_stmt; | |
348 | unique_ptr<SSqlStatement> d_InfoOfDomainsZoneQuery_stmt; | |
349 | unique_ptr<SSqlStatement> d_InfoOfAllSlaveDomainsQuery_stmt; | |
350 | unique_ptr<SSqlStatement> d_SuperMasterInfoQuery_stmt; | |
351 | unique_ptr<SSqlStatement> d_GetSuperMasterIPs_stmt; | |
352 | unique_ptr<SSqlStatement> d_InsertZoneQuery_stmt; | |
353 | unique_ptr<SSqlStatement> d_InsertRecordQuery_stmt; | |
354 | unique_ptr<SSqlStatement> d_InsertEmptyNonTerminalOrderQuery_stmt; | |
355 | unique_ptr<SSqlStatement> d_UpdateMasterOfZoneQuery_stmt; | |
356 | unique_ptr<SSqlStatement> d_UpdateKindOfZoneQuery_stmt; | |
357 | unique_ptr<SSqlStatement> d_UpdateAccountOfZoneQuery_stmt; | |
358 | unique_ptr<SSqlStatement> d_UpdateSerialOfZoneQuery_stmt; | |
359 | unique_ptr<SSqlStatement> d_UpdateLastCheckofZoneQuery_stmt; | |
360 | unique_ptr<SSqlStatement> d_InfoOfAllMasterDomainsQuery_stmt; | |
361 | unique_ptr<SSqlStatement> d_DeleteDomainQuery_stmt; | |
362 | unique_ptr<SSqlStatement> d_DeleteZoneQuery_stmt; | |
363 | unique_ptr<SSqlStatement> d_DeleteRRSetQuery_stmt; | |
364 | unique_ptr<SSqlStatement> d_DeleteNamesQuery_stmt; | |
a59a9c23 AT |
365 | unique_ptr<SSqlStatement> d_firstOrderQuery_stmt; |
366 | unique_ptr<SSqlStatement> d_beforeOrderQuery_stmt; | |
367 | unique_ptr<SSqlStatement> d_afterOrderQuery_stmt; | |
368 | unique_ptr<SSqlStatement> d_lastOrderQuery_stmt; | |
369 | unique_ptr<SSqlStatement> d_updateOrderNameAndAuthQuery_stmt; | |
370 | unique_ptr<SSqlStatement> d_updateOrderNameAndAuthTypeQuery_stmt; | |
371 | unique_ptr<SSqlStatement> d_nullifyOrderNameAndUpdateAuthQuery_stmt; | |
372 | unique_ptr<SSqlStatement> d_nullifyOrderNameAndUpdateAuthTypeQuery_stmt; | |
373 | unique_ptr<SSqlStatement> d_RemoveEmptyNonTerminalsFromZoneQuery_stmt; | |
374 | unique_ptr<SSqlStatement> d_DeleteEmptyNonTerminalQuery_stmt; | |
375 | unique_ptr<SSqlStatement> d_AddDomainKeyQuery_stmt; | |
376 | unique_ptr<SSqlStatement> d_GetLastInsertedKeyIdQuery_stmt; | |
377 | unique_ptr<SSqlStatement> d_ListDomainKeysQuery_stmt; | |
378 | unique_ptr<SSqlStatement> d_GetAllDomainMetadataQuery_stmt; | |
379 | unique_ptr<SSqlStatement> d_GetDomainMetadataQuery_stmt; | |
380 | unique_ptr<SSqlStatement> d_ClearDomainMetadataQuery_stmt; | |
381 | unique_ptr<SSqlStatement> d_ClearDomainAllMetadataQuery_stmt; | |
382 | unique_ptr<SSqlStatement> d_SetDomainMetadataQuery_stmt; | |
383 | unique_ptr<SSqlStatement> d_RemoveDomainKeyQuery_stmt; | |
384 | unique_ptr<SSqlStatement> d_ActivateDomainKeyQuery_stmt; | |
385 | unique_ptr<SSqlStatement> d_DeactivateDomainKeyQuery_stmt; | |
386 | unique_ptr<SSqlStatement> d_ClearDomainAllKeysQuery_stmt; | |
387 | unique_ptr<SSqlStatement> d_getTSIGKeyQuery_stmt; | |
388 | unique_ptr<SSqlStatement> d_setTSIGKeyQuery_stmt; | |
389 | unique_ptr<SSqlStatement> d_deleteTSIGKeyQuery_stmt; | |
390 | unique_ptr<SSqlStatement> d_getTSIGKeysQuery_stmt; | |
391 | unique_ptr<SSqlStatement> d_getAllDomainsQuery_stmt; | |
392 | unique_ptr<SSqlStatement> d_ListCommentsQuery_stmt; | |
393 | unique_ptr<SSqlStatement> d_InsertCommentQuery_stmt; | |
394 | unique_ptr<SSqlStatement> d_DeleteCommentRRsetQuery_stmt; | |
395 | unique_ptr<SSqlStatement> d_DeleteCommentsQuery_stmt; | |
396 | unique_ptr<SSqlStatement> d_SearchRecordsQuery_stmt; | |
397 | unique_ptr<SSqlStatement> d_SearchCommentsQuery_stmt; | |
512eafef | 398 | |
770e6a9c | 399 | protected: |
c2826d2e | 400 | std::unique_ptr<SSql> d_db{nullptr}; |
136efa2f | 401 | bool d_dnssecQueries; |
bfa196c0 | 402 | bool d_inTransaction{false}; |
b4ce8b4e | 403 | }; |
680f25f8 RK |
404 | |
405 | #endif /* PDNS_GSQLBACKEND_HH */ |