summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2018-10-09 06:34:27 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2018-10-09 06:34:27 +0200
commite73ce8475e683c62d0335a18788d86ae92a010f0 (patch)
tree25787bcf90668ec82bbe7cb5abb5f7b6b924c2b5
parent08292c8f1fb3c122e92ed13d8c107009c919ada1 (diff)
downloadplan9front-e73ce8475e683c62d0335a18788d86ae92a010f0.tar.xz
ndb/dnstcp: return a proper non-answer when rejecting zone transfer
-rw-r--r--sys/src/cmd/ndb/dnstcp.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/src/cmd/ndb/dnstcp.c b/sys/src/cmd/ndb/dnstcp.c
index 3db74e155..261852655 100644
--- a/sys/src/cmd/ndb/dnstcp.c
+++ b/sys/src/cmd/ndb/dnstcp.c
@@ -299,15 +299,15 @@ dnzone(DNSmsg *reqp, DNSmsg *repp, Request *req, uchar *srcip)
/* send the soa */
repp->an = rrlookup(dp, Tsoa, NOneg);
- reply(1, repp, req);
- if(repp->an == nil)
- goto out;
- if(!anyone && !myip(srcip) && findserver(srcip, repp->an->soa->slaves, req) == nil){
+ if(repp->an != nil && !anyone && !myip(srcip)
+ && findserver(srcip, repp->an->soa->slaves, req) == nil){
dnslog("dnstcp: %I axfr %s - not a dnsslave", srcip, dp->name);
rrfreelist(repp->an);
repp->an = nil;
- goto out;
}
+ reply(1, repp, req);
+ if(repp->an == nil)
+ goto out;
rrfreelist(repp->an);
repp->an = nil;