if(dk.getTSIGForAccess(di.zone, sr.master, &dni.tsigkeyname)) {
string secret64;
- B->getTSIGKey(dni.tsigkeyname, &dni.tsigalgname, &secret64);
- B64Decode(secret64, dni.tsigsecret);
+ if(!B->getTSIGKey(dni.tsigkeyname, &dni.tsigalgname, &secret64)) {
+ L<<Logger::Error<<"TSIG key '"<<dni.tsigkeyname<<"' for domain '"<<di.zone<<"' not found, can not AXFR."<<endl;
+ continue;
+ }
+ if (B64Decode(secret64, dni.tsigsecret) == -1) {
+ L<<Logger::Error<<"Unable to Base-64 decode TSIG key '"<<dni.tsigkeyname<<"' for domain '"<<di.zone<<"', can not AXFR."<<endl;
+ continue;
+ }
}
localaddr.clear();