From: Michael Tremer Date: Thu, 18 Feb 2010 13:56:03 +0000 (+0100) Subject: jwhois: New package. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d02dcfea36d154f93624c2d5a2778569322c784e;p=ipfire-3.x.git jwhois: New package. --- diff --git a/pkgs/core/jwhois/jwhois.nm b/pkgs/core/jwhois/jwhois.nm new file mode 100644 index 000000000..3ac74d4f4 --- /dev/null +++ b/pkgs/core/jwhois/jwhois.nm @@ -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 . # +# # +############################################################################### + +############################################################################### +# 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 index 000000000..7de452dc9 --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-conf.patch @@ -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 index 000000000..f3457e24c --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-conf_update.patch @@ -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 index 000000000..df9ca4ebf --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-conf_update2.patch @@ -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 index 000000000..a95466616 --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-conf_update3.patch @@ -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 index 000000000..ffbe53da3 --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-conf_update4.patch @@ -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 index 000000000..2a639d779 --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-connect.patch @@ -0,0 +1,58 @@ +This fixes somewhat reversed logic of trying to connect to WHOIS server. +Tue Nov 20 2007, Lubomir Kundrak + +--- 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 index 000000000..0f1043553 --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-dotster.patch @@ -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 index 000000000..1abae4e54 --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-enum.patch @@ -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 index 000000000..e9c896f68 --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-fclose.patch @@ -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 index 000000000..c5582c943 --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-gi.patch @@ -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 index 000000000..0e5ad0e9a --- /dev/null +++ b/pkgs/core/jwhois/patches/jwhois-4.0-ipv6match.patch @@ -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 + +--- 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; + }