From f1b52e5f85f1861b20d1daa7265d073a1d753df6 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Jun 10 2014 14:27:27 +0000 Subject: Add IDNA 2008 support, Update whois server for various domains, Merge all config file updates into one patch, Fix patch adding fallback to original text if IDN conversion fails --- diff --git a/jwhois-4.0-conf-update.patch b/jwhois-4.0-conf-update.patch new file mode 100644 index 0000000..f43d37f --- /dev/null +++ b/jwhois-4.0-conf-update.patch @@ -0,0 +1,743 @@ +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 2014-06-10 15:41:58.442511133 +0200 +@@ -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,29 @@ 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"; + "\\.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 +144,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 +185,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$" = "whois.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,19 +203,23 @@ 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"; ++ "\\.guru$" = "whois.donuts.co"; ++ "\\.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"; ++ "\\.id$" = "whois.pandi.or.id"; + "\\.ie$" = "whois.domainregistry.ie"; + "\\.il$" = "whois.isoc.org.il"; + "\\.in$" = "whois.inregistry.in"; +@@ -195,72 +231,100 @@ 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"; +- "\\.kr$" = "whois.krnic.net"; ++ "\\.ki$" = "whois.cocca.cx"; ++ "\\.kr$" = "whois.kr"; + "\\.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$" = "whois.pnina.ps"; + "\\.pt$" = "whois.dns.pt"; + "\\.pw$" = "whois.nic.pw"; + "\\.re$" = "whois.nic.re"; + "\\.ro$" = "whois.rotld.ro"; +- "\\.ru$" = "whois.ripn.net"; ++ "\\.rs$" = "whois.rnids.rs"; ++ "\\.edu\.ru$" = "whois.informika.ru"; ++ "\\.ru$" = "whois.tcinet.ru"; + "\\.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"; ++ "\\.sy$" = "whois.tld.sy"; + "\\.tc$" = "whois.adamsnames.tc"; ++ "\\.tel$" = "whois.nic.tel"; + "\\.tf$" = "whois.afnic.fr"; + "\\.tg$" = "www.nic.tg"; + "\\.th$" = "whois.thnic.net"; ++ "\\.tips$" = "whois.donuts.co"; + "\\.tj$" = "whois.nic.tj"; + "\\.tk$" = "whois.dot.tk"; + "\\.tl$" = "whois.nic.tl"; +@@ -268,9 +332,13 @@ 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"; +- "\\.tw$" = "whois.twnic.net"; ++ "\\.tv$" { ++ whois-server = "tvwhois.verisign-grs.com"; ++ query-format = "domain $*"; ++ } ++ "\\.tw$" = "whois.twnic.net.tw"; + "\\.ua$" = "whois.com.ua"; + "\\.ug$" = "whois.co.ug"; + "\\.ac\\.uk$" = "whois.ja.net"; +@@ -279,9 +347,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 +360,31 @@ whois-servers { + "\\.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$" = "whois.ripe.net"; + "\\.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 +401,17 @@ 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"; ++ "\\.1\\.7\\.9\\.e164\\.arpa$" = "whois.aeda.net.ae"; ++} ++ ++# + # 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 +681,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 +694,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 +711,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 +787,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 +796,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 +846,6 @@ handles { + # each host. + # + server-options { +- "rwhois\\.nic\\.ve" { +- rwhois = true; +- rwhois-display = "dump"; +- rwhois-limit = 10; +- } + "rwhois\\.exodus\\.net" { + rwhois = true; + } +@@ -754,13 +917,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 +933,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 +962,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 +998,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 +1021,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 +1053,151 @@ 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"; ++ } ++ ++ "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\\.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"; ++ } ++ ++ "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/jwhois-4.0-conf_update.patch b/jwhois-4.0-conf_update.patch deleted file mode 100644 index 512d300..0000000 --- a/jwhois-4.0-conf_update.patch +++ /dev/null @@ -1,714 +0,0 @@ -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/jwhois-4.0-conf_update2.patch b/jwhois-4.0-conf_update2.patch deleted file mode 100644 index 72dd300..0000000 --- a/jwhois-4.0-conf_update2.patch +++ /dev/null @@ -1,163 +0,0 @@ -Patch by Robert Scheck 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/jwhois-4.0-idna.patch b/jwhois-4.0-idna.patch index ff13a4f..f7aac44 100644 --- a/jwhois-4.0-idna.patch +++ b/jwhois-4.0-idna.patch @@ -1,6 +1,6 @@ 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 +--- jwhois-4.0/src/jwhois.c.orig 2014-06-10 15:03:14.242929412 +0200 ++++ jwhois-4.0/src/jwhois.c 2014-06-10 15:08:15.056033249 +0200 @@ -98,7 +98,7 @@ main(int argc, char **argv) /* Parse remaining arguments and place them into the wq @@ -10,32 +10,28 @@ diff -up jwhois-4.0/src/jwhois.c.orig jwhois-4.0/src/jwhois.c { count += strlen(argv[optind])+1; if (!qstring) -@@ -116,19 +116,25 @@ main(int argc, char **argv) +@@ -116,19 +116,21 @@ 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) + #ifdef LIBIDN2 +- rc = idn2_lookup_ul(qstring, &idn, 0); ++ rc = idn2_lookup_ul(argv[optind], &idn, 0); + if (rc != IDN2_OK) { -- 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); +- printf("[IDN encoding of '%s' failed: %s)]\n", qstring, idn2_strerror(rc)); ++ printf("[IDN encoding of '%s' failed: %s)]\n", argv[optind], idn2_strerror(rc)); exit(1); } - wq.query = strdup(idn); + qstring = realloc(qstring, count+strlen(idn)+1); -+ memcpy(qstring+count, -+ idn, -+ 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); ++ memcpy(qstring+count, argv[optind], strlen(argv[optind])+1); #endif + wq.query = qstring; diff --git a/jwhois-4.0-idnfail.patch b/jwhois-4.0-idnfail.patch index c3a5297..f6e025a 100644 --- a/jwhois-4.0-idnfail.patch +++ b/jwhois-4.0-idnfail.patch @@ -1,15 +1,25 @@ -diff -up jwhois-4.0/src/jwhois.c.idnfallback jwhois-4.0/src/jwhois.c ---- jwhois-4.0/src/jwhois.c.idnfallback 2014-04-24 15:32:39.259194588 +0100 -+++ jwhois-4.0/src/jwhois.c 2014-04-25 14:19:55.917151039 +0100 -@@ -118,9 +118,9 @@ main(int argc, char **argv) - } - #ifdef LIBIDN - rc = idna_to_ascii_lz(argv[optind], &idn, 0); -- if (rc != IDNA_SUCCESS) -+ if ( (rc != IDNA_SUCCESS) && ((idn = strdup(argv[optind])) == NULL ) ) +diff -up jwhois-4.0/src/jwhois.c.orig jwhois-4.0/src/jwhois.c +--- jwhois-4.0/src/jwhois.c.orig 2014-06-10 15:27:33.944422031 +0200 ++++ jwhois-4.0/src/jwhois.c 2014-06-10 15:28:47.235677030 +0200 +@@ -120,8 +120,19 @@ main(int argc, char **argv) + rc = idn2_lookup_ul(argv[optind], &idn, 0); + if (rc != IDN2_OK) { -- printf("[IDN encoding of '%s' failed with error code %d]\n", argv[optind], rc); -+ printf("[%s]\n", _("Error allocating memory")); - exit(1); +- printf("[IDN encoding of '%s' failed: %s)]\n", argv[optind], idn2_strerror(rc)); +- exit(1); ++ if (rc == IDN2_TOO_BIG_LABEL) ++ { ++ if ((idn = strdup(argv[optind])) == NULL) ++ { ++ printf("[%s]\n", _("Error allocating memory")); ++ exit(1); ++ } ++ } ++ else ++ { ++ printf("[IDN encoding of '%s' failed: %s)]\n", argv[optind], idn2_strerror(rc)); ++ exit(1); ++ } } qstring = realloc(qstring, count+strlen(idn)+1); + memcpy(qstring+count, idn, strlen(idn)+1); diff --git a/jwhois-4.0-libidn2.patch b/jwhois-4.0-libidn2.patch new file mode 100644 index 0000000..dd6c222 --- /dev/null +++ b/jwhois-4.0-libidn2.patch @@ -0,0 +1,81 @@ +Patch by Robert Scheck for jwhois >= 4.0 which replaces +current GNU Libidn support (IDNA 2003) by GNU Libidn2 support (IDNA 2008). This is +e.g. allowing the 'ß' character in domain names. See also Red Hat Bugzilla #1098785 +for further information: https://bugzilla.redhat.com/show_bug.cgi?id=1098785 + +diff -up jwhois-4.0/configure.ac.orig jwhois-4.0/configure.ac +--- jwhois-4.0/configure.ac.orig 2014-05-21 14:10:22.354201633 +0200 ++++ jwhois-4.0/configure.ac 2014-05-21 14:12:13.024607297 +0200 +@@ -154,26 +154,26 @@ int main() + ], AC_MSG_RESULT(no),AC_MSG_RESULT(no)) + fi + +-AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]], +- [Support IDN (needs GNU Libidn)]), +- libidn=$withval, libidn=yes) +- if test "$libidn" != "no"; then +- if test "$libidn" != "yes"; then +- LDFLAGS="${LDFLAGS} -L$libidn/lib" +- CPPFLAGS="${CPPFLAGS} -I$libidn/include" ++AC_ARG_WITH(libidn2, AC_HELP_STRING([--with-libidn2=[DIR]], ++ [Support IDNA 2008 (needs GNU Libidn2)]), ++ libidn2=$withval, libidn2=yes) ++ if test "$libidn2" != "no"; then ++ if test "$libidn2" != "yes"; then ++ LDFLAGS="${LDFLAGS} -L$libidn2/lib" ++ CPPFLAGS="${CPPFLAGS} -I$libidn2/include" + fi +- AC_CHECK_HEADER(idna.h, +- AC_CHECK_LIB(idn, stringprep_check_version, +- [libidn=yes LIBS="${LIBS} -lidn"], libidn=no), +- libidn=no) ++ AC_CHECK_HEADER(idn2.h, ++ AC_CHECK_LIB(idn2, idn2_lookup_ul, ++ [libidn2=yes LIBS="${LIBS} -lidn2"], libidn2=no), ++ libidn2=no) + fi +- if test "$libidn" != "no" ; then +- AC_DEFINE(LIBIDN, 1, [Define to 1 if you want IDN support.]) ++ if test "$libidn2" != "no" ; then ++ AC_DEFINE(LIBIDN2, 1, [Define to 1 if you want IDNA 2008 support.]) + else +- AC_MSG_WARN([Libidn not found]) ++ AC_MSG_WARN([Libidn2 not found]) + fi +-AC_MSG_CHECKING([if Libidn should be used]) +-AC_MSG_RESULT($libidn) ++AC_MSG_CHECKING([if Libidn2 should be used]) ++AC_MSG_RESULT($libidn2) + + + found=no +diff -up jwhois-4.0/src/jwhois.c.orig jwhois-4.0/src/jwhois.c +--- jwhois-4.0/src/jwhois.c.orig 2014-06-10 14:49:21.829925632 +0200 ++++ jwhois-4.0/src/jwhois.c 2014-06-10 14:50:51.637252426 +0200 +@@ -59,8 +59,8 @@ + # include + #endif + +-#ifdef LIBIDN +-# include ++#ifdef LIBIDN2 ++# include + #endif + + #ifdef ENABLE_NLS +@@ -117,11 +117,11 @@ main(int argc, char **argv) + optind++; + } + qstring[strlen(qstring)-1] = '\0'; +-#ifdef LIBIDN +- rc = idna_to_ascii_lz(qstring, &idn, 0); +- if (rc != IDNA_SUCCESS) ++#ifdef LIBIDN2 ++ rc = idn2_lookup_ul(qstring, &idn, 0); ++ if (rc != IDN2_OK) + { +- printf("[IDN encoding of '%s' failed with error code %d]\n", qstring, rc); ++ printf("[IDN encoding of '%s' failed: %s)]\n", qstring, idn2_strerror(rc)); + exit(1); + } + wq.query = strdup(idn); diff --git a/jwhois.spec b/jwhois.spec index d8861b5..ffa0419 100644 --- a/jwhois.spec +++ b/jwhois.spec @@ -2,28 +2,29 @@ Name: jwhois Version: 4.0 -Release: 34%{?dist} +Release: 35%{?dist} URL: http://www.gnu.org/software/jwhois/ Source0: ftp://ftp.gnu.org/gnu/jwhois/jwhois-%{version}.tar.gz Patch0: jwhois-4.0-connect.patch Patch1: jwhois-4.0-ipv6match.patch Patch2: jwhois-4.0-fclose.patch Patch3: jwhois-4.0-select.patch -Patch4: jwhois-4.0-conf_update.patch +Patch4: jwhois-4.0-conf-update.patch Patch5: jwhois-4.0-multi-homed.patch -Patch6: jwhois-4.0-idna.patch -Patch7: jwhois-4.0-conf_update2.patch +Patch6: jwhois-4.0-libidn2.patch +Patch7: jwhois-4.0-idna.patch Patch8: jwhois-4.0-idnfail.patch License: GPLv3 Group: Applications/Internet Summary: Internet whois/nicname client BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: libidn-devel +BuildRequires: libidn2-devel %if %{with_cache} BuildRequires: gdbm-devel %endif Requires(post): /sbin/install-info, %{_sbindir}/update-alternatives Requires(preun): /sbin/install-info, %{_sbindir}/update-alternatives +Requires: libidn2 %define genname whois %define alternative jwhois @@ -37,11 +38,11 @@ A whois client that accepts both traditional and finger-style queries. %patch1 -p1 -b .ipv6match %patch2 -p1 -b .fclose %patch3 -p1 -b .select -%patch4 -p1 -b .conf_update +%patch4 -p1 -b .conf-update %patch5 -p1 -b .multi-homed -%patch6 -p1 -b .idna -%patch7 -p1 -b .conf_update2 -%patch8 -p1 -b .idnfail.patch +%patch6 -p1 -b .libidn2 +%patch7 -p1 -b .idna +%patch8 -p1 -b .idnfail iconv -f iso-8859-1 -t utf-8 < doc/sv/jwhois.1 > doc/sv/jwhois.1_ mv doc/sv/jwhois.1_ doc/sv/jwhois.1 @@ -120,6 +121,16 @@ fi rm -fr $RPM_BUILD_ROOT %changelog +* Tue Jun 10 2014 Vitezslav Crhonek - 4.0-35 +- Add IDNA 2008 support (patch by Robert Scheck) + Resolves: #1098785 +- Update whois server for .id domain + Resolves: #1106460 +- Add whois servers for .tips and .guru domains +- Merge all config file updates into one patch +- Fix patch adding fallback to original text if IDN conversion fails + because label is longer than 63 characters + * Sun Jun 08 2014 Fedora Release Engineering - 4.0-34 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild