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