}
uint16_t Resolver::sendResolve(const ComboAddress& remote, const ComboAddress& local,
- const char *domain, int type, bool dnssecOK,
- const string& tsigkeyname, const string& tsigalgorithm,
+ const char *domain, int type, bool dnssecOK,
+ const string& tsigkeyname, const string& tsigalgorithm,
const string& tsigsecret)
{
uint16_t randomid;
vector<uint8_t> packet;
DNSPacketWriter pw(packet, domain, type);
pw.getHeader()->id = randomid = dns_random(0xffff);
-
+
if(dnssecOK) {
pw.addOpt(2800, 0, EDNSOpts::DNSSECOK);
pw.commit();
}
-
+
if(!tsigkeyname.empty()) {
// cerr<<"Adding TSIG to notification, key name: '"<<tsigkeyname<<"', algo: '"<<tsigalgorithm<<"', secret: "<<Base64Encode(tsigsecret)<<endl;
TSIGRecordContent trc;
trc.d_eRcode=0;
addTSIG(pw, &trc, tsigkeyname, tsigsecret, "", false);
}
-
+
int sock;
// choose socket based on local
if (local.sin4.sin_family == 0) {
- // up to us.
- sock = remote.sin4.sin_family == AF_INET ? locals["default4"] : locals["default6"];
+ // up to us.
+ sock = remote.sin4.sin_family == AF_INET ? locals["default4"] : locals["default6"];
} else {
- std::string lstr = local.toString();
- std::map<std::string, int>::iterator lptr;
- // see if there is a local
-
- if ((lptr = locals.find(lstr)) != locals.end()) {
- sock = lptr->second;
- } else {
- // try to make socket
- sock = makeQuerySocket(local, true);
- Utility::setNonBlocking( sock );
- locals[lstr] = sock;
- }
+ std::string lstr = local.toString();
+ std::map<std::string, int>::iterator lptr;
+ // see if there is a local
+
+ if ((lptr = locals.find(lstr)) != locals.end()) {
+ sock = lptr->second;
+ } else {
+ // try to make socket
+ sock = makeQuerySocket(local, true);
+ Utility::setNonBlocking( sock );
+ locals[lstr] = sock;
+ }
}
-
+
if(sendto(sock, &packet[0], packet.size(), 0, (struct sockaddr*)(&remote), remote.getSocklen()) < 0) {
throw ResolverException("Unable to ask query of "+remote.toStringWithPort()+": "+stringerror());
}
}
if (poll(fds, i, 250) < 1) { // wait for 0.25s
- delete [] fds;
- return false;
+ delete [] fds;
+ return false;
}
sock = -1;
}
delete [] fds;
-
+
if (sock < 0) return false; // false alarm
-
+
int err;
ComboAddress fromaddr;
socklen_t addrlen=fromaddr.getSocklen();
// choose socket based on local
if (local.sin4.sin_family == 0) {
- // up to us.
- sock = to.sin4.sin_family == AF_INET ? locals["default4"] : locals["default6"];
+ // up to us.
+ sock = to.sin4.sin_family == AF_INET ? locals["default4"] : locals["default6"];
} else {
- std::string lstr = local.toString();
- std::map<std::string, int>::iterator lptr;
- // see if there is a local
+ std::string lstr = local.toString();
+ std::map<std::string, int>::iterator lptr;
+ // see if there is a local
- if ((lptr = locals.find(lstr)) != locals.end()) sock = lptr->second;
- else throw ResolverException("sendResolve did not create socket for " + lstr);
+ if ((lptr = locals.find(lstr)) != locals.end()) sock = lptr->second;
+ else throw ResolverException("sendResolve did not create socket for " + lstr);
}
int err=waitForData(sock, 0, 3000000);
esac
if [ "$skiplua" == "1" ]; then
- skipreasons="$skipreasons nolua"
+ skipreasons="$skipreasons nolua"
fi
check_process
-e "INSERT INTO tsigkeys (name, algorithm,secret) VALUES('test', '$ALGORITHM', '$KEY')"
mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" "$GMYSQL2DB" \
-e "INSERT INTO domainmetadata (domain_id, kind, content) SELECT id, 'AXFR-MASTER-TSIG', 'test' FROM domains WHERE name = 'tsig.com'"
- echo $skipreasons | grep -q nolua
- if [ $? -ne 0 ]; then
+ echo $skipreasons | grep -q nolua
+ if [ $? -ne 0 ]; then
mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" "$GMYSQL2DB" \
- -e "INSERT INTO domainmetadata (domain_id,kind,content) SELECT id,'AXFR-SOURCE','127.0.0.2' FROM domains WHERE name = 'stest.com'"
+ -e "INSERT INTO domainmetadata (domain_id,kind,content) SELECT id,'AXFR-SOURCE','127.0.0.2' FROM domains WHERE name = 'stest.com'"
fi
fi
set -e
if [ $? -ne 0 ]; then
sqlite3 pdns.sqlite31 "INSERT INTO tsigkeys (name,algorithm,secret) VALUES('test','$ALGORITHM', '$KEY')"
sqlite3 pdns.sqlite31 "INSERT INTO domainmetadata (domain_id, kind, content) SELECT id, 'AXFR-MASTER-TSIG', 'test' FROM domains WHERE name = 'tsig.com'"
- echo $skipreasons | grep -q nolua
- if [ $? -ne 0 ]; then
- sqlite3 pdns.sqlite31 "INSERT INTO domainmetadata (domain_id,kind,content) SELECT id,'AXFR-SOURCE','127.0.0.2' FROM domains WHERE name = 'stest.com'"
- fi
+ echo $skipreasons | grep -q nolua
+ if [ $? -ne 0 ]; then
+ sqlite3 pdns.sqlite31 "INSERT INTO domainmetadata (domain_id,kind,content) SELECT id,'AXFR-SOURCE','127.0.0.2' FROM domains WHERE name = 'stest.com'"
+ fi
fi
set -e
if [ $? -ne 0 ]; then
sqlite3 dnssec-slave.sqlite3 "INSERT INTO tsigkeys (name, algorithm,secret) VALUES('test', '$ALGORITHM', '$KEY')"
sqlite3 dnssec-slave.sqlite3 "INSERT INTO domainmetadata (domain, kind, content) SELECT 'tsig.com', 'AXFR-MASTER-TSIG', 'test'"
- echo $skipreasons | grep -q nolua
- if [ $? -ne 0 ]; then
- sqlite3 dnssec-slave.sqlite3 "INSERT INTO domainmetadata (domain,kind,content) SELECT 'stest.com','AXFR-SOURCE','127.0.0.2'"
- fi
+ echo $skipreasons | grep -q nolua
+ if [ $? -ne 0 ]; then
+ sqlite3 dnssec-slave.sqlite3 "INSERT INTO domainmetadata (domain,kind,content) SELECT 'stest.com','AXFR-SOURCE','127.0.0.2'"
+ fi
fi
set -e