diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-10-09 06:34:27 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-10-09 06:34:27 +0200 |
commit | e73ce8475e683c62d0335a18788d86ae92a010f0 (patch) | |
tree | 25787bcf90668ec82bbe7cb5abb5f7b6b924c2b5 | |
parent | 08292c8f1fb3c122e92ed13d8c107009c919ada1 (diff) | |
download | plan9front-e73ce8475e683c62d0335a18788d86ae92a010f0.tar.xz |
ndb/dnstcp: return a proper non-answer when rejecting zone transfer
-rw-r--r-- | sys/src/cmd/ndb/dnstcp.c | 10 |
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; |