]> git.pld-linux.org Git - packages/djbdns.git/commitdiff
- orphaned, outdated
authorJan Rękorajski <baggins@pld-linux.org>
Fri, 21 Apr 2006 23:40:32 +0000 (23:40 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    djbdns-1.05-ipv6.diff -> 1.2
    djbdns-1.05-multiip.diff -> 1.2
    djbdns-ignoreip.patch -> 1.2

djbdns-1.05-ipv6.diff [deleted file]
djbdns-1.05-multiip.diff [deleted file]
djbdns-ignoreip.patch [deleted file]

diff --git a/djbdns-1.05-ipv6.diff b/djbdns-1.05-ipv6.diff
deleted file mode 100644 (file)
index 012483a..0000000
+++ /dev/null
@@ -1,1192 +0,0 @@
-diff -uNr djbdns-1.05/FILES djbdns-1.05-fefe/FILES
---- djbdns-1.05/FILES  Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/FILES     Tue Feb 13 15:16:12 2001
-@@ -135,6 +135,7 @@
- exit.h
- fmt.h
- fmt_ulong.c
-+fmt_xlong.c
- gen_alloc.h
- gen_allocdefs.h
- getln.c
-@@ -151,6 +152,9 @@
- ip4.h
- ip4_fmt.c
- ip4_scan.c
-+ip6.h
-+ip6_fmt.c
-+ip6_scan.c
- ndelay.h
- ndelay_off.c
- ndelay_on.c
-@@ -164,6 +168,7 @@
- readclose.c
- readclose.h
- scan.h
-+scan_0x.c
- scan_ulong.c
- seek.h
- seek_set.c
-@@ -241,3 +246,4 @@
- warn-shsgr
- buffer_read.c
- buffer_write.c
-+dns_nd6.c
-diff -uNr djbdns-1.05/Makefile djbdns-1.05-fefe/Makefile
---- djbdns-1.05/Makefile       Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/Makefile  Tue Feb 13 15:16:12 2001
-@@ -120,12 +120,13 @@
- case_diffb.o case_diffs.o case_lowerb.o fmt_ulong.o ip4_fmt.o \
- ip4_scan.o scan_ulong.o str_chr.o str_diff.o str_len.o str_rchr.o \
- str_start.o uint16_pack.o uint16_unpack.o uint32_pack.o \
--uint32_unpack.o
-+uint32_unpack.o ip6_fmt.o ip6_scan.o scan_0x.o fmt_xlong.o
-       ./makelib byte.a byte_chr.o byte_copy.o byte_cr.o \
-       byte_diff.o byte_zero.o case_diffb.o case_diffs.o \
-       case_lowerb.o fmt_ulong.o ip4_fmt.o ip4_scan.o scan_ulong.o \
-       str_chr.o str_diff.o str_len.o str_rchr.o str_start.o \
--      uint16_pack.o uint16_unpack.o uint32_pack.o uint32_unpack.o
-+      uint16_pack.o uint16_unpack.o uint32_pack.o uint32_unpack.o \
-+      ip6_fmt.o ip6_scan.o scan_0x.o fmt_xlong.o
- byte_chr.o: \
- compile byte_chr.c byte.h
-@@ -228,11 +229,13 @@
- dns.a: \
- makelib dns_dfd.o dns_domain.o dns_dtda.o dns_ip.o dns_ipq.o dns_mx.o \
- dns_name.o dns_nd.o dns_packet.o dns_random.o dns_rcip.o dns_rcrw.o \
--dns_resolve.o dns_sortip.o dns_transmit.o dns_txt.o
-+dns_resolve.o dns_sortip.o dns_transmit.o dns_txt.o dns_ip6.o \
-+dns_sortip6.o dns_nd6.o
-       ./makelib dns.a dns_dfd.o dns_domain.o dns_dtda.o dns_ip.o \
-       dns_ipq.o dns_mx.o dns_name.o dns_nd.o dns_packet.o \
-       dns_random.o dns_rcip.o dns_rcrw.o dns_resolve.o \
--      dns_sortip.o dns_transmit.o dns_txt.o
-+      dns_sortip.o dns_transmit.o dns_txt.o dns_ip6.o dns_sortip6.o \
-+      dns_nd6.o
- dns_dfd.o: \
- compile dns_dfd.c error.h alloc.h byte.h dns.h stralloc.h gen_alloc.h \
-@@ -254,6 +257,11 @@
- stralloc.h iopause.h taia.h tai.h uint64.h taia.h
-       ./compile dns_ip.c
-+dns_ip6.o: \
-+compile dns_ip6.c stralloc.h gen_alloc.h uint16.h byte.h dns.h \
-+stralloc.h iopause.h taia.h tai.h uint64.h taia.h
-+      ./compile dns_ip6.c
-+
- dns_ipq.o: \
- compile dns_ipq.c stralloc.h gen_alloc.h case.h byte.h str.h dns.h \
- stralloc.h iopause.h taia.h tai.h uint64.h taia.h
-@@ -274,6 +282,11 @@
- taia.h tai.h uint64.h taia.h
-       ./compile dns_nd.c
-+dns_nd6.o: \
-+compile dns_nd6.c byte.h fmt.h dns.h stralloc.h gen_alloc.h iopause.h \
-+taia.h tai.h uint64.h taia.h
-+      ./compile dns_nd6.c
-+
- dns_packet.o: \
- compile dns_packet.c error.h dns.h stralloc.h gen_alloc.h iopause.h \
- taia.h tai.h uint64.h taia.h
-@@ -306,6 +319,11 @@
- taia.h tai.h uint64.h taia.h
-       ./compile dns_sortip.c
-+dns_sortip6.o: \
-+compile dns_sortip6.c byte.h dns.h stralloc.h gen_alloc.h iopause.h \
-+taia.h tai.h uint64.h taia.h
-+      ./compile dns_sortip6.c
-+
- dns_transmit.o: \
- compile dns_transmit.c socket.h uint16.h alloc.h error.h byte.h \
- uint16.h dns.h stralloc.h gen_alloc.h iopause.h taia.h tai.h uint64.h \
-@@ -369,6 +387,17 @@
- gen_alloc.h iopause.h taia.h tai.h uint64.h taia.h
-       ./compile dnsip.c
-+dnsip6: \
-+load dnsip6.o iopause.o dns.a env.a libtai.a alloc.a buffer.a unix.a \
-+byte.a socket.lib
-+      ./load dnsip6 iopause.o dns.a env.a libtai.a alloc.a \
-+      buffer.a unix.a byte.a  `cat socket.lib`
-+
-+dnsip6.o: \
-+compile dnsip6.c buffer.h exit.h strerr.h ip6.h dns.h stralloc.h \
-+gen_alloc.h iopause.h taia.h tai.h uint64.h
-+      ./compile dnsip6.c
-+
- dnsipq: \
- load dnsipq.o iopause.o dns.a env.a libtai.a alloc.a buffer.a unix.a \
- byte.a socket.lib
-@@ -399,7 +428,7 @@
- dnsname.o: \
- compile dnsname.c buffer.h exit.h strerr.h ip4.h dns.h stralloc.h \
--gen_alloc.h iopause.h taia.h tai.h uint64.h taia.h
-+gen_alloc.h iopause.h taia.h tai.h uint64.h taia.h ip6.h
-       ./compile dnsname.c
- dnsq: \
-@@ -484,6 +513,10 @@
- compile fmt_ulong.c fmt.h
-       ./compile fmt_ulong.c
-+fmt_xlong.o: \
-+compile fmt_xlong.c scan.h
-+      ./compile fmt_xlong.c
-+
- generic-conf.o: \
- compile generic-conf.c strerr.h buffer.h open.h generic-conf.h \
- buffer.h
-@@ -546,10 +579,18 @@
- compile ip4_fmt.c fmt.h ip4.h
-       ./compile ip4_fmt.c
-+ip6_fmt.o: \
-+compile ip6_fmt.c fmt.h ip6.h
-+      ./compile ip6_fmt.c
-+
- ip4_scan.o: \
- compile ip4_scan.c scan.h ip4.h
-       ./compile ip4_scan.c
-+ip6_scan.o: \
-+compile ip6_scan.c scan.h ip6.h
-+      ./compile ip6_scan.c
-+
- it: \
- prog install instcheck
-@@ -677,7 +718,7 @@
- rbldns-data pickdns-conf pickdns pickdns-data tinydns-conf tinydns \
- tinydns-data tinydns-get tinydns-edit axfr-get axfrdns-conf axfrdns \
- dnsip dnsipq dnsname dnstxt dnsmx dnsfilter random-ip dnsqr dnsq \
--dnstrace dnstracesort cachetest utime rts
-+dnstrace dnstracesort cachetest utime rts dnsip6
- prot.o: \
- compile prot.c hasshsgr.h prot.h
-@@ -762,6 +803,10 @@
- compile scan_ulong.c scan.h
-       ./compile scan_ulong.c
-+scan_0x.o: \
-+compile scan_0x.c scan.h
-+      ./compile scan_0x.c
-+
- seek_set.o: \
- compile seek_set.c seek.h
-       ./compile seek_set.c
-@@ -1005,7 +1050,7 @@
- compile tinydns-data.c uint16.h uint32.h str.h byte.h fmt.h ip4.h \
- exit.h case.h scan.h buffer.h strerr.h getln.h buffer.h stralloc.h \
- gen_alloc.h cdb_make.h buffer.h uint32.h stralloc.h open.h dns.h \
--stralloc.h iopause.h taia.h tai.h uint64.h taia.h
-+stralloc.h iopause.h taia.h tai.h uint64.h taia.h ip6.h
-       ./compile tinydns-data.c
- tinydns-edit: \
-@@ -1104,3 +1149,6 @@
- compile walldns.c byte.h dns.h stralloc.h gen_alloc.h iopause.h \
- taia.h tai.h uint64.h taia.h dd.h response.h uint32.h
-       ./compile walldns.c
-+
-+clean:
-+      rm -f `cat TARGETS`
-diff -uNr djbdns-1.05/TARGETS djbdns-1.05-fefe/TARGETS
---- djbdns-1.05/TARGETS        Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/TARGETS   Tue Feb 13 15:16:12 2001
-@@ -214,3 +214,12 @@
- it
- setup
- check
-+scan_0x.o
-+fmt_xlong.o
-+ip6_scan.o
-+ip6_fmt.o
-+dnsip6.o
-+dns_ip6.o
-+dns_sortip6.o
-+dnsip6
-+dns_nd6.o
-diff -uNr djbdns-1.05/axfr-get.c djbdns-1.05-fefe/axfr-get.c
---- djbdns-1.05/axfr-get.c     Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/axfr-get.c        Tue Feb 13 15:16:12 2001
-@@ -13,6 +13,7 @@
- #include "byte.h"
- #include "str.h"
- #include "ip4.h"
-+#include "ip6.h"
- #include "timeoutread.h"
- #include "timeoutwrite.h"
- #include "dns.h"
-@@ -217,6 +218,14 @@
-     x_copy(buf,len,pos,data,4);
-     if (!stralloc_catb(&line,ipstr,ip4_fmt(ipstr,data))) return 0;
-   }
-+  else if (byte_equal(data,2,DNS_T_AAAA)) {
-+    char ipstr[IP6_FMT];
-+    if (!stralloc_copys(&line,"6")) return 0;
-+    if (!dns_domain_todot_cat(&line,d1)) return 0;
-+    if (!stralloc_cats(&line,":")) return 0;
-+    x_copy(buf,len,pos,data,16);
-+    if (!stralloc_catb(&line,ipstr,ip6_fmt_flat(ipstr,data))) return 0;
-+  }
-   else {
-     unsigned char ch;
-     unsigned char ch2;
-diff -uNr djbdns-1.05/dns.h djbdns-1.05-fefe/dns.h
---- djbdns-1.05/dns.h  Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/dns.h     Tue Feb 13 15:16:12 2001
-@@ -68,6 +68,8 @@
- extern int dns_ip4_packet(stralloc *,const char *,unsigned int);
- extern int dns_ip4(stralloc *,const stralloc *);
-+extern int dns_ip6_packet(stralloc *,char *,unsigned int);
-+extern int dns_ip6(stralloc *,stralloc *);
- extern int dns_name_packet(stralloc *,const char *,unsigned int);
- extern void dns_name4_domain(char *,const char *);
- #define DNS_NAME4_DOMAIN 31
-@@ -80,5 +82,10 @@
- extern int dns_resolvconfrewrite(stralloc *);
- extern int dns_ip4_qualify_rules(stralloc *,stralloc *,const stralloc *,const stralloc *);
- extern int dns_ip4_qualify(stralloc *,stralloc *,const stralloc *);
-+extern int dns_ip6_qualify_rules(stralloc *,stralloc *,stralloc *,stralloc *);
-+extern int dns_ip6_qualify(stralloc *,stralloc *,stralloc *);
-+
-+extern int dns_name6_domain(char *,char *);
-+#define DNS_NAME6_DOMAIN (4*16+15)
- #endif
-diff -uNr djbdns-1.05/dns_ip6.c djbdns-1.05-fefe/dns_ip6.c
---- djbdns-1.05/dns_ip6.c      Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/dns_ip6.c Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,91 @@
-+#include "stralloc.h"
-+#include "uint16.h"
-+#include "byte.h"
-+#include "dns.h"
-+#include "ip6.h"
-+
-+int dns_ip6_packet(stralloc *out,char *buf,unsigned int len)
-+{
-+  unsigned int pos;
-+  char header[16];
-+  uint16 numanswers;
-+  uint16 datalen;
-+
-+  if (!stralloc_copys(out,"")) return -1;
-+
-+  pos = dns_packet_copy(buf,len,0,header,12); if (!pos) return -1;
-+  uint16_unpack_big(header + 6,&numanswers);
-+  pos = dns_packet_skipname(buf,len,pos); if (!pos) return -1;
-+  pos += 4;
-+
-+  while (numanswers--) {
-+    pos = dns_packet_skipname(buf,len,pos); if (!pos) return -1;
-+    pos = dns_packet_copy(buf,len,pos,header,10); if (!pos) return -1;
-+    uint16_unpack_big(header + 8,&datalen);
-+    if (byte_equal(header,2,DNS_T_AAAA))
-+      if (byte_equal(header + 2,2,DNS_C_IN))
-+        if (datalen == 16) {
-+        if (!dns_packet_copy(buf,len,pos,header,16)) return -1;
-+        if (!stralloc_catb(out,header,16)) return -1;
-+      }
-+    pos += datalen;
-+  }
-+
-+  dns_sortip6(out->s,out->len);
-+  return 0;
-+}
-+
-+static char *q = 0;
-+
-+int dns_ip6(stralloc *out,stralloc *fqdn)
-+{
-+  unsigned int i;
-+  char code;
-+  char ch;
-+  char ip[16];
-+
-+  if (!stralloc_copys(out,"")) return -1;
-+  if (!stralloc_readyplus(fqdn,1)) return -1;
-+  fqdn->s[fqdn->len]=0;
-+  if ((i=ip6_scan(fqdn->s,ip))) {
-+    if (fqdn->s[i]) return -1;
-+    stralloc_copyb(out,ip,16);
-+    return 0;
-+  }
-+  if ((i=ip4_scan(fqdn->s,ip+12))) {
-+    if (fqdn->s[i]) return -1;
-+    byte_zero(ip,10);
-+    ip[10]=ip[11]=0xff;
-+    stralloc_copyb(out,ip,16);
-+    return 0;
-+  }
-+  code = 0;
-+  for (i = 0;i <= fqdn->len;++i) {
-+    if (i < fqdn->len)
-+      ch = fqdn->s[i];
-+    else
-+      ch = '.';
-+
-+    if ((ch == '[') || (ch == ']')) continue;
-+    if (ch == '.') {
-+      if (!stralloc_append(out,&code)) return -1;
-+      code = 0;
-+      continue;
-+    }
-+    if ((ch >= '0') && (ch <= '9')) {
-+      code *= 10;
-+      code += ch - '0';
-+      continue;
-+    }
-+
-+    if (!dns_domain_fromdot(&q,fqdn->s,fqdn->len)) return -1;
-+    if (dns_resolve(q,DNS_T_AAAA) == -1) return -1;
-+    if (dns_ip6_packet(out,dns_resolve_tx.packet,dns_resolve_tx.packetlen) == -1) return -1;
-+    dns_transmit_free(&dns_resolve_tx);
-+    dns_domain_free(&q);
-+    return 0;
-+  }
-+
-+  out->len &= ~3;
-+  return 0;
-+}
-diff -uNr djbdns-1.05/dns_name.c djbdns-1.05-fefe/dns_name.c
---- djbdns-1.05/dns_name.c     Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/dns_name.c        Tue Feb 13 15:16:12 2001
-@@ -2,6 +2,7 @@
- #include "uint16.h"
- #include "byte.h"
- #include "dns.h"
-+#include "ip6.h"
- static char *q = 0;
-@@ -43,6 +44,20 @@
-   if (dns_resolve(name,DNS_T_PTR) == -1) return -1;
-   if (dns_name_packet(out,dns_resolve_tx.packet,dns_resolve_tx.packetlen) == -1) return -1;
-   dns_transmit_free(&dns_resolve_tx);
-+  dns_domain_free(&q);
-+  return 0;
-+}
-+
-+int dns_name6(stralloc *out,char ip[16])
-+{
-+  char name[DNS_NAME6_DOMAIN];
-+
-+  if (ip6_isv4mapped(ip))
-+    return dns_name4(out,ip+12);
-+  dns_name6_domain(name,ip);
-+  if (dns_resolve(name,DNS_T_PTR) == -1) return -1;
-+  if (dns_name_packet(out,dns_resolve_tx.packet,dns_resolve_tx.packetlen) == -1) return -1;
-+  dns_transmit_free(&dns_resolve_tx);
-   dns_domain_free(&q);
-   return 0;
- }
-diff -uNr djbdns-1.05/dns_nd6.c djbdns-1.05-fefe/dns_nd6.c
---- djbdns-1.05/dns_nd6.c      Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/dns_nd6.c Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,28 @@
-+#include "byte.h"
-+#include "fmt.h"
-+#include "dns.h"
-+
-+/* RFC1886:
-+ *   4321:0:1:2:3:4:567:89ab
-+ * ->
-+ *   b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.IP6.INT.
-+ */
-+
-+unsigned int mkint(unsigned char a,unsigned char b) {
-+  return ((unsigned int)a << 8) + (unsigned int)b;
-+}
-+
-+int dns_name6_domain(char name[DNS_NAME6_DOMAIN],char ip[16])
-+{
-+  unsigned int j;
-+
-+  for (j=0; j<16; j++) {
-+    name[j*4]=1;
-+    name[j*4+1]=tohex(ip[15-j] & 15);
-+    name[j*4+2]=1;
-+    name[j*4+3]=tohex((unsigned char)ip[15-j] >> 4);
-+  }
-+  byte_copy(name + 4*16,14,"\3ip6\3int\0");
-+  return 4*16+14;
-+}
-+
-diff -uNr djbdns-1.05/dns_sortip6.c djbdns-1.05-fefe/dns_sortip6.c
---- djbdns-1.05/dns_sortip6.c  Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/dns_sortip6.c     Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,20 @@
-+#include "byte.h"
-+#include "dns.h"
-+
-+/* XXX: sort servers by configurable notion of closeness? */
-+/* XXX: pay attention to competence of each server? */
-+
-+void dns_sortip6(char *s,unsigned int n)
-+{
-+  unsigned int i;
-+  char tmp[16];
-+
-+  n >>= 4;
-+  while (n > 1) {
-+    i = dns_random(n);
-+    --n;
-+    byte_copy(tmp,14,s + (i << 4));
-+    byte_copy(s + (i << 4),16,s + (n << 4));
-+    byte_copy(s + (n << 4),16,tmp);
-+  }
-+}
-diff -uNr djbdns-1.05/dnsip6.c djbdns-1.05-fefe/dnsip6.c
---- djbdns-1.05/dnsip6.c       Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/dnsip6.c  Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,40 @@
-+#include "buffer.h"
-+#include "exit.h"
-+#include "strerr.h"
-+#include "ip6.h"
-+#include "dns.h"
-+
-+#define FATAL "dnsip: fatal: "
-+
-+static char seed[128];
-+
-+static stralloc fqdn;
-+static stralloc out;
-+char str[IP6_FMT];
-+
-+main(int argc,char **argv)
-+{
-+  int i;
-+
-+  dns_random_init(seed);
-+
-+  if (*argv) ++argv;
-+
-+  while (*argv) {
-+    if (!stralloc_copys(&fqdn,*argv))
-+      strerr_die2x(111,FATAL,"out of memory");
-+    if (dns_ip6(&out,&fqdn) == -1)
-+      strerr_die4sys(111,FATAL,"unable to find IPv6 address for ",*argv,": ");
-+
-+    for (i = 0;i + 16 <= out.len;i += 16) {
-+      buffer_put(buffer_1,str,ip6_fmt(str,out.s + i));
-+      buffer_puts(buffer_1," ");
-+    }
-+    buffer_puts(buffer_1,"\n");
-+
-+    ++argv;
-+  }
-+
-+  buffer_flush(buffer_1);
-+  _exit(0);
-+}
-diff -uNr djbdns-1.05/dnsname.c djbdns-1.05-fefe/dnsname.c
---- djbdns-1.05/dnsname.c      Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/dnsname.c Tue Feb 13 15:16:12 2001
-@@ -9,6 +9,7 @@
- static char seed[128];
- char ip[4];
-+char ip6[16];
- static stralloc out;
- int main(int argc,char **argv)
-@@ -18,10 +19,15 @@
-   if (*argv) ++argv;
-   while (*argv) {
--    if (!ip4_scan(*argv,ip))
--      strerr_die3x(111,FATAL,"unable to parse IP address ",*argv);
--    if (dns_name4(&out,ip) == -1)
--      strerr_die4sys(111,FATAL,"unable to find host name for ",*argv,": ");
-+    if (ip6_scan(*argv,ip6)) {
-+      if (dns_name6(&out,ip6) == -1)
-+      strerr_die4sys(111,FATAL,"unable to find host name for ",*argv,": ");
-+    } else {
-+      if (!ip4_scan(*argv,ip))
-+      strerr_die3x(111,FATAL,"unable to parse IP address ",*argv);
-+      if (dns_name4(&out,ip) == -1)
-+      strerr_die4sys(111,FATAL,"unable to find host name for ",*argv,": ");
-+    }
-     buffer_put(buffer_1,out.s,out.len);
-     buffer_puts(buffer_1,"\n");
-diff -uNr djbdns-1.05/fmt_xlong.c djbdns-1.05-fefe/fmt_xlong.c
---- djbdns-1.05/fmt_xlong.c    Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/fmt_xlong.c       Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,22 @@
-+#include "fmt.h"
-+
-+char tohex(char num) {
-+  if (num<10)
-+    return num+'0';
-+  else if (num<16)
-+    return num-10+'a';
-+  else
-+    return -1;
-+}
-+
-+unsigned int fmt_xlong(register char *s,register unsigned long u)
-+{
-+  register unsigned int len; register unsigned long q;
-+  len = 1; q = u;
-+  while (q > 15) { ++len; q /= 16; }
-+  if (s) {
-+    s += len;
-+    do { *--s = tohex(u % 16); u /= 16; } while(u); /* handles u == 0 */
-+  }
-+  return len;
-+}
-diff -uNr djbdns-1.05/hier.c djbdns-1.05-fefe/hier.c
---- djbdns-1.05/hier.c Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/hier.c    Tue Feb 13 15:16:12 2001
-@@ -29,6 +29,7 @@
-   c(auto_home,"bin","axfr-get",-1,-1,0755);
-   c(auto_home,"bin","dnsip",-1,-1,0755);
-+  c(auto_home,"bin","dnsip6",-1,-1,0755);
-   c(auto_home,"bin","dnsipq",-1,-1,0755);
-   c(auto_home,"bin","dnsname",-1,-1,0755);
-   c(auto_home,"bin","dnstxt",-1,-1,0755);
-diff -uNr djbdns-1.05/ip6.h djbdns-1.05-fefe/ip6.h
---- djbdns-1.05/ip6.h  Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/ip6.h     Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,28 @@
-+#ifndef IP6_H
-+#define IP6_H
-+
-+extern unsigned int ip6_scan(char *,char *);
-+extern unsigned int ip6_fmt(char *,char *);
-+
-+extern unsigned int ip6_scan_flat(char *,char *);
-+extern unsigned int ip6_fmt_flat(char *,char *);
-+
-+/*
-+ ip6 address syntax: (h = hex digit), no leading '0' required
-+   1. hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh
-+   2. any number of 0000 may be abbreviated as "::", but only once
-+ flat ip6 address syntax:
-+   hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
-+ */
-+
-+#define IP6_FMT 40
-+
-+const static unsigned char V4mappedprefix[12]={0,0,0,0,0,0,0,0,0,0,0xff,0xff};
-+const static unsigned char V6loopback[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1};
-+const static unsigned char V6any[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-+
-+#define ip6_isv4mapped(ip) (byte_equal(ip,12,V4mappedprefix))
-+
-+const static char ip4loopback[4] = {127,0,0,1};
-+
-+#endif
-diff -uNr djbdns-1.05/ip6_fmt.c djbdns-1.05-fefe/ip6_fmt.c
---- djbdns-1.05/ip6_fmt.c      Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/ip6_fmt.c Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,55 @@
-+#include "fmt.h"
-+#include "ip6.h"
-+#include <stdio.h>
-+
-+unsigned int ip6_fmt(char *s,char ip[16])
-+{
-+  unsigned int len;
-+  unsigned int i;
-+ 
-+  len = 0;
-+  i = fmt_xlong(s,((unsigned long) (unsigned char) ip[0] << 8) +
-+                 (unsigned long) (unsigned char) ip[1]); len += i; if (s) s += i;
-+  if (s) *s++ = ':'; ++len;
-+  i = fmt_xlong(s,((unsigned long) (unsigned char) ip[2] << 8) +
-+                 (unsigned long) (unsigned char) ip[3]); len += i; if (s) s += i;
-+  if (s) *s++ = ':'; ++len;
-+  i = fmt_xlong(s,((unsigned long) (unsigned char) ip[4] << 8) +
-+                 (unsigned long) (unsigned char) ip[5]); len += i; if (s) s += i;
-+  if (s) *s++ = ':'; ++len;
-+  i = fmt_xlong(s,((unsigned long) (unsigned char) ip[6] << 8) +
-+                 (unsigned long) (unsigned char) ip[7]); len += i; if (s) s += i;
-+  if (s) *s++ = ':'; ++len;
-+  i = fmt_xlong(s,((unsigned long) (unsigned char) ip[8] << 8) +
-+                 (unsigned long) (unsigned char) ip[9]); len += i; if (s) s += i;
-+  if (s) *s++ = ':'; ++len;
-+  i = fmt_xlong(s,((unsigned long) (unsigned char) ip[10] << 8) +
-+                 (unsigned long) (unsigned char) ip[11]); len += i; if (s) s += i;
-+  if (s) *s++ = ':'; ++len;
-+  i = fmt_xlong(s,((unsigned long) (unsigned char) ip[12] << 8) +
-+                 (unsigned long) (unsigned char) ip[13]); len += i; if (s) s += i;
-+  if (s) *s++ = ':'; ++len;
-+  i = fmt_xlong(s,((unsigned long) (unsigned char) ip[14] << 8) +
-+                 (unsigned long) (unsigned char) ip[15]); len += i; if (s) s += i;
-+  if (s) *s=0;
-+  return len;
-+}
-+
-+static char tohex(char num) {
-+  if (num<10)
-+    return num+'0';
-+  else if (num<16)
-+    return num-10+'a';
-+  else
-+    return -1;
-+}
-+
-+unsigned int ip6_fmt_flat(char *s,char ip[16])
-+{
-+  int i;
-+  for (i=0; i<16; i++) {
-+    *s++=tohex((unsigned char)ip[i] >> 4);
-+    *s++=tohex((unsigned char)ip[i] & 15);
-+  }
-+  return 32;
-+}
-diff -uNr djbdns-1.05/ip6_scan.c djbdns-1.05-fefe/ip6_scan.c
---- djbdns-1.05/ip6_scan.c     Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/ip6_scan.c        Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,110 @@
-+#include "scan.h"
-+#include "ip4.h"
-+#include "ip6.h"
-+
-+/*
-+ * IPv6 addresses are really ugly to parse.
-+ * Syntax: (h = hex digit)
-+ *   1. hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh
-+ *   2. any number of 0000 may be abbreviated as "::", but only once
-+ *   3. The last two words may be written as IPv4 address
-+ */
-+
-+unsigned int ip6_scan(char *s,char ip[16])
-+{
-+  unsigned int i;
-+  unsigned int len=0;
-+  unsigned int u;
-+
-+  char suffix[16];
-+  int prefixlen=0;
-+  int suffixlen=0;
-+
-+  for (i=0; i<16; i++) ip[i]=0;
-+
-+  for (;;) {
-+    if (*s == ':') {
-+      len++;
-+      if (s[1] == ':') {      /* Found "::", skip to part 2 */
-+      s+=2;
-+      len++;
-+      break;
-+      }
-+      s++;
-+    }
-+    i = scan_0x(s,&u);
-+    if (!i) return 0;
-+    if (prefixlen==12 && s[i]=='.') {
-+      /* the last 4 bytes may be written as IPv4 address */
-+      i=ip4_scan(s,ip+12);
-+      if (i)
-+      return i+len;
-+      else
-+      return 0;
-+    }
-+    ip[prefixlen++] = (u >> 8);
-+    ip[prefixlen++] = (u & 255);
-+    s += i; len += i;
-+    if (prefixlen==16)
-+      return len;
-+  }
-+
-+/* part 2, after "::" */
-+  for (;;) {
-+    if (*s == ':') {
-+      if (suffixlen==0)
-+      break;
-+      s++;
-+      len++;
-+    } else if (suffixlen!=0)
-+      break;
-+    i = scan_0x(s,&u);
-+    if (!i) {
-+      len--;
-+      break;
-+    }
-+    if (suffixlen+prefixlen<=12 && s[i]=='.') {
-+      int j=ip4_scan(s,suffix+suffixlen);
-+      if (j) {
-+      suffixlen+=4;
-+      len+=j;
-+      break;
-+      } else
-+      prefixlen=12-suffixlen; /* make end-of-loop test true */
-+    }
-+    suffix[suffixlen++] = (u >> 8);
-+    suffix[suffixlen++] = (u & 255);
-+    s += i; len += i;
-+    if (prefixlen+suffixlen==16)
-+      break;
-+  }
-+  for (i=0; i<suffixlen; i++)
-+    ip[16-suffixlen+i] = suffix[i];
-+  return len;
-+}
-+
-+static long int fromhex(unsigned char c) {
-+  if (c>='0' && c<='9')
-+    return c-'0';
-+  else if (c>='A' && c<='F')
-+    return c-'A'+10;
-+  else if (c>='a' && c<='f')
-+    return c-'a'+10;
-+  return -1;
-+}
-+
-+unsigned int ip6_scan_flat(char *s,char ip[16])
-+{
-+  int i;
-+  char *old=s;
-+  for (i=0; i<16; i++) {
-+    int tmp;
-+    tmp=fromhex(*s++);
-+    if (tmp<0) return 0;
-+    ip[i]=tmp << 4;
-+    tmp=fromhex(*s++);
-+    if (tmp<0) return 0;
-+    ip[i]+=tmp;
-+  }
-+  return 32;
-+}
-diff -uNr djbdns-1.05/printrecord.c djbdns-1.05-fefe/printrecord.c
---- djbdns-1.05/printrecord.c  Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/printrecord.c     Tue Feb 13 15:16:12 2001
-@@ -4,6 +4,7 @@
- #include "byte.h"
- #include "dns.h"
- #include "printrecord.h"
-+#include "ip6.h"
- static char *d;
-@@ -82,6 +83,15 @@
-       if (!stralloc_catulong0(out,ch,0)) return 0;
-     }
-   }
-+  else if (byte_equal(misc,2,DNS_T_AAAA)) {
-+    char ip6str[IP6_FMT];
-+    int stringlen;
-+    if (datalen != 16) { errno = error_proto; return 0; }
-+    if (!stralloc_cats(out," AAAA ")) return 0;
-+    pos = dns_packet_copy(buf,len,pos,misc,16); if (!pos) return 0;
-+    stringlen=ip6_fmt(ip6str,misc);
-+    if (!stralloc_cats(out,ip6str)) return 0;
-+  }
-   else {
-     if (!stralloc_cats(out," ")) return 0;
-     uint16_unpack_big(misc,&u16);
-diff -uNr djbdns-1.05/query.c djbdns-1.05-fefe/query.c
---- djbdns-1.05/query.c        Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/query.c   Tue Feb 13 15:16:12 2001
-@@ -227,6 +227,158 @@
-     return 1;
-   }
-+  if (dns_domain_equal(d,"\0011\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\003ip6\003int\0")) {
-+    if (z->level) goto LOWERLEVEL;
-+    if (!rqa(z)) goto DIE;
-+    if (typematch(DNS_T_PTR,dtype)) {
-+      if (!response_rstart(d,DNS_T_PTR,"\0\0\0\0")) goto DIE;
-+      if (!response_addname("\016ipv6-localhost\0")) goto DIE;
-+      if (!response_addname("\015ipv6-loopback\0")) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+    }
-+    cleanup(z);
-+    return 1;
-+  }
-+
-+  if (dns_domain_equal(d,"\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\001e\001f\003ip6\003int\0")) {
-+    if (z->level) goto LOWERLEVEL;
-+    if (!rqa(z)) goto DIE;
-+    if (typematch(DNS_T_PTR,dtype)) {
-+      if (!response_rstart(d,DNS_T_PTR,"\0\0\0\0")) goto DIE;
-+      if (!response_addname("\015ipv6-localnet\0")) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+    }
-+    cleanup(z);
-+    return 1;
-+  }
-+
-+  if (dns_domain_equal(d,"\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\001f\001f\003ip6\003int\0")) {
-+    if (z->level) goto LOWERLEVEL;
-+    if (!rqa(z)) goto DIE;
-+    if (typematch(DNS_T_PTR,dtype)) {
-+      if (!response_rstart(d,DNS_T_PTR,"\0\0\0\0")) goto DIE;
-+      if (!response_addname("\020ipv6-mcastprefix\0")) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+    }
-+    cleanup(z);
-+    return 1;
-+  }
-+
-+  if (dns_domain_equal(d,"\0011\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0012\0010\001f\001f\003ip6\003int\0")) {
-+    if (z->level) goto LOWERLEVEL;
-+    if (!rqa(z)) goto DIE;
-+    if (typematch(DNS_T_PTR,dtype)) {
-+      if (!response_rstart(d,DNS_T_PTR,"\0\0\0\0")) goto DIE;
-+      if (!response_addname("\015ipv6-allnodes\0")) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+    }
-+    cleanup(z);
-+    return 1;
-+  }
-+
-+  if (dns_domain_equal(d,"\0012\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0012\0010\001f\001f\003ip6\003int\0")) {
-+    if (z->level) goto LOWERLEVEL;
-+    if (!rqa(z)) goto DIE;
-+    if (typematch(DNS_T_PTR,dtype)) {
-+      if (!response_rstart(d,DNS_T_PTR,"\0\0\0\0")) goto DIE;
-+      if (!response_addname("\017ipv6-allrouters\0")) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+    }
-+    cleanup(z);
-+    return 1;
-+  }
-+
-+  if (dns_domain_equal(d,"\0011\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0010\0012\0010\001f\001f\003ip6\003int\0")) {
-+    if (z->level) goto LOWERLEVEL;
-+    if (!rqa(z)) goto DIE;
-+    if (typematch(DNS_T_PTR,dtype)) {
-+      if (!response_rstart(d,DNS_T_PTR,"\0\0\0\0")) goto DIE;
-+      if (!response_addname("\015ipv6-allhosts\0")) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+    }
-+    cleanup(z);
-+    return 1;
-+  }
-+
-+  if (dns_domain_equal(d,"\016ipv6-localhost\0") ||
-+      dns_domain_equal(d,"\015ipv6-loopback\0"))
-+    {
-+      if (z->level) goto LOWERLEVEL;
-+      if (!rqa(z)) goto DIE;
-+      if (typematch(DNS_T_AAAA,dtype)) {
-+      if (!response_rstart(d,DNS_T_AAAA,"\0\0\0\0")) goto DIE;
-+      if (!response_addbytes("\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001",16)) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+      }
-+      cleanup(z);
-+      return 1;
-+    }
-+
-+  if (dns_domain_equal(d,"\015ipv6-localnet\0"))
-+    {
-+      if (z->level) goto LOWERLEVEL;
-+      if (!rqa(z)) goto DIE;
-+      if (typematch(DNS_T_AAAA,dtype)) {
-+      if (!response_rstart(d,DNS_T_AAAA,"\0\0\0\0")) goto DIE;
-+      if (!response_addbytes("\376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",16)) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+      }
-+      cleanup(z);
-+      return 1;
-+    }
-+
-+  if (dns_domain_equal(d,"\020ipv6-mcastprefix\0"))
-+    {
-+      if (z->level) goto LOWERLEVEL;
-+      if (!rqa(z)) goto DIE;
-+      if (typematch(DNS_T_AAAA,dtype)) {
-+      if (!response_rstart(d,DNS_T_AAAA,"\0\0\0\0")) goto DIE;
-+      if (!response_addbytes("\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",16)) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+      }
-+      cleanup(z);
-+      return 1;
-+    }
-+
-+  if (dns_domain_equal(d,"\15ipv6-allnodes\0"))
-+    {
-+      if (z->level) goto LOWERLEVEL;
-+      if (!rqa(z)) goto DIE;
-+      if (typematch(DNS_T_AAAA,dtype)) {
-+      if (!response_rstart(d,DNS_T_AAAA,"\0\0\0\0")) goto DIE;
-+      if (!response_addbytes("\377\002\000\000\000\000\000\000\000\000\000\000\000\000\000\001",16)) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+      }
-+      cleanup(z);
-+      return 1;
-+    }
-+
-+  if (dns_domain_equal(d,"\17ipv6-allrouters\0"))
-+    {
-+      if (z->level) goto LOWERLEVEL;
-+      if (!rqa(z)) goto DIE;
-+      if (typematch(DNS_T_AAAA,dtype)) {
-+      if (!response_rstart(d,DNS_T_AAAA,"\0\0\0\0")) goto DIE;
-+      if (!response_addbytes("\377\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002",16)) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+      }
-+      cleanup(z);
-+      return 1;
-+    }
-+
-+  if (dns_domain_equal(d,"\15ipv6-allhosts\0"))
-+    {
-+      if (z->level) goto LOWERLEVEL;
-+      if (!rqa(z)) goto DIE;
-+      if (typematch(DNS_T_AAAA,dtype)) {
-+      if (!response_rstart(d,DNS_T_AAAA,"\0\0\0\0")) goto DIE;
-+      if (!response_addbytes("\377\002\000\000\000\000\000\000\000\000\000\000\000\000\000\003",16)) goto DIE;
-+      response_rfinish(RESPONSE_ANSWER);
-+      }
-+      cleanup(z);
-+      return 1;
-+    }
-+
-   if (dns_domain_equal(d,"\0011\0010\0010\003127\7in-addr\4arpa\0")) {
-     if (z->level) goto LOWERLEVEL;
-     if (!rqa(z)) goto DIE;
-diff -uNr djbdns-1.05/scan_0x.c djbdns-1.05-fefe/scan_0x.c
---- djbdns-1.05/scan_0x.c      Thu Jan  1 01:00:00 1970
-+++ djbdns-1.05-fefe/scan_0x.c Tue Feb 13 15:16:12 2001
-@@ -0,0 +1,24 @@
-+#include "scan.h"
-+
-+long int fromhex(unsigned char c) {
-+  if (c>='0' && c<='9')
-+    return c-'0';
-+  else if (c>='A' && c<='F')
-+    return c-'A'+10;
-+  else if (c>='a' && c<='f')
-+    return c-'a'+10;
-+  return -1;
-+}
-+
-+unsigned int scan_0x(register const char *s,register unsigned int *u)
-+{
-+  register unsigned int pos = 0;
-+  register unsigned long result = 0;
-+  register long int c;
-+  while ((c = fromhex((unsigned char) (s[pos]))) >= 0) {
-+    result = (result << 4) + c;
-+    ++pos;
-+  }
-+  *u = result;
-+  return pos;
-+}
-diff -uNr djbdns-1.05/socket.h djbdns-1.05-fefe/socket.h
---- djbdns-1.05/socket.h       Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/socket.h  Tue Feb 13 15:16:12 2001
-@@ -5,17 +5,27 @@
- extern int socket_tcp(void);
- extern int socket_udp(void);
-+extern int socket_tcp6(void);
-+extern int socket_udp6(void);
- extern int socket_connect4(int,const char *,uint16);
-+extern int socket_connect6(int,char *,uint16);
- extern int socket_connected(int);
- extern int socket_bind4(int,char *,uint16);
- extern int socket_bind4_reuse(int,char *,uint16);
-+extern int socket_bind6(int,char *,uint16);
-+extern int socket_bind6_reuse(int,char *,uint16);
- extern int socket_listen(int,int);
- extern int socket_accept4(int,char *,uint16 *);
-+extern int socket_accept6(int,char *,uint16 *);
- extern int socket_recv4(int,char *,int,char *,uint16 *);
- extern int socket_send4(int,const char *,int,const char *,uint16);
-+extern int socket_recv6(int,char *,int,char *,uint16 *);
-+extern int socket_send6(int,char *,int,char *,uint16);
- extern int socket_local4(int,char *,uint16 *);
- extern int socket_remote4(int,char *,uint16 *);
-+extern int socket_local6(int,char *,uint16 *);
-+extern int socket_remote6(int,char *,uint16 *);
- extern void socket_tryreservein(int,int);
-diff -uNr djbdns-1.05/tinydns-conf.c djbdns-1.05-fefe/tinydns-conf.c
---- djbdns-1.05/tinydns-conf.c Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/tinydns-conf.c    Tue Feb 13 15:16:12 2001
-@@ -82,6 +82,18 @@
-   finish();
-   perm(0755);
-+  start("root/add-host6");
-+  outs("#!/bin/sh\nexec ");
-+  outs(auto_home); outs("/bin/tinydns-edit data data.new add host6 ${1+\"$@\"}\n");
-+  finish();
-+  perm(0755);
-+
-+  start("root/add-alias6");
-+  outs("#!/bin/sh\nexec ");
-+  outs(auto_home); outs("/bin/tinydns-edit data data.new add alias6 ${1+\"$@\"}\n");
-+  finish();
-+  perm(0755);
-+
-   start("root/add-mx");
-   outs("#!/bin/sh\nexec ");
-   outs(auto_home); outs("/bin/tinydns-edit data data.new add mx ${1+\"$@\"}\n");
-diff -uNr djbdns-1.05/tinydns-data.c djbdns-1.05-fefe/tinydns-data.c
---- djbdns-1.05/tinydns-data.c Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/tinydns-data.c    Tue Feb 13 15:16:12 2001
-@@ -8,6 +8,7 @@
- #include "byte.h"
- #include "fmt.h"
- #include "ip4.h"
-+#include "ip6.h"
- #include "exit.h"
- #include "case.h"
- #include "scan.h"
-@@ -172,6 +173,7 @@
- static char *d1;
- static char *d2;
- char dptr[DNS_NAME4_DOMAIN];
-+char d6ptr[DNS_NAME6_DOMAIN];
- char strnum[FMT_ULONG];
-@@ -193,6 +195,7 @@
-   char loc[2];
-   unsigned long u;
-   char ip[4];
-+  char ip6[16];
-   char type[2];
-   char soa[20];
-   char buf[4];
-@@ -338,6 +341,28 @@
-         }
-       }
-       break;
-+
-+      case '6': case '3':
-+      if (!dns_domain_fromdot(&d1,f[0].s,f[0].len)) nomem();
-+      if (!stralloc_0(&f[2])) nomem();
-+      if (!scan_ulong(f[2].s,&ttl)) ttl = TTL_POSITIVE;
-+      ttdparse(&f[3],ttd);
-+      locparse(&f[4],loc);
-+
-+      if (!stralloc_0(&f[1])) nomem();
-+      if (ip6_scan_flat(f[1].s,ip6)) {
-+        rr_start(DNS_T_AAAA,ttl,ttd,loc);
-+        rr_add(ip6,16);
-+        rr_finish(d1);
-+
-+        if (line.s[0] == '6') {
-+          dns_name6_domain(d6ptr,ip6);
-+          rr_start(DNS_T_PTR,ttl,ttd,loc);
-+          rr_addname(d1);
-+          rr_finish(d6ptr);
-+        }
-+      }
-+      break;
-       case '@':
-       if (!dns_domain_fromdot(&d1,f[0].s,f[0].len)) nomem();
-diff -uNr djbdns-1.05/tinydns-edit.c djbdns-1.05-fefe/tinydns-edit.c
---- djbdns-1.05/tinydns-edit.c Sun Feb 11 22:11:45 2001
-+++ djbdns-1.05-fefe/tinydns-edit.c    Tue Feb 13 15:16:12 2001
-@@ -13,6 +13,7 @@
- #include "str.h"
- #include "fmt.h"
- #include "ip4.h"
-+#include "ip6.h"
- #include "dns.h"
- #define FATAL "tinydns-edit: fatal: "
-@@ -25,7 +26,8 @@
- void die_usage()
- {
--  strerr_die1x(100,"tinydns-edit: usage: tinydns-edit data data.new add [ns|childns|host|alias|mx] domain a.b.c.d");
-+  strerr_die1x(100,"tinydns-edit: usage: tinydns-edit data data.new add [ns|childns|host|alias|mx] domain a.b.c.d\n"
-+                   "tinydns-edit: usage: tinydns-edit data data.new add [host6|alias6] domain a:b:c:d:e:f:g:h");
- }
- void nomem()
- {
-@@ -43,6 +45,7 @@
- char mode;
- static char *target;
- char targetip[4];
-+char targetip6[16];
- int fd;
- buffer b;
-@@ -61,7 +64,9 @@
- static char *d1;
- static char *d2;
- char ip[4];
-+char ip6[16];
- char ipstr[IP4_FMT];
-+char ip6str[IP6_FMT];
- char strnum[FMT_ULONG];
- static char *names[26];
-@@ -96,7 +101,9 @@
-   if (str_equal(*argv,"ns")) mode = '.';
-   else if (str_equal(*argv,"childns")) mode = '&';
-   else if (str_equal(*argv,"host")) mode = '=';
-+  else if (str_equal(*argv,"host6")) mode = '6';
-   else if (str_equal(*argv,"alias")) mode = '+';
-+  else if (str_equal(*argv,"alias6")) mode = '3';
-   else if (str_equal(*argv,"mx")) mode = '@';
-   else die_usage();
-@@ -104,7 +111,11 @@
-   if (!dns_domain_fromdot(&target,*argv,str_len(*argv))) nomem();
-   if (!*++argv) die_usage();
--  if (!ip4_scan(*argv,targetip)) die_usage();
-+  if (mode == '6' || mode == '3') {
-+    if (!ip6_scan(*argv,targetip6)) die_usage();
-+  } else {
-+    if (!ip4_scan(*argv,targetip)) die_usage();
-+  }
-   umask(077);
-@@ -129,7 +140,7 @@
-       if (!dns_domain_fromdot(&names[i],f[0].s,f[0].len)) nomem();
-       }
-       break;
--    case '+': case '=':
-+    case '+': case '=': case '6': case '3':
-       ttl = TTL_POSITIVE;
-       break;
-     case '@':
-@@ -203,6 +214,18 @@
-       }
-       break;
-+      case '6':
-+      if (line.s[0] == '6') {
-+        if (!dns_domain_fromdot(&d1,f[0].s,f[0].len)) nomem();
-+        if (dns_domain_equal(d1,target))
-+          strerr_die2x(100,FATAL,"host name already used");
-+        if (!stralloc_0(&f[1])) nomem();
-+        if (ip6_scan(f[1].s,ip6))
-+          if (byte_equal(ip,16,targetip6))
-+            strerr_die2x(100,FATAL,"IPv6 address already used");
-+      }
-+      break;
-+
-       case '@':
-       if (line.s[0] == '@') {
-           if (!dns_domain_fromdot(&d1,f[0].s,f[0].len)) nomem();
-@@ -228,7 +251,11 @@
-   if (!stralloc_copyb(&f[0],&mode,1)) nomem();
-   if (!dns_domain_todot_cat(&f[0],target)) nomem();
-   if (!stralloc_cats(&f[0],":")) nomem();
--  if (!stralloc_catb(&f[0],ipstr,ip4_fmt(ipstr,targetip))) nomem();
-+  if (mode == '6' || mode == '3') {
-+    if (!stralloc_catb(&f[0],ip6str,ip6_fmt_flat(ip6str,targetip6))) nomem();
-+  } else {
-+    if (!stralloc_catb(&f[0],ipstr,ip4_fmt(ipstr,targetip))) nomem();
-+  }
-   switch(mode) {
-     case '.': case '&': case '@':
-       for (i = 0;i < 26;++i)
diff --git a/djbdns-1.05-multiip.diff b/djbdns-1.05-multiip.diff
deleted file mode 100644 (file)
index 6dcd2e1..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-diff -ur djbdns-1.05/Makefile djbdns-1.05-multiip/Makefile
---- djbdns-1.05/Makefile       Sun Feb 11 21:11:45 2001
-+++ djbdns-1.05-multiip/Makefile       Thu Feb 15 14:49:06 2001
-@@ -626,9 +626,9 @@
-       ./compile parsetype.c
- pickdns: \
--load pickdns.o server.o response.o droproot.o qlog.o prot.o dns.a \
-+load pickdns.o server.o iopause.o response.o droproot.o qlog.o prot.o dns.a \
- env.a libtai.a cdb.a alloc.a buffer.a unix.a byte.a socket.lib
--      ./load pickdns server.o response.o droproot.o qlog.o \
-+      ./load pickdns server.o iopause.o response.o droproot.o qlog.o \
-       prot.o dns.a env.a libtai.a cdb.a alloc.a buffer.a unix.a \
-       byte.a  `cat socket.lib`
-@@ -704,9 +704,9 @@
-       ./compile random-ip.c
- rbldns: \
--load rbldns.o server.o response.o dd.o droproot.o qlog.o prot.o dns.a \
-+load rbldns.o server.o iopause.o response.o dd.o droproot.o qlog.o prot.o dns.a \
- env.a libtai.a cdb.a alloc.a buffer.a unix.a byte.a socket.lib
--      ./load rbldns server.o response.o dd.o droproot.o qlog.o \
-+      ./load rbldns server.o iopause.o response.o dd.o droproot.o qlog.o \
-       prot.o dns.a env.a libtai.a cdb.a alloc.a buffer.a unix.a \
-       byte.a  `cat socket.lib`
-@@ -774,7 +774,7 @@
- compile server.c byte.h case.h env.h buffer.h strerr.h ip4.h uint16.h \
- ndelay.h socket.h uint16.h droproot.h qlog.h uint16.h response.h \
- uint32.h dns.h stralloc.h gen_alloc.h iopause.h taia.h tai.h uint64.h \
--taia.h
-+taia.h iopause.h alloc.h
-       ./compile server.c
- setup: \
-@@ -979,10 +979,10 @@
-       ./compile timeoutwrite.c
- tinydns: \
--load tinydns.o server.o droproot.o tdlookup.o response.o qlog.o \
-+load tinydns.o server.o iopause.o droproot.o tdlookup.o response.o qlog.o \
- prot.o dns.a libtai.a env.a cdb.a alloc.a buffer.a unix.a byte.a \
- socket.lib
--      ./load tinydns server.o droproot.o tdlookup.o response.o \
-+      ./load tinydns server.o iopause.o droproot.o tdlookup.o response.o \
-       qlog.o prot.o dns.a libtai.a env.a cdb.a alloc.a buffer.a \
-       unix.a byte.a  `cat socket.lib`
-@@ -1084,10 +1084,10 @@
-       ./compile utime.c
- walldns: \
--load walldns.o server.o response.o droproot.o qlog.o prot.o dd.o \
-+load walldns.o server.o iopause.o response.o droproot.o qlog.o prot.o dd.o \
- dns.a env.a cdb.a alloc.a buffer.a unix.a byte.a socket.lib
--      ./load walldns server.o response.o droproot.o qlog.o \
--      prot.o dd.o dns.a env.a cdb.a alloc.a buffer.a unix.a \
-+      ./load walldns server.o iopause.o response.o droproot.o qlog.o \
-+      prot.o dd.o dns.a libtai.a env.a cdb.a alloc.a buffer.a unix.a \
-       byte.a  `cat socket.lib`
- walldns-conf: \
-diff -ur djbdns-1.05/server.c djbdns-1.05-multiip/server.c
---- djbdns-1.05/server.c       Sun Feb 11 21:11:45 2001
-+++ djbdns-1.05-multiip/server.c       Thu Feb 15 16:30:33 2001
-@@ -11,6 +11,8 @@
- #include "qlog.h"
- #include "response.h"
- #include "dns.h"
-+#include "alloc.h"
-+#include "iopause.h"
- extern char *fatal;
- extern char *starting;
-@@ -25,6 +27,11 @@
- static char *q;
-+void nomem()
-+{
-+  strerr_die2x(111,fatal,"out of memory");
-+}
-+
- static int doit(void)
- {
-   unsigned int pos;
-@@ -82,35 +89,74 @@
- int main()
- {
-   char *x;
--  int udp53;
-+  int *udp53;
-+  unsigned int off;
-+  unsigned int cnt;
-+  iopause_fd *iop;
-   x = env_get("IP");
-   if (!x)
-     strerr_die2x(111,fatal,"$IP not set");
--  if (!ip4_scan(x,ip))
--    strerr_die3x(111,fatal,"unable to parse IP address ",x);
--
--  udp53 = socket_udp();
--  if (udp53 == -1)
--    strerr_die2sys(111,fatal,"unable to create UDP socket: ");
--  if (socket_bind4_reuse(udp53,ip,53) == -1)
--    strerr_die2sys(111,fatal,"unable to bind UDP socket: ");
-+  off=0;
-+  cnt=0;
-+  while (x[off]) {
-+    unsigned int l;
-+    char dummy[4];
-+    l=ip4_scan(x+off,dummy);
-+      if (!l)
-+      strerr_die3x(111,fatal,"unable to parse IP address ",x+off);
-+      cnt++;
-+      if (!x[off+l]) break;
-+      if ((x[off+l]!=',') && (x[off+l]!='/'))
-+      strerr_die3x(111,fatal,"unable to parse IP address ",x+off);
-+      off+=l+1;
-+  }
-+  udp53=(int *) alloc(sizeof(int) *cnt);
-+  if (!udp53) nomem();
-+  iop=(iopause_fd *) alloc(sizeof(*iop) * cnt);
-+  if (!iop) nomem();
-+
-+  off=0;
-+  cnt=0;
-+  while (x[off]) {
-+    unsigned int l;
-+    l=ip4_scan(x+off,ip);
-+    udp53[cnt] = socket_udp();
-+    if (udp53[cnt] == -1)
-+      strerr_die2sys(111,fatal,"unable to create UDP socket: ");
-+    if (socket_bind4_reuse(udp53[cnt],ip,53) == -1)
-+      strerr_die2sys(111,fatal,"unable to bind UDP socket: ");
-+      ndelay_off(udp53[cnt]);
-+    socket_tryreservein(udp53[cnt],65536);
-+      iop[cnt].fd=udp53[cnt];
-+      iop[cnt].events=IOPAUSE_READ;
-+      cnt++;
-+      if (!x[off+l]) break;
-+      off+=l+1;
-+  }
-   droproot(fatal);
-   initialize();
--  
--  ndelay_off(udp53);
--  socket_tryreservein(udp53,65536);
-   buffer_putsflush(buffer_2,starting);
--
-+  
-   for (;;) {
--    len = socket_recv4(udp53,buf,sizeof buf,ip,&port);
--    if (len < 0) continue;
--    if (!doit()) continue;
--    if (response_len > 512) response_tc();
--    socket_send4(udp53,response,response_len,ip,port);
--    /* may block for buffer space; if it fails, too bad */
-+    struct taia stamp;
-+    struct taia deadline;
-+      unsigned int i;
-+    taia_now(&stamp);
-+    taia_uint(&deadline,300);
-+    taia_add(&deadline,&deadline,&stamp);
-+    iopause(iop,cnt,&deadline,&stamp);
-+      for (i=0;i<cnt;i++)
-+        if (iop[i].revents) {
-+        len = socket_recv4(udp53[i],buf,sizeof buf,ip,&port);
-+        if (len < 0) continue;
-+        if (!doit()) continue;
-+        if (response_len > 512) response_tc();
-+        socket_send4(udp53[i],response,response_len,ip,port);
-+        /* may block for buffer space; if it fails, too bad */
-+        }
-   }
- }
diff --git a/djbdns-ignoreip.patch b/djbdns-ignoreip.patch
deleted file mode 100644 (file)
index 38fdf84..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-This patch changes djbdns's dnscache program so that it will ignore the
-IP address given in the IGNOREIP environment variable.  I wrote this
-patch because of Verisign's oh-so helpful wildcard A records for *.COM
-and *.NET.  Install the patch like this:
-    patch <djbdns-1.05-ignoreip.patch
-    svc -d /service/dnscache
-    make setup check
-    svc -u /service/dnscache
-
-Configure it to ignore Verisign's wildcard record like this:
-    echo 64.94.110.11 >/service/dnscache/env/IGNOREIP
-    svc -t /service/dnscache
-
-If IGNOREIP isn't found in the environment variable space, nothing is
-ignored.
-
---
---My blog is at angry-economist.russnelson.com  | Free markets express in the
-Crynwr sells support for free software  | PGPok | practical world our belief
-521 Pleasant Valley Rd. | +1 315 268 1925 voice | that there is that of God
-Potsdam, NY 13676-3213  | +1 315 268 9201 FAX   | in all people. -Chris V.
-
-
-diff -u orig/dnscache.c ./dnscache.c
---- orig/dnscache.c    2001-02-11 16:11:45.000000000 -0500
-+++ ./dnscache.c       2003-09-15 23:08:36.000000000 -0400
-@@ -23,6 +23,8 @@
- #include "okclient.h"
- #include "droproot.h"
-+char ignoreip[4];
-+
- static int packetquery(char *buf,unsigned int len,char **q,char qtype[2],char qclass[2],char id[2])
- {
-   unsigned int pos;
-@@ -431,6 +433,11 @@
-   if (!cache_init(cachesize))
-     strerr_die3x(111,FATAL,"not enough memory for cache of size ",x);
-+  x = env_get("IGNOREIP");
-+  if (x)
-+    if (!ip4_scan(x,ignoreip))
-+      strerr_die3x(111,FATAL,"unable to parse IGNOREIP address ",x);
-+
-   if (env_get("HIDETTL"))
-     response_hidettl();
-   if (env_get("FORWARDONLY"))
-diff -u orig/query.c ./query.c
---- orig/query.c       2001-02-11 16:11:45.000000000 -0500
-+++ ./query.c  2003-09-15 23:22:13.000000000 -0400
-@@ -13,6 +13,8 @@
- #include "response.h"
- #include "query.h"
-+extern char ignoreip[];
-+
- static int flagforwardonly = 0;
- void query_forwardonly(void)
-@@ -643,6 +645,8 @@
-         pos = dns_packet_copy(buf,len,pos,header,10); if (!pos) goto DIE;
-         if (byte_equal(header + 8,2,"\0\4")) {
-           pos = dns_packet_copy(buf,len,pos,header,4); if (!pos) goto DIE;
-+        /*          if (*ignoreip) if (byte_equal(header,4,ignoreip)) goto NXDOMAIN;*/
-+          if (*ignoreip) if (byte_equal(header,4,ignoreip)) goto NXDOMAIN;
-           save_data(header,4);
-           log_rr(whichserver,t1,DNS_T_A,header,4,ttl);
-         }
This page took 0.150592 seconds and 4 git commands to generate.