Package: whois
Version: 4.6.26
Severity: normal
Tags: patch

http://www.iana.org/assignments/ipv6-tla-assignments shows that
IANA has started allocating IPv6 prefixes from 2003::/16.  The
first allocation, 2003:0000::/18, was to RIPE.

RIPE has already made a further allocation to Deutsche Telecom AG,
2003:0000::/19 for which the information can be seen here
http://www.ripe.net/whois?alt_database=RIPE&recursive=ON&searchtext=2003::/19

The following simple patch teaches whois about the new prefix.  I took
the simple approach since it remains to be seen how the rest of 2003::/16
will be assigned.  The patch is also attached to this report.

--- whois-4.6.26.orig/whois.c   2004-12-28 11:42:10.000000000 +0200
+++ whois-4.6.26.patched/whois.c        2005-01-23 14:26:05.000000000 +0200
@@ -363,6 +363,12 @@
            v6net = strtol(s + 5, NULL, 16);    /* second u16 */
            v6net = (v6net & 0xFE00) >> 8;      /* first 7 bits */
            ip6_assign = ip6_assign_misc;
+       } else if (v6prefix == 0x2003) {
+           v6net = strtol(s + 5, NULL, 16);    /* second u16 */
+           if ((v6net & 0xC000) == 0x0000) {   /* first 2 bits */
+                   return "whois.ripe.net";
+           } else
+                   return "\x06";
        } else if (v6prefix >= 0x2400 && v6prefix <= 0x3A00) {
            v6net = (v6prefix & 0xFC00) >> 8;   /* first 6 bits */
            ip6_assign = ip6_assign_rirs;

-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.10-skas3-v7
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages whois depends on:
ii  libc6                       2.3.2.ds1-20 GNU C Library: Shared libraries an
ii  libidn11                    0.5.2-3      GNU libidn library, implementation

-- no debconf information
--- whois-4.6.26.orig/whois.c	2004-12-28 11:42:10.000000000 +0200
+++ whois-4.6.26.patched/whois.c	2005-01-23 14:26:05.000000000 +0200
@@ -363,6 +363,12 @@
 	    v6net = strtol(s + 5, NULL, 16);	/* second u16 */
 	    v6net = (v6net & 0xFE00) >> 8;	/* first 7 bits */
 	    ip6_assign = ip6_assign_misc;
+	} else if (v6prefix == 0x2003) {
+	    v6net = strtol(s + 5, NULL, 16);	/* second u16 */
+	    if ((v6net & 0xC000) == 0x0000) {	/* first 2 bits */
+		    return "whois.ripe.net";
+	    } else
+		    return "\x06";
 	} else if (v6prefix >= 0x2400 && v6prefix <= 0x3A00) {
 	    v6net = (v6prefix & 0xFC00) >> 8;	/* first 6 bits */
 	    ip6_assign = ip6_assign_rirs;

Reply via email to