]>
Commit | Line | Data |
---|---|---|
b4ce8b4e BH |
1 | #include <string> |
2 | #include <map> | |
3 | #include "ssql.hh" | |
4 | ||
10f4eea8 | 5 | #include "../../namespaces.hh" |
b4ce8b4e | 6 | |
1325e8a2 PD |
7 | /* |
8 | GSQLBackend is a generic backend used by other sql backends | |
9 | */ | |
b4ce8b4e BH |
10 | class GSQLBackend : public DNSBackend |
11 | { | |
12 | public: | |
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 |
73 | private: |
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 |
138 | protected: |
139 | bool d_dnssecQueries; | |
b4ce8b4e | 140 | }; |