]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
jwhois: New package.
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 18 Feb 2010 13:56:03 +0000 (14:56 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 18 Feb 2010 13:56:03 +0000 (14:56 +0100)
12 files changed:
pkgs/core/jwhois/jwhois.nm [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-conf.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-conf_update.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-conf_update2.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-conf_update3.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-conf_update4.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-connect.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-dotster.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-enum.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-fclose.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-gi.patch [new file with mode: 0644]
pkgs/core/jwhois/patches/jwhois-4.0-ipv6match.patch [new file with mode: 0644]

diff --git a/pkgs/core/jwhois/jwhois.nm b/pkgs/core/jwhois/jwhois.nm
new file mode 100644 (file)
index 0000000..3ac74d4
--- /dev/null
@@ -0,0 +1,57 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007, 2008 Michael Tremer & Christian Schmidt                 #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include $(PKGROOT)/Include
+
+PKG_NAME       = jwhois
+PKG_VER        = 4.0
+PKG_REL        = 0
+
+PKG_MAINTAINER =
+PKG_GROUP      = Applications/Internet
+PKG_URL        = http://www.gnu.org/software/jwhois/
+PKG_LICENSE    = GPLv3
+PKG_SUMMARY    = Internet whois/nicname client.
+
+PKG_DEPS      += gdbm
+
+define PKG_DESCRIPTION
+       A whois client that accepts both traditional and finger-style queries.
+endef
+
+PKG_TARBALL    = $(THISAPP).tar.gz
+
+PKG_PATCHES    = $(THISAPP)-connect.patch
+PKG_PATCHES   += $(THISAPP)-ipv6match.patch
+PKG_PATCHES   += $(THISAPP)-enum.patch
+PKG_PATCHES   += $(THISAPP)-fclose.patch
+PKG_PATCHES   += $(THISAPP)-conf.patch
+PKG_PATCHES   += $(THISAPP)-gi.patch
+PKG_PATCHES   += $(THISAPP)-conf_update.patch
+PKG_PATCHES   += $(THISAPP)-conf_update2.patch
+PKG_PATCHES   += $(THISAPP)-dotster.patch
+PKG_PATCHES   += $(THISAPP)-conf_update3.patch
+PKG_PATCHES   += $(THISAPP)-conf_update4.patch
+
+CONFIGURE_OPTIONS += --sysconfdir=/etc
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-conf.patch b/pkgs/core/jwhois/patches/jwhois-4.0-conf.patch
new file mode 100644 (file)
index 0000000..7de452d
--- /dev/null
@@ -0,0 +1,47 @@
+diff -up jwhois-4.0/example/jwhois.conf_old jwhois-4.0/example/jwhois.conf
+--- jwhois-4.0/example/jwhois.conf_old 2007-03-26 11:12:08.000000000 +0200
++++ jwhois-4.0/example/jwhois.conf     2008-10-13 14:43:48.000000000 +0200
+@@ -593,13 +593,12 @@ cidr6-blocks {
+       "2001:1600::/23" = "whois.ripe.net";
+       "2001:1800::/23" = "whois.arin.net";
+       "2001:1A00::/23" = "whois.ripe.net";
+-      "2001:1C00::/23" = "whois.ripe.net";
+-      "2001:1E00::/23" = "whois.ripe.net";
++      "2001:1C00::/22" = "whois.ripe.net";
+       "2001:2000::/20" = "whois.ripe.net";
+       "2001:3000::/21" = "whois.ripe.net";
+       "2001:3800::/22" = "whois.ripe.net";
+       "2001:4000::/23" = "whois.ripe.net";
+-      "2001:4200::/23" = "whois.arin.net";
++      "2001:4200::/23" = "whois.afrinic.net";
+       "2001:4400::/23" = "whois.apnic.net";
+       "2001:4600::/23" = "whois.ripe.net";
+       "2001:4800::/23" = "whois.arin.net";
+@@ -612,21 +611,15 @@ cidr6-blocks {
+       "2003:0000::/18" = "whois.ripe.net";
+-      "2400:0000::/19" = "whois.apnic.net";
+-      "2400:2000::/19" = "whois.apnic.net";
+-      "2400:4000::/21" = "whois.apnic.net";
+-      "2404:0000::/23" = "whois.apnic.net";
+-
+-      "2600:0000::/22" = "whois.arin.net";
+-      "2604:0000::/22" = "whois.arin.net";
+-      "2608:0000::/22" = "whois.arin.net";
+-      "260C:0000::/22" = "whois.arin.net";
++      "2400:0000::/12" = "whois.apnic.net";
++
++      "2600:0000::/12" = "whois.arin.net";
+       "2610:0000::/23" = "whois.arin.net";
++      "2620:0000::/23" = "whois.arin.net";
+-      "2800:0000::/23" = "whois.lacnic.net";
++      "2800:0000::/12" = "whois.lacnic.net";
+-      "2A00:0000::/21" = "whois.ripe.net";
+-      "2A01:0000::/16" = "whois.ripe.net";
++      "2C00:0000::/12" = "whois.afrinic.net";
+       #
+       # Experimental IPv6 network 6bone (RFC2471)
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-conf_update.patch b/pkgs/core/jwhois/patches/jwhois-4.0-conf_update.patch
new file mode 100644 (file)
index 0000000..f3457e2
--- /dev/null
@@ -0,0 +1,482 @@
+diff -up jwhois-4.0/example/jwhois.conf.conf_update jwhois-4.0/example/jwhois.conf
+--- jwhois-4.0/example/jwhois.conf.conf_update 2009-02-27 10:17:01.000000000 +0100
++++ jwhois-4.0/example/jwhois.conf     2009-02-27 10:57:26.000000000 +0100
+@@ -32,6 +32,7 @@ whois-servers {
+       "^CORE-[0-9]+$" = "struct handles";
+       "^CO[CH]O-[0-9]+$" = "struct handles";
+       ".*-[A-Z]+$" = "struct handles";
++      ".*-6BONE$" = "struct handles";
+       #
+       # Catch AS numbers
+@@ -86,6 +87,7 @@ whois-servers {
+       # Pseudo-ccTLDs must be listed above gTLDs
+       #
+       "\\.ae\\.org$" = "whois.centralnic.net";
++      "\\.ar\\.com$" = "whois.centralnic.com";
+       "\\.br\\.com$" = "whois.centralnic.net";
+       "\\.cn\\.com$" = "whois.centralnic.net";
+       "\\.de\\.com$" = "whois.centralnic.net";
+@@ -108,17 +110,21 @@ whois-servers {
+       "\\.uy\\.com$" = "whois.centralnic.net";
+       "\\.web\\.com$" = "whois.centralnic.net";
+       "\\.za\\.com$" = "whois.centralnic.net";
++      "\\.za\\.net$" = "whois.za.net";
++        "\\.za\\.org$" = "whois.za.org";
+       "\\.ac$" = "whois.nic.ac";
+-      "\\.ae$" = "whois.uaenic.ae";
++      "\\.ae$" = "whois.aeda.net.ae";
+       "\\.aero$" = "whois.aero";
+-      "\\.af$" = "whois.nic.af";
++      "\\.af$" = "whois.cocca.cx";
+       "\\.ag$" = "whois.nic.ag";
+-      "\\.ai$" = "whois.offshore.ai";
++      "\\.ai$" = "whois.ai";
+       "\\.al$" = "whois.ripe.net";
+       "\\.am$" = "whois.amnic.net";
+       "\\.ar$" = "www.nic.ar";
++      "\\.arpa$" = "whois.iana.org";
+       "\\.as$" = "whois.nic.as";
++      "\\.asia$" = "whois.nic.asia";
+       "\\.at$" = "whois.nic.at";
+       "\\.asn\\.au$" = "whois.ausregistry.net.au";
+       "\\.com\\.au$" = "whois.ausregistry.net.au";
+@@ -130,25 +136,33 @@ whois-servers {
+       "\\.ba$" = "whois.ripe.net";
+       "\\.be$" = "whois.dns.be";
+       "\\.bg$" = "whois.register.bg";
+-      "\\.bi$" = "www.nic.bi";
+-      "\\.biz$" = "whois.neulevel.biz";
++      "\\.bi$" = "whois.nic.bi";
++      "\\.biz$" = "whois.biz";
+       "\\.bj$" = "whois.nic.bj";
+       "\\.bm$" = "rwhois.ibl.bm 4321";
++      "\\.bo$" = "whois.nic.bo";
+       "\\.br$" = "whois.nic.br";
+       "\\.bv$" = "whois.ripe.net";
+       "\\.by$" = "whois.ripe.net";
+       "\\.bz$" = "whois.belizenic.bz";
++      "\\.co\\.ca$" = "whois.co.ca";
+       "\\.ca$" = "whois.cira.ca";
+       "\\.cat$" = "whois.cat";
+-      "\\.cc$" = "whois.nic.cc";
++      "\\.cc$" {
++              whois-server = "ccwhois.verisign-grs.com";
++              query-format = "domain $*";
++      }
+       "\\.cd$" = "whois.nic.cd";
+       "\\.cg$" = "www.nic.cg";
+       "\\.ch$" = "whois.nic.ch";
+       "\\.ci$" = "whois.nic.ci";
+       "\\.ck$" = "whois.nic.ck";
+       "\\.cl$" = "whois.nic.cl";
++      "\\.co\\.cm$" = "whois.netcom.cm";
++      "\\.com\\.cm$" = "whois.netcom.cm";
++      "\\.net\\.cm$" = "whois.netcom.cm";
+       "\\.edu\\.cn$" = "whois.edu.cn";
+-      "\\.cn$" = "whois.cnnic.net.cn";
++      "\\.cn$" = "whois.cnnic.cn";
+       "\\.com$" {
+               whois-server = "whois.verisign-grs.com";
+               query-format = "domain $*";
+@@ -166,7 +180,7 @@ whois-servers {
+       "\\.do$" = "whois.nic.do";
+       "\\.dz$" = "whois.ripe.net";
+       "\\.ec$" = "www.nic.ec";
+-      "\\.edu$" = "whois.educause.net";
++      "\\.edu$" = "whois.educause.edu";
+       "\\.ee$" = "whois.eenet.ee";
+       "\\.eg$" = "whois.ripe.net";
+       "\\.es$" = "www.nic.es";
+@@ -176,17 +190,20 @@ whois-servers {
+       "\\.fm$" = "www.dot.fm";
+       "\\.fo$" = "whois.ripe.net";
+       "\\.fr$" = "whois.nic.fr";
++      "\\.gd$" = "whois.adamsnames.com";
+       "\\.gi$" = "whois2.afilias-grs.net";
+       "\\.gov$" = "whois.nic.gov";
+-      "\\.gg$" = "whois.isles.net";
++      "\\.gg$" = "whois.gg";
+       "\\.gm$" = "whois.ripe.net";
+       "\\.gp$" = "whois.nic.gp";
+       "\\.gr$" = "whois.ripe.net";
+-      "\\.gs$" = "203.119.12.22";
++      "\\.gs$" = "whois.nic.gs";
+       "\\.gt$" = "www.gt";
+-      "\\.hk$" = "whois.hkdnr.net.hk";
++      "\\.hk$" = "whois.hkirc.hk";
+       "\\.hm$" = "whois.registry.hm";
++      "\\.hn$" = "whois2.afilias-grs.net";
+       "\\.hr$" = "www.dns.hr";
++      "\\.ht$" = "whois.nic.ht";
+       "\\.hu$" = "whois.nic.hu";
+       "\\.id$" = "whois.idnic.net.id";
+       "\\.ie$" = "whois.domainregistry.ie";
+@@ -200,29 +217,39 @@ whois-servers {
+       "\\.is$" = "whois.isnic.is";
+       "\\.it$" = "whois.nic.it";
+       "\\.je$" = "whois.isles.net";
++      "\\.jobs$" {
++                whois-server = "jobswhois.verisign-grs.com";
++                query-format = "domain $*";
++      }
+       "\\.jp$" {
+               whois-server = "whois.jprs.jp";
+               query-format = "$* /e";
+       }
++      "\\.ke$" = "whois.kenic.or.ke";
++      "\\.kp$" = "whois.kcce.kp";
+       "\\.kg$" = "whois.domain.kg";
+-      "\\.ki$" = "whois.nic.ki";
++      "\\.ki$" = "whois.cocca.cx";
+       "\\.kr$" = "whois.krnic.net";
+       "\\.kz$" = "whois.nic.kz";
+       "\\.la$" = "whois.nic.la";
+       "\\.lb$" = "cgi.aub.edu.lb";
++      "\\.lc$" = "whois2.afilias-grs.net";
+       "\\.li$" = "whois.nic.li";
+       "\\.lk$" = "whois.nic.lk";
+       "\\.lt$" = "whois.domreg.lt";
+       "\\.lu$" = "whois.dns.lu";
+       "\\.lv$" = "whois.nic.lv";
+       "\\.ly$" = "whois.nic.ly";
+-      "\\.ma$" = "whois.ripe.net";
++      "\\.ma$" = "whois.iam.net.ma";
++      "\\.md$" = "whois.nic.md";
++      "\\.me$" = "whois.nic.me";
+       "\\.mil$" = "whois.nic.mil";
+       "\\.mk$" = "whois.ripe.net";
+       "\\.mm$" = "whois.nic.mm";
++      "\\.mn$" = "whois2.afilias-grs.net";
+       "\\.mobi$" = "whois.dotmobiregistry.net";
+-      "\\.ms$" = "whois.adamsnames.tc";
+-      "\\.mt$" = "www.um.edu.mt";
++      "\\.ms$" = "whois.nic.ms";
++      "\\.mt$" = "whois.nic.org.mt";
+       "\\.mu$" = "whois.nic.mu";
+       "\\.museum$" = "whois.museum";
+       "\\.mw$" = "www.tarsus.net";
+@@ -234,31 +261,37 @@ whois-servers {
+               whois-server = "whois.verisign-grs.com";
+               query-format = "domain $*";
+       }
++      "\\.nf$" = "whois.cocca.cx";
+       "\\.ng$" = "whois.rg.net";
+       "\\.nl$" = "whois.domain-registry.nl";
+       "\\.no$" = "whois.norid.no";
+       "\\.nu$" = "whois.nic.nu";
+       "\\.nz$" = "whois.srs.net.nz";
+       "\\.org$" = "whois.publicinterestregistry.net";
+-      "\\.pe$" = "whois.nic.pe";
++      "\\.pe$" = "kero.yachay.pe";
+       "\\.pk$" = "pknic.net.pk";
+       "\\.pl$" = "whois.dns.pl";
+       "\\.pm$" = "whois.nic.pm";
++      "\\.pr$" = "whois.nic.pr";
+       "\\.pro$" = "whois.registrypro.pro";
+       "\\.pt$" = "whois.dns.pt";
+       "\\.pw$" = "whois.nic.pw";
+       "\\.re$" = "whois.nic.re";
+       "\\.ro$" = "whois.rotld.ro";
++      "\\.edu\.ru$" = "whois.informika.ru";
+       "\\.ru$" = "whois.ripn.net";
+       "\\.rw$" = "www.nic.rw";
+       "\\.sa$" = "saudinic.net.sa";
++      "\\.sb$" = "whois.nic.sb";
++      "\\.sc$" = "whois2.afilias-grs.net";
+       "\\.se$" = "whois.iis.se";
+       "\\.sg$" = "whois.nic.net.sg";
+       "\\.sh$" = "whois.nic.sh";
+       "\\.si$" = "whois.arnes.si";
+       "\\.sj$" = "whois.ripe.net";
+-      "\\.sk$" = "whois.ripe.net";
++      "\\.sk$" = "whois.sk-nic.sk";
+       "\\.sm$" = "whois.ripe.net";
++      "\\.sn$" = "whois.nic.sn";
+       "\\.sr$" = "whois.register.sr";
+       "\\.st$" = "whois.nic.st";
+       "\\.su$" = "whois.ripn.net";
+@@ -273,8 +306,12 @@ whois-servers {
+       "\\.tn$" = "whois.ripe.net";
+       "\\.to$" = "whois.tonic.to";
+       "\\.tr$" = "whois.nic.tr";
++      "\\.travel$" = "whois.nic.travel";
+       "\\.tt$" = "www.nic.tt";
+-      "\\.tv$" = "whois.nic.tv";
++      "\\.tv$" {
++              whois-server = "tvwhois.verisign-grs.com";
++              query-format = "domain $*";
++        }
+       "\\.tw$" = "whois.twnic.net";
+       "\\.ua$" = "whois.com.ua";
+       "\\.ug$" = "whois.co.ug";
+@@ -285,8 +322,11 @@ whois-servers {
+       "\\.us$" = "whois.nic.us";
+       "\\.com\\.uy$" = "dns.antel.net.uy";
+       "\\.uy$" = "www.rau.edu.uy"; # is a whois server
+-      "\\.uz$" = "www.noc.uz";
++      "\\.co\\.uz$" = "whois.reg.uz";
++      "\\.com\\.uz$" = "whois.reg.uz";
++      "\\.uz$" = "whois.cctld.uz";
+       "\\.va$" = "whois.ripe.net";
++      "\\.vc$" = "whois2.afilias-grs.net";
+       "\\.ve$" = "whois.nic.ve";
+       "\\.vi$" = "www.nic.vi";
+       "\\.vg$" = "whois.adamsnames.tc";
+@@ -299,6 +339,7 @@ whois-servers {
+       "\\.ac\\.za$" = "whois.ac.za";
+       "\\.org\\.za$" = "rwhois.org.za 4321";
+       "\\.co\\.za$" = "whois.co.za";
++      "\\.nom\\.za$" = "www.nom.za";
+       # "\\.za$" = "whois.frd.ac.za";
+       #
+@@ -594,7 +635,7 @@ cidr-blocks {
+ cidr6-blocks {
+       type = cidr6;
+-      "2001:0000::/23" = "whois.iana.org";
++      "2001:0000::/23" = "whois.iana.org"; # correct, but nothing usable is returned
+       "2001:0200::/23" = "whois.apnic.net";
+       "2001:0400::/23" = "whois.arin.net";
+       "2001:0600::/23" = "whois.ripe.net";
+@@ -611,6 +652,7 @@ cidr6-blocks {
+       "2001:2000::/20" = "whois.ripe.net";
+       "2001:3000::/21" = "whois.ripe.net";
+       "2001:3800::/22" = "whois.ripe.net";
++      "2001:3C00::/22" = "whois.arin.net"; # not correct, but shows better information
+       "2001:4000::/23" = "whois.ripe.net";
+       "2001:4200::/23" = "whois.afrinic.net";
+       "2001:4400::/23" = "whois.apnic.net";
+@@ -623,6 +665,8 @@ cidr6-blocks {
+       "2001:A000::/20" = "whois.apnic.net";
+       "2001:B000::/20" = "whois.apnic.net";
++      "2002:0000::/16" = "whois.arin.net"; # not correct, but shows better information
++
+       "2003:0000::/18" = "whois.ripe.net";
+       "2400:0000::/12" = "whois.apnic.net";
+@@ -636,6 +680,34 @@ cidr6-blocks {
+       "2C00:0000::/12" = "whois.afrinic.net";
+       #
++      # IPv6 blocks by carriers used for SixXS;
++      # see e.g. http://www.sixxs.net/pops/
++      #
++      "2001:0610::/32" = "whois.sixxs.net";
++      "2001:06A0::/32" = "whois.sixxs.net";
++      "2001:06A8::/32" = "whois.sixxs.net";
++      "2001:06F8::/32" = "whois.sixxs.net";
++      "2001:0770::/32" = "whois.sixxs.net";
++      "2001:07B8::/32" = "whois.sixxs.net";
++      "2001:0808::/32" = "whois.sixxs.net";
++      "2001:0838::/32" = "whois.sixxs.net";
++      "2001:0960::/32" = "whois.sixxs.net";
++      "2001:0A60::/32" = "whois.sixxs.net";
++      "2001:0AD0::/32" = "whois.sixxs.net";
++      "2001:0B18::/32" = "whois.sixxs.net";
++      "2001:1418::/32" = "whois.sixxs.net";
++      "2001:14B8::/32" = "whois.sixxs.net";
++      "2001:15C0::/32" = "whois.sixxs.net";
++      "2001:16D8::/32" = "whois.sixxs.net";
++      "2001:1938::/32" = "whois.sixxs.net";
++      "2001:4830::/32" = "whois.sixxs.net";
++      "2001:4978::/32" = "whois.sixxs.net";
++      "2001:41E0::/32" = "whois.sixxs.net";
++      "2001:4428::/32" = "whois.sixxs.net";
++      "2A01:0198::/32" = "whois.sixxs.net";
++      "2A01:0348::/32" = "whois.sixxs.net";
++
++      #
+       # Experimental IPv6 network 6bone (RFC2471)
+       # Phaseout at Jun, 6 2006 (RFC3701)
+       #
+@@ -678,6 +750,33 @@ handles {
+               whois-server = "saudinic.net.sa";
+               query-format = "PERSON $*";
+       }
++      ".*-SIXXS$" = "whois.sixxs.net";
++      ".*-6BONE$" = "whois.6bone.net";
++      ".*-IRNIC$" = "whois.nic.ir";
++      ".*-RIPN$" = "whois.ripn.net";
++      ".*-AFRINIC$" = "whois.afrinic.net";
++      "^C[0-9]+-LRMS$" {
++              whois-server = "whois.afilias.info";
++              query-format = "CONTACT ID $*";
++      }
++      "^D[0-9]+-LRMS$" {
++              whois-server = "whois.afilias.info";
++              query-format = "DOMAIN ID $*";
++      }
++      "^H[0-9]+-LRMS$" {
++              whois-server = "whois.afilias.info";
++              query-format = "HOST ID $*";
++      }
++      "^R[0-9]+-LRMS$" {
++              whois-server = "whois.afilias.info";
++              query-format = "REGISTRAR ID $*";
++      }
++      ".*-KENIC$" = "whois.kenic.or.ke";
++      ".*-UANIC$" = "whois.com.ua";
++      ".*-COOP$" {
++              whois-server = "whois.nic.coop";
++              query-format = "CONTACT $*";
++      }
+ }
+ #
+@@ -685,11 +784,6 @@ handles {
+ # each host. 
+ #
+ server-options {
+-      "rwhois\\.nic\\.ve" {
+-              rwhois = true;
+-              rwhois-display = "dump";
+-              rwhois-limit = 10;
+-      }
+       "rwhois\\.exodus\\.net" {
+               rwhois = true;
+       }
+@@ -761,13 +855,6 @@ server-options {
+               form-element = "name";
+       }
+-      "www\\.um\\.edu\\.mt" {
+-              http = "true";
+-              http-method = "GET";
+-              http-action = "/cgi-bin/nic/whois";
+-              form-element = "domain";
+-      }
+-
+       "www\\.gt" {
+               http = "true";
+               http-method = "GET";
+@@ -784,13 +871,6 @@ server-options {
+               query-format = "Upit=${+2}"; # All but last domain segment
+       }
+-      "whois\\.offshore\\.ai" {
+-              http = "true";
+-              http-method = "POST";
+-              http-action = "/cgi-bin/whois.pl";
+-              form-element = "domain-name";
+-      }
+-
+       "www\\.io\\.io" {
+               http = "true";
+               http-method = "GET";
+@@ -820,11 +900,12 @@ server-options {
+               form-element = "query";
+       }
+-      "www\\.nic\\.bi" {
+-              http = "true";
+-              http-method = "POST";
+-              http-action = "/cgi-bin/whoisbi.pl"; # Formatting problems in Lynx
+-              form-element = "DOMAINWHOIS";
++      "whois\\.nic\\.bi" {
++              http = "true"; # I can't connect on port 43
++              http-method = "GET";
++              http-action = "/register/whois.hei";
++              form-element = "query";
++              form-extra = "type=domain";
+       }
+       "www\\.nic\\.cg" {
+@@ -855,13 +936,6 @@ server-options {
+               form-element = "name";
+       }
+-      "www\\.noc\\.uz" {
+-              http = "true";
+-              http-method = "POST";
+-              http-action = "/whois.php4";
+-              form-element = "dname";
+-      }
+-
+       "www\\.nic\\.vi" {
+               http = "true";
+               http-method = "POST";
+@@ -885,9 +959,9 @@ server-options {
+       "www\\.nic\\.tg" {
+               http = "true";
+-              http-method = "GET";
+-              http-action = "/moteur/info_dom.php";
+-              form-element = "domaine";
++              http-method = "POST";
++              http-action = "/nictg/indexplus.php?pg=verifdom&op=whois";
++              query-format = "tosearch=${+2}&typedom=.tg";
+       }
+       "cgi\\.aub\\.edu\\.lb" {
+@@ -917,38 +991,60 @@ server-options {
+               form-element = "nombre";
+       }
+-      "www\\.denic\\.de" {
+-              http = "true";
+-              http-method = "POST";
+-              http-action = "/en/whois/data.jsp";
+-              form-element = "domainname";
+-              form-extra = "service=WhoisData&lang=en&submit=Accept";
+-      }
+       "whois\\.denic\\.de" {
+               whois-server = "whois.denic.de";
+               query-format = "-C UTF-8 -T dn,ace $*";
+               answer-charset = "UTF-8";
+       }
++
+       "whois\\.enum\\.denic\\.de" {
+               whois-server = "whois.enum.denic.de";
+               query-format = "-C UTF-8 -T dn $*";
+               answer-charset = "UTF-8";
+       }
++
+       "whois\\.nic\\.ad\\.jp" {
+               query-format = "$*/e";
+       }
++
+       "whois\\.nic\\.ch" {
+               answer-charset = "UTF-8";
+       }
++
+       "whois\\.nic\\.li" {
+               answer-charset = "UTF-8";
+       }
++
+       "whois\\.centralnic\\.*" {
+                 whois-redirect = ".*Whois Server: \\(.*\\)";
+         }
++
+       ".*\\.verisign-grs\\.com" {
+               whois-redirect = ".*Whois Server: \\(.*\\)";
+       }
++
++      "whois\\.sixxs\\.net" {
++              whois-redirect = ".*ReferralServer: whois:\/\/\\(.*\\)";
++        }
++
++      "whois2\\.afilias-grs\\.net" {
++              whois-redirect = "Whois Server:\\(.*\\)";
++      }
++
++      "whois\\.registrar\\.telekom\\.de" {
++              query-format = "full $*";
++      }
++
++      "whois\\.rrpproxy\\.net" {
++              answer-charset = "UTF-8";
++      }
++
++      "www\\.nom\\.za" {
++              http = "true";
++              http-method = "POST";
++              http-action = "/do.php";
++              query-format = "chkDomain=${+3}&chkAvail=Check";
++      }
+ }
+ #
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-conf_update2.patch b/pkgs/core/jwhois/patches/jwhois-4.0-conf_update2.patch
new file mode 100644 (file)
index 0000000..df9ca4e
--- /dev/null
@@ -0,0 +1,90 @@
+--- jwhois-4.0/example/jwhois.conf             2009-02-27 22:20:48.000000000 +0100
++++ jwhois-4.0/example/jwhois.conf.rsc         2009-03-08 12:33:22.000000000 +0100
+@@ -178,7 +178,7 @@
+       "\\.dk$" = "whois.dk-hostmaster.dk";
+       "\\.dm$" = "whois.nic.dm";
+       "\\.do$" = "whois.nic.do";
+-      "\\.dz$" = "whois.ripe.net";
++      "\\.dz$" = "www.nic.dz";
+       "\\.ec$" = "www.nic.ec";
+       "\\.edu$" = "whois.educause.edu";
+       "\\.ee$" = "whois.eenet.ee";
+@@ -268,6 +268,7 @@
+       "\\.nu$" = "whois.nic.nu";
+       "\\.nz$" = "whois.srs.net.nz";
+       "\\.org$" = "whois.publicinterestregistry.net";
++      "\\.pa$" = "www.nic.pa";
+       "\\.pe$" = "kero.yachay.pe";
+       "\\.pk$" = "pknic.net.pk";
+       "\\.pl$" = "whois.dns.pl";
+@@ -296,6 +297,7 @@
+       "\\.st$" = "whois.nic.st";
+       "\\.su$" = "whois.ripn.net";
+       "\\.tc$" = "whois.adamsnames.tc";
++      "\\.tel$" = "whois.nic.tel";
+       "\\.tf$" = "whois.afnic.fr";
+       "\\.tg$" = "www.nic.tg";
+       "\\.th$" = "whois.thnic.net";
+@@ -321,7 +323,7 @@
+       "\\.fed\\.us$" = "whois.nic.gov";
+       "\\.us$" = "whois.nic.us";
+       "\\.com\\.uy$" = "dns.antel.net.uy";
+-      "\\.uy$" = "www.rau.edu.uy"; # is a whois server
++      "\\.uy$" = "whois.nic.org.uy";
+       "\\.co\\.uz$" = "whois.reg.uz";
+       "\\.com\\.uz$" = "whois.reg.uz";
+       "\\.uz$" = "whois.cctld.uz";
+@@ -335,7 +337,7 @@
+       "\\.wf$" = "whois.nic.wf";
+       "\\.ws$" = "whois.worldsite.ws";
+       "\\.yt$" = "whois.nic.yt";
+-      "\\.yu$" = "whois.ripe.net";
++      "\\.yu$" = "www.nic.yu";
+       "\\.ac\\.za$" = "whois.ac.za";
+       "\\.org\\.za$" = "rwhois.org.za 4321";
+       "\\.co\\.za$" = "whois.co.za";
+@@ -363,6 +365,7 @@
+       type = regex;
+       "\\.9\\.4\\.e164\\.arpa$" = "whois.enum.denic.de";
++      "\\.1\\.6\\.e164\\.arpa$" = "whois-check.enum.com.au";
+ }
+ #
+@@ -741,7 +744,7 @@
+       ".*-NICAT$" = "whois.nic.at";
+       ".*-CZ$" = "whois.nic.cz";
+       ".*-NICIR$" = "whois.nic.ir";
+-      ".*-UYNIC$" = "www.rau.edu.uy";
++      ".*-UYNIC$" = "whois.nic.org.uy";
+       ".*-ITNIC$" = "whois.nic.it";
+       ".*-FRNIC$" = "whois.nic.fr";
+       ".*-LACNIC$" = "whois.lacnic.net";
+@@ -1045,6 +1048,27 @@
+               http-action = "/do.php";
+               query-format = "chkDomain=${+3}&chkAvail=Check";
+       }
++
++      "www\\.nic\\.pa" {
++              http = "true";
++              http-method = "GET";
++              http-action = "/egh/whois.php";
++              form-element = "nombre_d";
++      }
++
++      "www\\.nic\\.dz" {
++              http = "true";
++              http-method = "POST";
++              http-action = "/index.php?option=com_content&task=view&id=37&Itemid=51";
++              form-element = "domain_name";
++      }
++
++      "www\\.nic\\.yu" {
++              http = "true";
++              http-method = "GET";
++              http-action = "/cgi-bin/checkavail.cgi";
++              form-element = "domain";
++      }
+ }
+ #
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-conf_update3.patch b/pkgs/core/jwhois/patches/jwhois-4.0-conf_update3.patch
new file mode 100644 (file)
index 0000000..a954666
--- /dev/null
@@ -0,0 +1,61 @@
+--- jwhois-4.0/example/jwhois.conf             2009-05-03 13:15:33.000000000 +0200
++++ jwhois-4.0/example/jwhois.conf.rsc         2009-05-03 13:17:52.000000000 +0200
+@@ -119,7 +119,7 @@
+       "\\.af$" = "whois.cocca.cx";
+       "\\.ag$" = "whois.nic.ag";
+       "\\.ai$" = "whois.ai";
+-      "\\.al$" = "whois.ripe.net";
++      "\\.al$" = "www.ert.gov.al";
+       "\\.am$" = "whois.amnic.net";
+       "\\.ar$" = "www.nic.ar";
+       "\\.arpa$" = "whois.iana.org";
+@@ -168,6 +168,7 @@
+               query-format = "domain $*";
+       }
+       "\\.coop$" = "whois.nic.coop";
++      "\\.cu$" = "www.nic.cu";
+       "\\.cx$" = "whois.nic.cx";
+       "\\.cy$" = "whois.ripe.net";
+       "\\.cz$" = "whois.nic.cz";
+@@ -254,7 +255,7 @@
+       "\\.museum$" = "whois.museum";
+       "\\.mw$" = "www.tarsus.net";
+       "\\.mx$" = "whois.nic.mx";
+-      "\\.my$" = "whois.mynic.net.my";
++      "\\.my$" = "whois.domainregistry.my";
+       "\\.na$" = "whois.na-nic.com.na";
+       "\\.name$" = "whois.nic.name";
+       "\\.net$" {
+@@ -293,6 +294,7 @@
+       "\\.sk$" = "whois.sk-nic.sk";
+       "\\.sm$" = "whois.ripe.net";
+       "\\.sn$" = "whois.nic.sn";
++      "\\.so$" = "whois.nic.so";
+       "\\.sr$" = "whois.register.sr";
+       "\\.st$" = "whois.nic.st";
+       "\\.su$" = "whois.ripn.net";
+@@ -1069,9 +1071,24 @@
+               http-action = "/cgi-bin/checkavail.cgi";
+               form-element = "domain";
+       }
++
+       "whois\\.dotster\\.com" {
+               answer-charset = "UTF-8";
+       }
++
++      "www\\.ert\\.gov\\.al" {
++              http = "true";
++              http-method = "POST";
++              http-action = "/ert_eng/domain_res.html";
++              query-format = "Domain=${+2}";
++      }
++
++      "www\\.nic\\.cu" {
++              http = "true";
++              http-method = "GET";
++              http-action = "/dom_det.php";
++              form-element = "domsrch";
++      }
+ }
+ #
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-conf_update4.patch b/pkgs/core/jwhois/patches/jwhois-4.0-conf_update4.patch
new file mode 100644 (file)
index 0000000..ffbe53d
--- /dev/null
@@ -0,0 +1,168 @@
+--- jwhois-4.0/example/jwhois.conf             2009-08-16 17:59:06.000000000 +0200
++++ jwhois-4.0/example/jwhois.conf.rsc         2009-08-16 17:59:39.000000000 +0200
+@@ -121,6 +121,7 @@
+       "\\.ai$" = "whois.ai";
+       "\\.al$" = "www.ert.gov.al";
+       "\\.am$" = "whois.amnic.net";
++      "\\.edu\\.ar$" = "www.riu.edu.ar";
+       "\\.ar$" = "www.nic.ar";
+       "\\.arpa$" = "whois.iana.org";
+       "\\.as$" = "whois.nic.as";
+@@ -142,8 +143,9 @@
+       "\\.bm$" = "rwhois.ibl.bm 4321";
+       "\\.bo$" = "whois.nic.bo";
+       "\\.br$" = "whois.nic.br";
++      "\\.bs$" = "www.register.bs";
+       "\\.bv$" = "whois.ripe.net";
+-      "\\.by$" = "whois.ripe.net";
++      "\\.by$" = "www.domain.by";
+       "\\.bz$" = "whois.belizenic.bz";
+       "\\.co\\.ca$" = "whois.co.ca";
+       "\\.ca$" = "whois.cira.ca";
+@@ -176,7 +178,10 @@
+               whois-server = "whois.denic.de";
+               query-format = "-C UTF-8 -T dn,ace $*";
+       }
+-      "\\.dk$" = "whois.dk-hostmaster.dk";
++      "\\.dk$" {
++              whois-server = "whois.dk-hostmaster.dk";
++              query-format = "--show-handles $*";
++      }
+       "\\.dm$" = "whois.nic.dm";
+       "\\.do$" = "whois.nic.do";
+       "\\.dz$" = "www.nic.dz";
+@@ -257,13 +262,16 @@
+       "\\.mx$" = "whois.nic.mx";
+       "\\.my$" = "whois.domainregistry.my";
+       "\\.na$" = "whois.na-nic.com.na";
+-      "\\.name$" = "whois.nic.name";
++      "\\.name$" {
++              whois-server = "whois.nic.name";
++              query-format = "domain = $*";
++              }
+       "\\.net$" {
+               whois-server = "whois.verisign-grs.com";
+               query-format = "domain $*";
+       }
+       "\\.nf$" = "whois.cocca.cx";
+-      "\\.ng$" = "whois.rg.net";
++      "\\.ng$" = "whois.nic.net.ng";
+       "\\.nl$" = "whois.domain-registry.nl";
+       "\\.no$" = "whois.norid.no";
+       "\\.nu$" = "whois.nic.nu";
+@@ -276,6 +284,7 @@
+       "\\.pm$" = "whois.nic.pm";
+       "\\.pr$" = "whois.nic.pr";
+       "\\.pro$" = "whois.registrypro.pro";
++      "\\.ps$" = "www.nic.ps";
+       "\\.pt$" = "whois.dns.pt";
+       "\\.pw$" = "whois.nic.pw";
+       "\\.re$" = "whois.nic.re";
+@@ -287,17 +296,19 @@
+       "\\.sb$" = "whois.nic.sb";
+       "\\.sc$" = "whois2.afilias-grs.net";
+       "\\.se$" = "whois.iis.se";
+-      "\\.sg$" = "whois.nic.net.sg";
++      "\\.sg$" = "whois.sgnic.sg";
+       "\\.sh$" = "whois.nic.sh";
+       "\\.si$" = "whois.arnes.si";
+       "\\.sj$" = "whois.ripe.net";
+       "\\.sk$" = "whois.sk-nic.sk";
++      "\\.sl$" = "whois.nic.sl";
+       "\\.sm$" = "whois.ripe.net";
+       "\\.sn$" = "whois.nic.sn";
+       "\\.so$" = "whois.nic.so";
+       "\\.sr$" = "whois.register.sr";
+       "\\.st$" = "whois.nic.st";
+       "\\.su$" = "whois.ripn.net";
++      "\\.sv$" = "www.svnet.org.sv";
+       "\\.tc$" = "whois.adamsnames.tc";
+       "\\.tel$" = "whois.nic.tel";
+       "\\.tf$" = "whois.afnic.fr";
+@@ -345,6 +356,7 @@
+       "\\.co\\.za$" = "whois.co.za";
+       "\\.nom\\.za$" = "www.nom.za";
+       # "\\.za$" = "whois.frd.ac.za";
++      "\\.co\\.zw$" = "www.zispa.co.zw";
+       #
+       # Specify different port numbers to connect to by postfixing the IP
+@@ -782,6 +794,22 @@
+               whois-server = "whois.nic.coop";
+               query-format = "CONTACT $*";
+       }
++      ".*CONTACT-NAME$" {
++              whois-server = "whois.nic.name";
++              query-format = "contact = $*";
++      }
++      ".*REGISTRAR-NAME$" {
++              whois-server = "whois.nic.name";
++              query-format = "registrar = $*";
++      }
++      "^C[0-9]+-AERO$" {
++              whois-server = "whois.aero";
++              query-format = "CONTACT ID $*";
++      }
++      "^D[0-9]+-AERO$" {
++              whois-server = "whois.aero";
++              query-format = "DOMAIN ID $*";
++      }
+ }
+ #
+@@ -1089,6 +1117,55 @@
+               http-action = "/dom_det.php";
+               form-element = "domsrch";
+       }
++
++      "www\\.nic\\.ps" {
++              http = "true";
++              http-method = "GET";
++              http-action = "/whois/domain_whois.php";
++              form-element = "dname";
++      }
++
++      "www\\.svnet\\.org\\.sv" {
++              http = "true";
++              http-method = "POST";
++              http-action = "/registro/consultas/whois.php";
++              form-element = "subdominio";
++      }
++
++      "www\\.zispa\\.co\\.zw" {
++              http = "true";
++              http-method = "GET";
++              http-action = "/cgi-bin/search";
++              form-element = "domain";
++      }
++
++      "www\\.riu\\.edu\\.ar" {
++              http = "true";
++              http-method = "POST";
++              http-action = "/cgi-bin/verdom.pl.nuevo";
++              query-format = "username=${+3}";
++      }
++
++      "www\\.register\\.bs" {
++              http = "true";
++              http-method = "POST";
++              http-action = "/cgi-bin/search.pl";
++              form-element = "name";
++      }
++
++      "www\\.domain\\.by" {
++              http = "true";
++              http-method = "POST";
++              http-action = "/cgi-bin/registry.cgi";
++              query-format = "domain=${+2}&lang=e&mode=slquest";
++      }
++
++      "www\\.nic\\.ac" {
++              http = "true";
++              http-method = "GET";
++              http-action = "/cgi-bin/whois";
++              form-element = "textfield";
++      }
+ }
+ #
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-connect.patch b/pkgs/core/jwhois/patches/jwhois-4.0-connect.patch
new file mode 100644 (file)
index 0000000..2a639d7
--- /dev/null
@@ -0,0 +1,58 @@
+This fixes somewhat reversed logic of trying to connect to WHOIS server.
+Tue Nov 20 2007, Lubomir Kundrak <lkundrak@redhat.com>
+
+--- jwhois-4.0/src/utils.c.connect     2007-06-26 09:00:20.000000000 +0200
++++ jwhois-4.0/src/utils.c     2007-11-20 17:05:33.000000000 +0100
+@@ -247,7 +247,7 @@ make_connect(const char *host, int port)
+     {
+       return -1;
+     }
+-  while (res)
++  for (; res; res = res->ai_next)
+     {
+       sa = res->ai_addr;
+       sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+@@ -266,15 +266,15 @@ make_connect(const char *host, int port)
+       flags = fcntl(sockfd, F_GETFL, 0);
+       if (fcntl(sockfd, F_SETFL, flags|O_NONBLOCK) == -1)
+       {
++        close (sockfd);
+         return -1;
+       }
+-
+       error = connect(sockfd, res->ai_addr, res->ai_addrlen);
+-
+       if (error < 0 && errno != EINPROGRESS)
+       {
+-        break;
++        close (sockfd);
++        continue;
+       }
+       FD_ZERO(&fdset);
+@@ -283,18 +283,20 @@ make_connect(const char *host, int port)
+       error = select(FD_SETSIZE, NULL, &fdset, NULL, &timeout);
+       if (error == 0)
+       {
+-        break;
++        close (sockfd);
++        return -1;
+       }
+       retlen = sizeof(retval);
+       error = getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &retval, &retlen);
+       if (error < 0 || retval)
+       {
+-        break;
++        close (sockfd);
++        return -1;
+       }
+-      res = res->ai_next;
++
++      break;
+     }
+-  if (error < 0 || retval) return -1;
+ #endif
+   return sockfd;
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-dotster.patch b/pkgs/core/jwhois/patches/jwhois-4.0-dotster.patch
new file mode 100644 (file)
index 0000000..0f10435
--- /dev/null
@@ -0,0 +1,13 @@
+diff -up jwhois-4.0/example/jwhois.conf_old jwhois-4.0/example/jwhois.conf
+--- jwhois-4.0/example/jwhois.conf_old 2009-04-23 16:16:41.000000000 +0200
++++ jwhois-4.0/example/jwhois.conf     2009-04-23 16:18:15.000000000 +0200
+@@ -1069,6 +1069,9 @@ server-options {
+               http-action = "/cgi-bin/checkavail.cgi";
+               form-element = "domain";
+       }
++      "whois\\.dotster\\.com" {
++              answer-charset = "UTF-8";
++      }
+ }
+ #
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-enum.patch b/pkgs/core/jwhois/patches/jwhois-4.0-enum.patch
new file mode 100644 (file)
index 0000000..1abae4e
--- /dev/null
@@ -0,0 +1,43 @@
+diff -up jwhois-4.0/example/jwhois.conf.enum jwhois-4.0/example/jwhois.conf
+--- jwhois-4.0/example/jwhois.conf.enum        2009-01-27 13:39:48.000000000 +0100
++++ jwhois-4.0/example/jwhois.conf     2009-01-27 13:42:09.000000000 +0100
+@@ -17,6 +17,11 @@ whois-servers {
+       type = regex;
+       #
++      # Catch ENUM domains
++      #
++      "\\([0-9]\\.\\)+e164\\.arpa" = "struct enum-blocks";
++
++      #
+       # You can use the special value `struct' to redirect the query
+       # to another block which optionally can use another type of matching.
+       # Here we use it to have IPv4 numbers matched using CIDR blocks instead
+@@ -311,6 +316,15 @@ whois-servers {
+ }
+ #
++# enum-blocks
++#
++enum-blocks {
++      type = regex;
++
++      "\\.9\\.4\\.e164\\.arpa$" = "whois.enum.denic.de";
++}
++
++#
+ # cidr-blocks contains a list of all known CIDR blocks assigned to
+ # RIPE or APNIC. Default all queries to ARIN which has most other blocks.
+ #
+@@ -915,6 +929,11 @@ server-options {
+               query-format = "-C UTF-8 -T dn,ace $*";
+               answer-charset = "UTF-8";
+       }
++      "whois\\.enum\\.denic\\.de" {
++              whois-server = "whois.enum.denic.de";
++              query-format = "-C UTF-8 -T dn $*";
++              answer-charset = "UTF-8";
++      }
+       "whois\\.nic\\.ad\\.jp" {
+               query-format = "$*/e";
+       }
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-fclose.patch b/pkgs/core/jwhois/patches/jwhois-4.0-fclose.patch
new file mode 100644 (file)
index 0000000..e9c896f
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up jwhois-4.0/src/init.c_old jwhois-4.0/src/init.c
+--- jwhois-4.0/src/init.c_old  2007-06-26 08:59:17.000000000 +0200
++++ jwhois-4.0/src/init.c      2009-01-27 15:49:35.000000000 +0100
+@@ -283,6 +283,8 @@ parse_args(int *argc, char ***argv)
+   if (in)
+     jconfig_parse_file(in);
++  fclose(in);
++
+   if (verbose>1)
+     {
+       printf("[Debug: Cache = %s]\n", cache?"On":"Off");
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-gi.patch b/pkgs/core/jwhois/patches/jwhois-4.0-gi.patch
new file mode 100644 (file)
index 0000000..c5582c9
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up jwhois-4.0/example/jwhois.conf_old jwhois-4.0/example/jwhois.conf
+--- jwhois-4.0/example/jwhois.conf_old 2009-01-23 12:57:35.000000000 +0100
++++ jwhois-4.0/example/jwhois.conf     2009-01-23 12:58:41.000000000 +0100
+@@ -171,7 +171,7 @@ whois-servers {
+       "\\.fm$" = "www.dot.fm";
+       "\\.fo$" = "whois.ripe.net";
+       "\\.fr$" = "whois.nic.fr";
+-      "\\.gi$" = "www.nic.gi";
++      "\\.gi$" = "whois2.afilias-grs.net";
+       "\\.gov$" = "whois.nic.gov";
+       "\\.gg$" = "whois.isles.net";
+       "\\.gm$" = "whois.ripe.net";
diff --git a/pkgs/core/jwhois/patches/jwhois-4.0-ipv6match.patch b/pkgs/core/jwhois/patches/jwhois-4.0-ipv6match.patch
new file mode 100644 (file)
index 0000000..0e5ad0e
--- /dev/null
@@ -0,0 +1,15 @@
+When IPv6 address mask did not end on an octed boundary, the the opposite
+part of last byte of host address was taken into account when a match was
+attempted. -- Lubomir Kundrak <lkundrak@redhat.com>
+
+--- jwhois-4.0/src/lookup.c.ipv6-match 2007-12-04 17:09:57.000000000 +0100
++++ jwhois-4.0/src/lookup.c    2007-12-04 17:10:20.000000000 +0100
+@@ -149,7 +149,7 @@ static int ipv6_address_is_in_network(co
+     }
+   /* i == bits / 8 */
+   if (bits % 8 != 0
+-      && (addr->s6_addr[i] & (0xFFu << (bits % 8))) != net->s6_addr[i])
++      && (addr->s6_addr[i] & (0xFFu << 8-(bits % 8))) != net->s6_addr[i])
+     return 0;
+   return 1;
+ }