]>
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); |
c02f13ef CH |
46 | bool setMaster(const string &domain, const string &ip); |
47 | bool setKind(const string &domain, const DomainInfo::DomainKind kind); | |
48 | ||
c3c89361 | 49 | virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string& qname, std::string& unhashed, std::string& before, std::string& after); |
81b39e4b | 50 | bool updateDNSSECOrderAndAuth(uint32_t domain_id, const std::string& zonename, const std::string& qname, bool auth); |
5c3bf2db | 51 | virtual bool updateDNSSECOrderAndAuthAbsolute(uint32_t domain_id, const std::string& qname, const std::string& ordername, bool auth); |
c2df797e | 52 | virtual bool nullifyDNSSECOrderNameAndUpdateAuth(uint32_t domain_id, const std::string& qname, bool auth); |
27045410 | 53 | virtual bool nullifyDNSSECOrderNameAndAuth(uint32_t domain_id, const std::string& qname, const std::string& type); |
c2df797e | 54 | virtual bool setDNSSECAuthOnDsRecord(uint32_t domain_id, const std::string& qname); |
b5baefaf | 55 | virtual bool updateEmptyNonTerminals(uint32_t domain_id, const std::string& zonename, set<string>& insert ,set<string>& erase, bool remove); |
ece45ffb | 56 | virtual bool doesDNSSEC(); |
5c3bf2db | 57 | |
d07fc616 PD |
58 | virtual bool calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial); |
59 | ||
8bbb6f36 | 60 | bool replaceRRSet(uint32_t domain_id, const string& qname, const QType& qt, const vector<DNSResourceRecord>& rrset); |
6a323f63 | 61 | bool listSubZone(const string &zone, int domain_id); |
c0273500 BH |
62 | int addDomainKey(const string& name, const KeyData& key); |
63 | bool getDomainKeys(const string& name, unsigned int kind, std::vector<KeyData>& keys); | |
64 | bool getDomainMetadata(const string& name, const std::string& kind, std::vector<std::string>& meta); | |
65 | bool setDomainMetadata(const string& name, const std::string& kind, const std::vector<std::string>& meta); | |
4496f66f BH |
66 | |
67 | bool removeDomainKey(const string& name, unsigned int id); | |
68 | bool activateDomainKey(const string& name, unsigned int id); | |
69 | bool deactivateDomainKey(const string& name, unsigned int id); | |
70 | ||
78bcb858 | 71 | bool getTSIGKey(const string& name, string* algorithm, string* content); |
9a72349d AT |
72 | bool setTSIGKey(const string& name, const string& algorithm, const string& content); |
73 | bool deleteTSIGKey(const string& name); | |
74 | bool getTSIGKeys(std::vector< struct TSIGKey > &keys); | |
75 | ||
b4ce8b4e BH |
76 | private: |
77 | string d_qname; | |
78 | QType d_qtype; | |
79 | int d_count; | |
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; | |
36d772ab BH |
93 | |
94 | string d_MasterOfDomainsZoneQuery; | |
95 | string d_InfoOfDomainsZoneQuery; | |
96 | string d_InfoOfAllSlaveDomainsQuery; | |
97 | string d_SuperMasterInfoQuery; | |
487cf033 | 98 | string d_InsertZoneQuery; |
36d772ab BH |
99 | string d_InsertSlaveZoneQuery; |
100 | string d_InsertRecordQuery; | |
f9cf6d92 KM |
101 | string d_InsertEntQuery; |
102 | string d_InsertRecordOrderQuery; | |
103 | string d_InsertEntOrderQuery; | |
c02f13ef CH |
104 | string d_UpdateMasterOfZoneQuery; |
105 | string d_UpdateKindOfZoneQuery; | |
36d772ab BH |
106 | string d_UpdateSerialOfZoneQuery; |
107 | string d_UpdateLastCheckofZoneQuery; | |
108 | string d_InfoOfAllMasterDomainsQuery; | |
66dba9d7 | 109 | string d_DeleteZoneQuery; |
87e85d73 | 110 | string d_DeleteRRSet; |
d07fc616 | 111 | string d_ZoneLastChangeQuery; |
136efa2f | 112 | |
5697411b | 113 | string d_firstOrderQuery; |
136efa2f BH |
114 | string d_beforeOrderQuery; |
115 | string d_afterOrderQuery; | |
bc74a078 | 116 | string d_lastOrderQuery; |
136efa2f | 117 | string d_setOrderAuthQuery; |
c2df797e | 118 | string d_nullifyOrderNameAndUpdateAuthQuery; |
27045410 | 119 | string d_nullifyOrderNameAndAuthQuery; |
e3dc2b56 | 120 | string d_nullifyOrderNameAndAuthENTQuery; |
c2df797e | 121 | string d_setAuthOnDsRecordQuery; |
b5baefaf PD |
122 | string d_removeEmptyNonTerminalsFromZoneQuery; |
123 | string d_insertEmptyNonTerminalQuery; | |
124 | string d_deleteEmptyNonTerminalQuery; | |
136efa2f | 125 | |
c0273500 BH |
126 | string d_AddDomainKeyQuery; |
127 | string d_ListDomainKeysQuery; | |
128 | string d_GetDomainMetadataQuery; | |
f7bcc763 | 129 | string d_ClearDomainMetadataQuery; |
c0273500 | 130 | string d_SetDomainMetadataQuery; |
4496f66f BH |
131 | |
132 | string d_RemoveDomainKeyQuery; | |
133 | string d_ActivateDomainKeyQuery; | |
134 | string d_DeactivateDomainKeyQuery; | |
78bcb858 BH |
135 | |
136 | string d_getTSIGKeyQuery; | |
9a72349d AT |
137 | string d_setTSIGKeyQuery; |
138 | string d_deleteTSIGKeyQuery; | |
139 | string d_getTSIGKeysQuery; | |
1325e8a2 PD |
140 | |
141 | string d_getAllDomainsQuery; | |
142 | ||
136efa2f BH |
143 | protected: |
144 | bool d_dnssecQueries; | |
b4ce8b4e | 145 | }; |