From: git@ipfire.org
To: ipfire-scm@lists.ipfire.org
Subject: [git.ipfire.org] IPFire 2.x development tree branch, next, updated. c5e5324cb6a121f13657df56f22da67e0d465ffa
Date: Thu, 04 Jul 2013 17:32:00 +0200 [thread overview]
Message-ID: <20130704153234.CEBC120861@argus.ipfire.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 41388 bytes --]
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".
The branch, next has been updated
via c5e5324cb6a121f13657df56f22da67e0d465ffa (commit)
from b25387547d45ee4bb8b81e7aab5db4fb2281ae12 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c5e5324cb6a121f13657df56f22da67e0d465ffa
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date: Thu Jul 4 17:31:30 2013 +0200
Replace whois by jwhois.
-----------------------------------------------------------------------
Summary of changes:
config/rootfiles/common/inetutils | 1 -
config/rootfiles/common/jwhois | 23 +
lfs/inetutils | 4 +
lfs/{pango => jwhois} | 21 +-
make.sh | 1 +
src/patches/jwhois-4.0-conf_update.patch | 714 ++++++++++++++++++++++++++++++
src/patches/jwhois-4.0-conf_update2.patch | 163 +++++++
src/patches/jwhois-4.0-connect.patch | 58 +++
src/patches/jwhois-4.0-fclose.patch | 12 +
src/patches/jwhois-4.0-idna.patch | 43 ++
src/patches/jwhois-4.0-ipv6match.patch | 15 +
src/patches/jwhois-4.0-multi-homed.patch | 15 +
src/patches/jwhois-4.0-select.patch | 27 ++
13 files changed, 1092 insertions(+), 5 deletions(-)
create mode 100644 config/rootfiles/common/jwhois
copy lfs/{pango => jwhois} (78%)
create mode 100644 src/patches/jwhois-4.0-conf_update.patch
create mode 100644 src/patches/jwhois-4.0-conf_update2.patch
create mode 100644 src/patches/jwhois-4.0-connect.patch
create mode 100644 src/patches/jwhois-4.0-fclose.patch
create mode 100644 src/patches/jwhois-4.0-idna.patch
create mode 100644 src/patches/jwhois-4.0-ipv6match.patch
create mode 100644 src/patches/jwhois-4.0-multi-homed.patch
create mode 100644 src/patches/jwhois-4.0-select.patch
Difference in files:
diff --git a/config/rootfiles/common/inetutils b/config/rootfiles/common/inetutils
index 3cea63c..fb33fb0 100644
--- a/config/rootfiles/common/inetutils
+++ b/config/rootfiles/common/inetutils
@@ -5,7 +5,6 @@ bin/ping
#usr/bin/rsh
#usr/bin/talk
#usr/bin/tftp
-usr/bin/whois
#usr/sbin/ftpd
#usr/sbin/inetd
#usr/sbin/rexecd
diff --git a/config/rootfiles/common/jwhois b/config/rootfiles/common/jwhois
new file mode 100644
index 0000000..4ee96ba
--- /dev/null
+++ b/config/rootfiles/common/jwhois
@@ -0,0 +1,23 @@
+etc/jwhois.conf
+usr/bin/jwhois
+usr/bin/whois
+#usr/share/info/jwhois.info
+#usr/share/locale/es/LC_MESSAGES/jwhois.mo
+#usr/share/locale/fr/LC_MESSAGES/jwhois.mo
+#usr/share/locale/hu/LC_MESSAGES/jwhois.mo
+#usr/share/locale/id/LC_MESSAGES/jwhois.mo
+#usr/share/locale/it/LC_MESSAGES/jwhois.mo
+#usr/share/locale/nl/LC_MESSAGES/jwhois.mo
+#usr/share/locale/pl/LC_MESSAGES/jwhois.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/jwhois.mo
+#usr/share/locale/ro/LC_MESSAGES/jwhois.mo
+#usr/share/locale/ru/LC_MESSAGES/jwhois.mo
+#usr/share/locale/rw/LC_MESSAGES/jwhois.mo
+#usr/share/locale/sv/LC_MESSAGES/jwhois.mo
+#usr/share/locale/tr/LC_MESSAGES/jwhois.mo
+#usr/share/locale/vi/LC_MESSAGES/jwhois.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/jwhois.mo
+#usr/share/man/man1/jwhois.1
+#usr/share/man/sv
+#usr/share/man/sv/man1
+#usr/share/man/sv/man1/jwhois.1
diff --git a/lfs/inetutils b/lfs/inetutils
index 468c2af..ba87c9c 100644
--- a/lfs/inetutils
+++ b/lfs/inetutils
@@ -80,5 +80,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
mv -v /usr/bin/ping /bin
+
+ # Don't use whois command from here.
+ rm -vf /usr/bin/whois
+
@rm -rf $(DIR_APP)
@$(POSTBUILD)
diff --git a/lfs/jwhois b/lfs/jwhois
new file mode 100644
index 0000000..46abec4
--- /dev/null
+++ b/lfs/jwhois
@@ -0,0 +1,90 @@
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007 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 Config
+
+VER = 4.0
+
+THISAPP = jwhois-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 977d0ba90ee058a7998c94d933fc9546
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+ @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/jwhois-4.0-conf_update.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/jwhois-4.0-conf_update2.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/jwhois-4.0-connect.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/jwhois-4.0-fclose.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/jwhois-4.0-idna.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/jwhois-4.0-ipv6match.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/jwhois-4.0-multi-homed.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/jwhois-4.0-select.patch
+
+ cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
+ cd $(DIR_APP) && make $(MAKETUNING)
+ cd $(DIR_APP) && make install
+
+ # Add alias for whois command.
+ ln -svf jwhois /usr/bin/whois
+
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 71df2c9..8ae9491 100755
--- a/make.sh
+++ b/make.sh
@@ -336,6 +336,7 @@ buildbase() {
lfsmake2 gzip
lfsmake2 inetutils
lfsmake2 iproute2
+ lfsmake2 jwhois
lfsmake2 kbd
lfsmake2 less
lfsmake2 make
diff --git a/src/patches/jwhois-4.0-conf_update.patch b/src/patches/jwhois-4.0-conf_update.patch
new file mode 100644
index 0000000..512d300
--- /dev/null
+++ b/src/patches/jwhois-4.0-conf_update.patch
@@ -0,0 +1,714 @@
+diff -up jwhois-4.0/example/jwhois.conf.orig jwhois-4.0/example/jwhois.conf
+--- jwhois-4.0/example/jwhois.conf.orig 2007-03-26 11:12:08.000000000 +0200
++++ jwhois-4.0/example/jwhois.conf 2010-12-20 14:26:06.450882316 +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
+@@ -27,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
+@@ -81,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";
+@@ -103,17 +110,30 @@ 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";
++ "\\.co\\.ae$" = "whois.aeda.net.ae";
++ "\\.net\\.ae$" = "whois.aeda.net.ae";
++ "\\.org\\.ae$" = "whois.aeda.net.ae";
++ "\\.sch\\.ae$" = "whois.aeda.net.ae";
++ "\\.ac\\.ae$" = "whois.aeda.net.ae";
++ "\\.mil\\.ae$" = "whois.aeda.net.ae";
++ "\\.gov\\.ae$" = "whois.aeda.net.ae";
++ "\\.1\\.7\\.9\\.e164\\.arpa$" = "whois.aeda.net.ae";
+ "\\.aero$" = "whois.aero";
+- "\\.af$" = "whois.nic.af";
++ "\\.af$" = "whois.cocca.cx";
+ "\\.ag$" = "whois.nic.ag";
+- "\\.ai$" = "whois.offshore.ai";
+- "\\.al$" = "whois.ripe.net";
++ "\\.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";
++ "\\.asia$" = "whois.nic.asia";
+ "\\.at$" = "whois.nic.at";
+ "\\.asn\\.au$" = "whois.ausregistry.net.au";
+ "\\.com\\.au$" = "whois.ausregistry.net.au";
+@@ -125,30 +145,40 @@ 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";
++ "\\.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";
+ "\\.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 $*";
+ }
+ "\\.coop$" = "whois.nic.coop";
++ "\\.cu$" = "www.nic.cu";
+ "\\.cx$" = "whois.nic.cx";
+ "\\.cy$" = "whois.ripe.net";
+ "\\.cz$" = "whois.nic.cz";
+@@ -156,12 +186,15 @@ whois-servers {
+ 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$" = "whois.ripe.net";
++ "\\.dz$" = "www.nic.dz";
+ "\\.ec$" = "www.nic.ec";
+- "\\.edu$" = "whois.educause.net";
++ "\\.edu$" = "whois.educause.edu";
+ "\\.ee$" = "whois.eenet.ee";
+ "\\.eg$" = "whois.ripe.net";
+ "\\.es$" = "www.nic.es";
+@@ -171,17 +204,20 @@ whois-servers {
+ "\\.fm$" = "www.dot.fm";
+ "\\.fo$" = "whois.ripe.net";
+ "\\.fr$" = "whois.nic.fr";
+- "\\.gi$" = "www.nic.gi";
++ "\\.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";
+@@ -195,69 +231,94 @@ 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";
+ "\\.mx$" = "whois.nic.mx";
+- "\\.my$" = "whois.mynic.net.my";
++ "\\.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 $*";
+ }
+- "\\.ng$" = "whois.rg.net";
++ "\\.nf$" = "whois.cocca.cx";
++ "\\.ng$" = "whois.nic.net.ng";
+ "\\.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";
++ "\\.pa$" = "www.nic.pa";
++ "\\.pe$" = "kero.yachay.pe";
+ "\\.pk$" = "pknic.net.pk";
+ "\\.pl$" = "whois.dns.pl";
+ "\\.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";
+ "\\.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";
++ "\\.sg$" = "whois.sgnic.sg";
+ "\\.sh$" = "whois.nic.sh";
+ "\\.si$" = "whois.arnes.si";
+ "\\.sj$" = "whois.ripe.net";
+- "\\.sk$" = "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";
+ "\\.tg$" = "www.nic.tg";
+ "\\.th$" = "whois.thnic.net";
+@@ -268,8 +329,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";
+@@ -279,9 +344,12 @@ whois-servers {
+ "\\.fed\\.us$" = "whois.nic.gov";
+ "\\.us$" = "whois.nic.us";
+ "\\.com\\.uy$" = "dns.antel.net.uy";
+- "\\.uy$" = "www.rau.edu.uy"; # is a whois server
+- "\\.uz$" = "www.noc.uz";
++ "\\.uy$" = "whois.nic.org.uy";
++ "\\.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";
+@@ -289,12 +357,15 @@ whois-servers {
+ "\\.vu$" = "www.vunic.vu";
+ "\\.wf$" = "whois.nic.wf";
+ "\\.ws$" = "whois.worldsite.ws";
++ "\\.xn--mgbaam7a8h$" = "whois.aeda.net.ae";
+ "\\.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";
++ "\\.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
+@@ -311,6 +382,16 @@ whois-servers {
+ }
+
+ #
++# enum-blocks
++#
++enum-blocks {
++ type = regex;
++
++ "\\.9\\.4\\.e164\\.arpa$" = "whois.enum.denic.de";
++ "\\.1\\.6\\.e164\\.arpa$" = "whois-check.enum.com.au";
++}
++
++#
+ # 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.
+ #
+@@ -580,7 +661,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";
+@@ -593,13 +674,13 @@ 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:3C00::/22" = "whois.arin.net"; # not correct, but shows better information
+ "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";
+@@ -610,23 +691,47 @@ 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::/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::/12" = "whois.lacnic.net";
+
+- "2800:0000::/23" = "whois.lacnic.net";
++ "2C00:0000::/12" = "whois.afrinic.net";
+
+- "2A00:0000::/21" = "whois.ripe.net";
+- "2A01:0000::/16" = "whois.ripe.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)
+@@ -662,7 +767,7 @@ handles {
+ ".*-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";
+@@ -671,6 +776,49 @@ 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 $*";
++ }
++ ".*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 $*";
++ }
+ }
+
+ #
+@@ -678,11 +826,6 @@ handles {
+ # each host.
+ #
+ server-options {
+- "rwhois\\.nic\\.ve" {
+- rwhois = true;
+- rwhois-display = "dump";
+- rwhois-limit = 10;
+- }
+ "rwhois\\.exodus\\.net" {
+ rwhois = true;
+ }
+@@ -754,13 +897,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";
+@@ -777,13 +913,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";
+@@ -813,11 +942,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" {
+@@ -848,13 +978,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";
+@@ -878,9 +1001,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" {
+@@ -910,33 +1033,152 @@ 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";
++ }
++
++ "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";
++ }
++
++ "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";
++ }
++
++ "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";
++ }
++
++ "whois\\.1api\\.net" {
++ answer-charset = "UTF-8";
++ }
+ }
+
+ #
diff --git a/src/patches/jwhois-4.0-conf_update2.patch b/src/patches/jwhois-4.0-conf_update2.patch
new file mode 100644
index 0000000..72dd300
--- /dev/null
+++ b/src/patches/jwhois-4.0-conf_update2.patch
@@ -0,0 +1,163 @@
+Patch by Robert Scheck <robert(a)fedoraproject.org> for jwhois >= 4.0, which adds various new
+IDN top-level-domains, updates some whois servers of ccTLDs and corrects the answer charset
+setting for some whois servers, too.
+
+--- jwhois-4.0/example/jwhois.conf 2011-05-22 20:36:19.000000000 +0200
++++ jwhois-4.0/example/jwhois.conf.conf_update2 2011-05-22 23:46:21.000000000 +0200
+@@ -122,7 +122,6 @@
+ "\\.ac\\.ae$" = "whois.aeda.net.ae";
+ "\\.mil\\.ae$" = "whois.aeda.net.ae";
+ "\\.gov\\.ae$" = "whois.aeda.net.ae";
+- "\\.1\\.7\\.9\\.e164\\.arpa$" = "whois.aeda.net.ae";
+ "\\.aero$" = "whois.aero";
+ "\\.af$" = "whois.cocca.cx";
+ "\\.ag$" = "whois.nic.ag";
+@@ -192,7 +191,7 @@
+ }
+ "\\.dm$" = "whois.nic.dm";
+ "\\.do$" = "whois.nic.do";
+- "\\.dz$" = "www.nic.dz";
++ "\\.dz$" = "whois.nic.dz";
+ "\\.ec$" = "www.nic.ec";
+ "\\.edu$" = "whois.educause.edu";
+ "\\.ee$" = "whois.eenet.ee";
+@@ -243,7 +242,7 @@
+ "\\.kp$" = "whois.kcce.kp";
+ "\\.kg$" = "whois.domain.kg";
+ "\\.ki$" = "whois.cocca.cx";
+- "\\.kr$" = "whois.krnic.net";
++ "\\.kr$" = "whois.kr";
+ "\\.kz$" = "whois.nic.kz";
+ "\\.la$" = "whois.nic.la";
+ "\\.lb$" = "cgi.aub.edu.lb";
+@@ -292,13 +291,14 @@
+ "\\.pm$" = "whois.nic.pm";
+ "\\.pr$" = "whois.nic.pr";
+ "\\.pro$" = "whois.registrypro.pro";
+- "\\.ps$" = "www.nic.ps";
++ "\\.ps$" = "whois.pnina.ps";
+ "\\.pt$" = "whois.dns.pt";
+ "\\.pw$" = "whois.nic.pw";
+ "\\.re$" = "whois.nic.re";
+ "\\.ro$" = "whois.rotld.ro";
++ "\\.rs$" = "whois.rnids.rs";
+ "\\.edu\.ru$" = "whois.informika.ru";
+- "\\.ru$" = "whois.ripn.net";
++ "\\.ru$" = "whois.tcinet.ru";
+ "\\.rw$" = "www.nic.rw";
+ "\\.sa$" = "saudinic.net.sa";
+ "\\.sb$" = "whois.nic.sb";
+@@ -317,6 +317,7 @@
+ "\\.st$" = "whois.nic.st";
+ "\\.su$" = "whois.ripn.net";
+ "\\.sv$" = "www.svnet.org.sv";
++ "\\.sy$" = "whois.tld.sy";
+ "\\.tc$" = "whois.adamsnames.tc";
+ "\\.tel$" = "whois.nic.tel";
+ "\\.tf$" = "whois.afnic.fr";
+@@ -335,7 +336,7 @@
+ whois-server = "tvwhois.verisign-grs.com";
+ query-format = "domain $*";
+ }
+- "\\.tw$" = "whois.twnic.net";
++ "\\.tw$" = "whois.twnic.net.tw";
+ "\\.ua$" = "whois.com.ua";
+ "\\.ug$" = "whois.co.ug";
+ "\\.ac\\.uk$" = "whois.ja.net";
+@@ -357,9 +358,25 @@
+ "\\.vu$" = "www.vunic.vu";
+ "\\.wf$" = "whois.nic.wf";
+ "\\.ws$" = "whois.worldsite.ws";
++ "\\.xn--3e0b707e$" = "whois.kr";
++ "\\.xn--90a3ac$" = "whois.rnids.rs";
++ "\\.xn--clchc0ea0b2g2a9gcd$" = "whois.sgnic.sg";
++ "\\.xn--fiqs8s$" = "cwhois.cnnic.cn";
++ "\\.xn--fiqz9s$" = "cwhois.cnnic.cn";
++ "\\.xn--fzc2c9e2c$" = "whois.nic.lk";
++ "\\.xn--j6w193g$" = "whois.hkirc.hk";
++ "\\.xn--kprw13d$" = "whois.twnic.net.tw";
++ "\\.xn--kpry57d$" = "whois.twnic.net.tw";
++ "\\.xn--lgbbat1ad8j$" = "whois.nic.dz";
+ "\\.xn--mgbaam7a8h$" = "whois.aeda.net.ae";
++ "\\.xn--mgberp4a5d4ar$" = "whois.nic.net.sa";
++ "\\.xn--o3cw4h$" = "whois.thnic.co.th";
++ "\\.xn--ogbpf8fl$" = "whois.tld.sy";
++ "\\.xn--p1ai$" = "whois.tcinet.ru";
++ "\\.xn--xkc2al3hye2a$" = "whois.nic.lk";
++ "\\.xn--yfro4i67o$" = "whois.sgnic.sg";
++ "\\.xn--ygbi2ammx$" = "whois.pnina.ps";
+ "\\.yt$" = "whois.nic.yt";
+- "\\.yu$" = "www.nic.yu";
+ "\\.ac\\.za$" = "whois.ac.za";
+ "\\.org\\.za$" = "rwhois.org.za 4321";
+ "\\.co\\.za$" = "whois.co.za";
+@@ -389,6 +406,7 @@
+
+ "\\.9\\.4\\.e164\\.arpa$" = "whois.enum.denic.de";
+ "\\.1\\.6\\.e164\\.arpa$" = "whois-check.enum.com.au";
++ "\\.1\\.7\\.9\\.e164\\.arpa$" = "whois.aeda.net.ae";
+ }
+
+ #
+@@ -1095,20 +1113,6 @@
+ 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";
+- }
+-
+ "whois\\.dotster\\.com" {
+ answer-charset = "UTF-8";
+ }
+@@ -1127,13 +1131,6 @@
+ 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";
+@@ -1179,6 +1176,26 @@
+ "whois\\.1api\\.net" {
+ answer-charset = "UTF-8";
+ }
++
++ "whois\\.kr" {
++ answer-charset = "EUC-KR";
++ }
++
++ "whois\\.nic\\.or\\.kr" {
++ answer-charset = "EUC-KR";
++ }
++
++ "whois\\.nic\\.dz" {
++ answer-charset = "UTF-8";
++ }
++
++ "whois\\.nic\\.lk" {
++ answer-charset = "ISO-8859-11";
++ }
++
++ "whois\\.iana\\.org" {
++ answer-charset = "UTF-8";
++ }
+ }
+
+ #
diff --git a/src/patches/jwhois-4.0-connect.patch b/src/patches/jwhois-4.0-connect.patch
new file mode 100644
index 0000000..2a639d7
--- /dev/null
+++ b/src/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 <lkundrak(a)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/src/patches/jwhois-4.0-fclose.patch b/src/patches/jwhois-4.0-fclose.patch
new file mode 100644
index 0000000..e9c896f
--- /dev/null
+++ b/src/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/src/patches/jwhois-4.0-idna.patch b/src/patches/jwhois-4.0-idna.patch
new file mode 100644
index 0000000..ff13a4f
--- /dev/null
+++ b/src/patches/jwhois-4.0-idna.patch
@@ -0,0 +1,43 @@
+diff -up jwhois-4.0/src/jwhois.c.orig jwhois-4.0/src/jwhois.c
+--- jwhois-4.0/src/jwhois.c.orig 2007-06-26 08:59:35.000000000 +0200
++++ jwhois-4.0/src/jwhois.c 2011-05-24 12:29:37.398892451 +0200
+@@ -98,7 +98,7 @@ main(int argc, char **argv)
+
+ /* Parse remaining arguments and place them into the wq
+ structure. */
+- while (optind < argc)
++ while (optind < argc-1)
+ {
+ count += strlen(argv[optind])+1;
+ if (!qstring)
+@@ -116,19 +116,25 @@ main(int argc, char **argv)
+ strcat(qstring, " ");
+ optind++;
+ }
+- qstring[strlen(qstring)-1] = '\0';
+ #ifdef LIBIDN
+- rc = idna_to_ascii_lz(qstring, &idn, 0);
++ rc = idna_to_ascii_lz(argv[optind], &idn, 0);
+ if (rc != IDNA_SUCCESS)
+ {
+- printf("[IDN encoding of '%s' failed with error code %d]\n", qstring, rc);
++ printf("[IDN encoding of '%s' failed with error code %d]\n", argv[optind], rc);
+ exit(1);
+ }
+- wq.query = strdup(idn);
++ qstring = realloc(qstring, count+strlen(idn)+1);
++ memcpy(qstring+count,
++ idn,
++ strlen(idn)+1);
+ free(idn);
+ #else
+- wq.query = qstring;
++ qstring = realloc(qstring, count+strlen(argv[optind])+1);
++ memcpy(qstring+count,
++ argv[optind],
++ strlen(argv[optind])+1);
+ #endif
++ wq.query = qstring;
+
+ if (ghost)
+ {
diff --git a/src/patches/jwhois-4.0-ipv6match.patch b/src/patches/jwhois-4.0-ipv6match.patch
new file mode 100644
index 0000000..0e5ad0e
--- /dev/null
+++ b/src/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 <lkundrak(a)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;
+ }
diff --git a/src/patches/jwhois-4.0-multi-homed.patch b/src/patches/jwhois-4.0-multi-homed.patch
new file mode 100644
index 0000000..05d6f46
--- /dev/null
+++ b/src/patches/jwhois-4.0-multi-homed.patch
@@ -0,0 +1,15 @@
+diff -up jwhois-4.0/src/utils.c.orig jwhois-4.0/src/utils.c
+--- jwhois-4.0/src/utils.c.orig 2010-09-29 16:19:24.453608330 +0200
++++ jwhois-4.0/src/utils.c 2010-09-29 16:20:10.686608189 +0200
+@@ -292,7 +292,10 @@ make_connect(const char *host, int port)
+ if (error < 0 || retval)
+ {
+ close (sockfd);
+- return -1;
++ if (retval == ENETUNREACH)
++ continue;
++ else
++ return -1;
+ }
+
+ break;
diff --git a/src/patches/jwhois-4.0-select.patch b/src/patches/jwhois-4.0-select.patch
new file mode 100644
index 0000000..b60ec96
--- /dev/null
+++ b/src/patches/jwhois-4.0-select.patch
@@ -0,0 +1,27 @@
+diff -ur jwhois-4.0.old/src/whois.c jwhois-4.0/src/whois.c
+--- jwhois-4.0.old/src/whois.c 2007-06-26 03:00:29.000000000 -0400
++++ jwhois-4.0/src/whois.c 2009-04-29 11:42:56.000000000 -0400
+@@ -115,6 +115,7 @@
+ unsigned int count, start_count;
+ int ret;
+ char data[MAXBUFSIZE];
++ fd_set rfds;
+
+ count = 0;
+
+@@ -124,7 +125,15 @@
+
+ do
+ {
++ FD_ZERO(&rfds);
++ FD_SET(fd, &rfds);
++ ret = select(fd + 1, &rfds, NULL, NULL, NULL);
++
++ if (ret <= 0)
++ return -1;
++
+ ret = read(fd, data, MAXBUFSIZE-1);
++
+ if (ret >= 0)
+ {
+ count += ret;
hooks/post-receive
--
IPFire 2.x development tree
reply other threads:[~2013-07-04 15:32 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130704153234.CEBC120861@argus.ipfire.org \
--to=git@ipfire.org \
--cc=ipfire-scm@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox