4
4
#include < glob.h>
5
5
6
6
pthread_rwlock_t GeoIPBackend::s_state_lock=PTHREAD_RWLOCK_INITIALIZER;
7
+ typedef map<string, string> service_map_t ;
8
+ typedef map<string, vector<DNSResourceRecord> > record_map_t ;
7
9
8
10
class GeoIPDomain {
9
11
public:
10
12
int id;
11
13
string domain;
12
14
int ttl;
13
- map<string, string> services;
14
- map<string, vector<DNSResourceRecord> > records;
15
+ service_map_t services;
16
+ record_map_t records;
15
17
};
16
18
17
19
static vector<GeoIPDomain> s_domains;
@@ -129,10 +131,10 @@ void GeoIPBackend::initialize() {
129
131
}
130
132
131
133
// rectify the zone, first static records
132
- for ( auto &item : dom.records ) {
134
+ BOOST_FOREACH ( record_map_t ::value_type& item, dom.records ) {
133
135
// ensure we have parent in records
134
- DNSName name = item.first ;
135
- while (name. chopOff () && name. isPartOf ( dom.domain )) {
136
+ string name = item.first ;
137
+ while (chopOff (name ) && endsOn (name, dom.domain )) {
136
138
if (dom.records .find (name) == dom.records .end ()) {
137
139
DNSResourceRecord rr;
138
140
vector<DNSResourceRecord> rrs;
@@ -150,10 +152,10 @@ void GeoIPBackend::initialize() {
150
152
}
151
153
152
154
// then services
153
- for ( auto &item : dom.services ) {
155
+ BOOST_FOREACH ( service_map_t ::value_type& item, dom.services ) {
154
156
// ensure we have parent in records
155
- DNSName name = item.first ;
156
- while (name. chopOff () && name. isPartOf ( dom.domain )) {
157
+ string name = item.first ;
158
+ while (chopOff (name ) && endsOn (name, dom.domain )) {
157
159
if (dom.records .find (name) == dom.records .end ()) {
158
160
DNSResourceRecord rr;
159
161
vector<DNSResourceRecord> rrs;
@@ -245,7 +247,7 @@ void GeoIPBackend::lookup(const QType &qtype, const string &qdomain, DNSPacket *
245
247
246
248
// see if the record can be found
247
249
if (dom.records .count (format)) { // return static value
248
- map<DNSName, vector<DNSResourceRecord> > ::iterator i = dom.records .find (format);
250
+ record_map_t ::iterator i = dom.records .find (format);
249
251
BOOST_FOREACH (DNSResourceRecord rr, i->second ) {
250
252
if (qtype == QType::ANY || rr.qtype == qtype) {
251
253
rr.scopeMask = (v6 ? 128 : 32 );
0 commit comments