From c44d8b51ffb5a413f8bbdbd9991bbc573853e397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henryk=20Pl=C3=B6tz?= Date: Fri, 3 Oct 2014 20:04:14 +0200 Subject: Apply patch djbdns-1.05-test27.diff.bz2 Source was http://www.fefe.de/dns/djbdns-1.05-test27.diff.bz2, SHA1 f0380ec1866f49c0bcf6369a923ac0a4a5095da8 --- axfrdns.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) (limited to 'axfrdns.c') diff --git a/axfrdns.c b/axfrdns.c index 7079850..85723c9 100644 --- a/axfrdns.c +++ b/axfrdns.c @@ -21,6 +21,8 @@ #include "scan.h" #include "qlog.h" #include "response.h" +#include "ip6.h" +#include "clientloc.h" extern int respond(char *,char *,char *); @@ -123,7 +125,7 @@ void get(char *buf,unsigned int len) } } -char ip[4]; +char ip[16]; unsigned long port; char clientloc[2]; @@ -231,22 +233,11 @@ void doaxfr(char id[2]) axfrcheck(zone); + find_client_loc(clientloc, ip); + tai_now(&now); cdb_init(&c,fdcdb); - byte_zero(clientloc,2); - key[0] = 0; - key[1] = '%'; - byte_copy(key + 2,4,ip); - r = cdb_find(&c,key,6); - if (!r) r = cdb_find(&c,key,5); - if (!r) r = cdb_find(&c,key,4); - if (!r) r = cdb_find(&c,key,3); - if (!r) r = cdb_find(&c,key,2); - if (r == -1) die_cdbread(); - if (r && (cdb_datalen(&c) == 2)) - if (cdb_read(&c,clientloc,2,cdb_datapos(&c)) == -1) die_cdbread(); - cdb_findstart(&c); for (;;) { r = cdb_findnext(&c,zone,zonelen); @@ -328,10 +319,10 @@ int main() axfr = env_get("AXFR"); x = env_get("TCPREMOTEIP"); - if (x && ip4_scan(x,ip)) + if (x && ip6_scan(x,ip)) ; else - byte_zero(ip,4); + byte_zero(ip,16); x = env_get("TCPREMOTEPORT"); if (!x) x = "0"; -- cgit v1.2.3