Search
j0ke.net Open Build Service
>
Projects
>
home:netmax
>
whois
> 5.2.0_5.2.3.diff
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File 5.2.0_5.2.3.diff of Package whois (Revision 34)
Currently displaying revision
34
,
show latest
diff -uNr whois-5.2.0/config.h whois-5.2.3/config.h --- whois-5.2.0/config.h 2014-08-02 03:31:54.000000000 +0200 +++ whois-5.2.3/config.h 2014-12-26 19:56:21.000000000 +0100 @@ -81,6 +81,15 @@ # define RANDOM_DEVICE "/dev/urandom" #endif +/* use arc4random_buf instead if it is available */ +#if (defined __FreeBSD__ && __FreeBSD__ >= 9) || \ + (defined __NetBSD__ && __NetBSD_Version__ >= 600000000) || \ + (defined OpenBSD && OpenBSD >= 200805) || \ + (defined __APPLE__ && defined __MACH__) +# define HAVE_ARC4RANDOM_BUF +# undef RANDOM_DEVICE +#endif + #ifdef ENABLE_NLS # ifndef NLS_CAT_NAME # define NLS_CAT_NAME "whois" diff -uNr whois-5.2.0/data.h whois-5.2.3/data.h --- whois-5.2.0/data.h 2014-08-02 03:41:06.000000000 +0200 +++ whois-5.2.3/data.h 2014-10-16 01:57:19.000000000 +0200 @@ -11,17 +11,13 @@ "whois.apnic.net", "whois.afrinic.net", "rr.arin.net", /* does not accept the old syntax */ - "whois.6bone.net", /* 3.0.0b1 */ "whois.connect.com.au", /* 3.0.0b1 */ "whois.nic.fr", - "whois.telstra.net", "whois.restena.lu", "rr.level3.net", /* 3.0.0a13 */ "whois.ripn.net", "whois.arnes.si", - "www.registry.co.ug", "whois.nic.ir", - "whois.nic.ck", "whois.ra.net", "whois.bgpmon.net", NULL @@ -159,6 +155,11 @@ NULL, NULL }; +const char *nic_handles_post[] = { +#include "nic_handles.h" + NULL, NULL +}; + #ifdef HAVE_ICONV struct server_charset { const char *name; diff -uNr whois-5.2.0/debian/changelog whois-5.2.3/debian/changelog --- whois-5.2.0/debian/changelog 2014-09-13 05:13:21.000000000 +0200 +++ whois-5.2.3/debian/changelog 2014-12-26 20:14:35.000000000 +0100 @@ -1,3 +1,36 @@ +whois (5.2.3) unstable; urgency=medium + + * Added the .gw TLD server. + * Updated the .bm, .gr, .gt, .md, .np, .py, .tc, .tg, .vi, .net.za, + .org.za and .web.za TLD servers. (Closes: #773489) + * Removed the .cg TLD server. + * Updated the list of new gTLDs. + * mkpasswd: use arc4random_buf(3) where available. + * mkpasswd: support OpenBSD's new hash 2b. + * Updated some IPv4 allocations. + * Remove the new_gtlds.h generated file from the Debian source package. + + -- Marco d'Itri <md@linux.it> Fri, 26 Dec 2014 20:12:24 +0100 + +whois (5.2.2) unstable; urgency=medium + + * Fixed the code that removes trailing dots. (Closes: #763834) + * Added the .xn--d1alf (.мкд, Macedonia) and .xn--node (.გე, Georgia) + TLD servers. + * Updated the list of new gTLDs. + + -- Marco d'Itri <md@linux.it> Thu, 06 Nov 2014 03:47:43 +0100 + +whois (5.2.1) unstable; urgency=medium + + * Added the .aw and .zm TLD servers. + * Added the charset for whois.domain.kg. + * Updated the list of new gTLDs. + * Queries for bare TLDs will be directed to whois.iana.org. + (Closes: #763833) + + -- Marco d'Itri <md@linux.it> Thu, 16 Oct 2014 02:01:20 +0200 + whois (5.2.0) unstable; urgency=medium * Implemented support for the long RIPE flags. diff -uNr whois-5.2.0/debian/control whois-5.2.3/debian/control --- whois-5.2.0/debian/control 2013-12-26 18:03:01.000000000 +0100 +++ whois-5.2.3/debian/control 2014-10-16 01:57:19.000000000 +0200 @@ -2,7 +2,7 @@ Section: net Priority: standard Maintainer: Marco d'Itri <md@linux.it> -Standards-Version: 3.9.5 +Standards-Version: 3.9.6 Build-Depends: debhelper (>= 5), gettext, libidn11-dev Vcs-Git: git://github.com/rfc1036/whois.git Vcs-Browser: https://github.com/rfc1036/whois diff -uNr whois-5.2.0/ip_del_list whois-5.2.3/ip_del_list --- whois-5.2.0/ip_del_list 2014-08-02 03:31:54.000000000 +0200 +++ whois-5.2.3/ip_del_list 2014-12-26 19:56:21.000000000 +0100 @@ -19,6 +19,7 @@ 39.0.0.0/8 apnic 41.0.0.0/8 afrinic 42.0.0.0/8 apnic +43.224.0.0/11 apnic 43.0.0.0/8 whois.nic.ad.jp 46.0.0.0/8 ripe 49.0.0.0/8 apnic @@ -149,11 +150,6 @@ 196.0.0.0/7 afrinic 198.0.0.0/7 arin -200.17.0.0/16 whois.nic.br -200.18.0.0/15 whois.nic.br -200.20.0.0/16 whois.nic.br -200.96.0.0/13 whois.nic.br -200.128.0.0/9 whois.nic.br 200.0.0.0/7 lacnic 202.11.0.0/16 whois.nic.ad.jp 202.13.0.0/16 whois.nic.ad.jp diff -uNr whois-5.2.0/Makefile whois-5.2.3/Makefile --- whois-5.2.0/Makefile 2014-08-02 03:31:54.000000000 +0200 +++ whois-5.2.3/Makefile 2014-12-26 20:14:34.000000000 +0100 @@ -87,6 +87,9 @@ new_gtlds.h: new_gtlds_list make_new_gtlds.pl $(PERL) make_new_gtlds.pl < $< > $@ +nic_handles.h: nic_handles_list make_nic_handles.pl + $(PERL) make_nic_handles.pl < $< > $@ + tld_serv.h: tld_serv_list make_tld_serv.pl $(PERL) make_tld_serv.pl < $< > $@ @@ -118,7 +121,7 @@ clean: rm -f Makefile.depend as_del.h as32_del.h ip_del.h ip6_del.h \ - tld_serv.h servers_charset.h *.o whois mkpasswd + new_gtlds.h tld_serv.h servers_charset.h *.o whois mkpasswd rm -f po/*.mo pos: diff -uNr whois-5.2.0/make_new_gtlds.pl whois-5.2.3/make_new_gtlds.pl --- whois-5.2.0/make_new_gtlds.pl 2014-08-02 03:31:54.000000000 +0200 +++ whois-5.2.3/make_new_gtlds.pl 2014-10-16 01:57:19.000000000 +0200 @@ -9,8 +9,8 @@ s/^\s+//; s/\s+$//; next if /^$/; - die "format error: $_" if not /^((?:xn--)?[a-z0-9]+)$/; + die "format error: $_" if not /^(xn--[a-z0-9-]+|[a-z]+)$/; - print qq| ".$_",\n|; + print qq| "$_",\n|; } diff -uNr whois-5.2.0/make_nic_handles.pl whois-5.2.3/make_nic_handles.pl --- whois-5.2.0/make_nic_handles.pl 1970-01-01 01:00:00.000000000 +0100 +++ whois-5.2.3/make_nic_handles.pl 2014-10-16 01:57:19.000000000 +0200 @@ -0,0 +1,17 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +while (<>) { + chomp; + s/#.*$//; + s/^\s+//; s/\s+$//; + next if /^$/; + + die "format error: $_" if not + (my ($a, $b) = /^(-\w+)\s+([\w\d\.:-]+)$/); + + print qq| "$a",\t"$b",\n|; +} + diff -uNr whois-5.2.0/make_tld_serv.pl whois-5.2.3/make_tld_serv.pl --- whois-5.2.0/make_tld_serv.pl 2014-08-02 03:31:54.000000000 +0200 +++ whois-5.2.3/make_tld_serv.pl 2014-10-16 01:57:19.000000000 +0200 @@ -10,7 +10,7 @@ next if /^$/; die "format error: $_" if not - (my ($a, $b) = /^([\w\d\.-]+)\s+([\w\d\.:-]+|[A-Z]+\s+.*)$/); + (my ($a, $b) = /^\.(\w[\w\d\.-]+)\s+([\w\d\.:-]+|[A-Z]+\s+.*)$/); $b =~ s/^W(?:EB)?\s+/\\x01/; $b =~ s/^VERISIGN\s+/\\x04" "/; diff -uNr whois-5.2.0/mkpasswd.c whois-5.2.3/mkpasswd.c --- whois-5.2.0/mkpasswd.c 2014-09-13 02:42:29.000000000 +0200 +++ whois-5.2.3/mkpasswd.c 2014-12-26 19:56:21.000000000 +0100 @@ -86,7 +86,13 @@ N_("standard 56 bit DES-based crypt(3)") }, { "md5", "$1$", 8, 8, 0, "MD5" }, #if defined OpenBSD || defined FreeBSD || (defined __SVR4 && defined __sun) +# if (defined OpenBSD && OpenBSD >= 201405) + /* http://marc.info/?l=openbsd-misc&m=139320023202696 */ + { "bf", "$2b$", 22, 22, 1, "Blowfish" }, + { "bfa", "$2a$", 22, 22, 1, "Blowfish (obsolete $2a$ version)" }, +# else { "bf", "$2a$", 22, 22, 1, "Blowfish" }, +# endif #endif #if defined HAVE_LINUX_CRYPT_GENSALT { "bf", "$2a$", 22, 22, 1, "Blowfish, system-specific on 8-bit chars" }, @@ -377,20 +383,27 @@ } #endif -#ifdef RANDOM_DEVICE +#if defined RANDOM_DEVICE || defined HAVE_ARC4RANDOM_BUF void generate_salt(char *const buf, const unsigned int len) { unsigned int i; + unsigned char *entropy; + +#if defined HAVE_ARC4RANDOM_BUF + void *entropy = NOFAIL(malloc(len)); + arc4random_buf(entropy, len); +#else + entropy = get_random_bytes(len); +#endif - unsigned char *entropy = get_random_bytes(len * sizeof(unsigned char)); for (i = 0; i < len; i++) buf[i] = valid_salts[entropy[i] % (sizeof valid_salts - 1)]; buf[i] = '\0'; free(entropy); } -#else /* RANDOM_DEVICE */ +#else /* RANDOM_DEVICE || HAVE_ARC4RANDOM_BUF */ void generate_salt(char *const buf, const unsigned int len) { @@ -418,7 +431,7 @@ buf[i] = '\0'; } -#endif /* RANDOM_DEVICE */ +#endif /* RANDOM_DEVICE || HAVE_ARC4RANDOM_BUF */ void display_help(int error) { diff -uNr whois-5.2.0/new_gtlds.h whois-5.2.3/new_gtlds.h --- whois-5.2.0/new_gtlds.h 2014-09-13 05:15:04.000000000 +0200 +++ whois-5.2.3/new_gtlds.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,399 +0,0 @@ - ".academy", - ".accountants", - ".active", - ".actor", - ".agency", - ".airforce", - ".archi", - ".army", - ".associates", - ".attorney", - ".auction", - ".audio", - ".autos", - ".axa", - ".bar", - ".bargains", - ".bayern", - ".beer", - ".berlin", - ".best", - ".bid", - ".bike", - ".bio", - ".black", - ".blackfriday", - ".blue", - ".bmw", - ".bnpparibas", - ".boo", - ".boutique", - ".brussels", - ".build", - ".builders", - ".business", - ".buzz", - ".bzh", - ".cab", - ".camera", - ".camp", - ".cancerresearch", - ".capetown", - ".capital", - ".caravan", - ".cards", - ".care", - ".career", - ".careers", - ".cash", - ".catering", - ".center", - ".ceo", - ".cern", - ".cheap", - ".christmas", - ".church", - ".citic", - ".city", - ".claims", - ".cleaning", - ".click", - ".clinic", - ".clothing", - ".club", - ".codes", - ".coffee", - ".college", - ".cologne", - ".com", - ".community", - ".company", - ".computer", - ".condos", - ".construction", - ".consulting", - ".contractors", - ".cooking", - ".cool", - ".country", - ".credit", - ".creditcard", - ".cruises", - ".cuisinella", - ".cymru", - ".dad", - ".dance", - ".dating", - ".day", - ".deals", - ".degree", - ".democrat", - ".dental", - ".dentist", - ".desi", - ".diamonds", - ".diet", - ".digital", - ".direct", - ".directory", - ".discount", - ".dnp", - ".domains", - ".durban", - ".eat", - ".education", - ".email", - ".engineer", - ".engineering", - ".enterprises", - ".equipment", - ".esq", - ".estate", - ".eus", - ".events", - ".exchange", - ".expert", - ".exposed", - ".fail", - ".farm", - ".feedback", - ".finance", - ".financial", - ".fish", - ".fishing", - ".fitness", - ".flights", - ".florist", - ".foo", - ".foundation", - ".frl", - ".frogans", - ".fund", - ".furniture", - ".futbol", - ".gal", - ".gallery", - ".gbiz", - ".gent", - ".gift", - ".gifts", - ".gives", - ".glass", - ".global", - ".globo", - ".gmail", - ".gmo", - ".gmx", - ".gop", - ".graphics", - ".gratis", - ".green", - ".gripe", - ".guide", - ".guitars", - ".guru", - ".hamburg", - ".haus", - ".healthcare", - ".help", - ".here", - ".hiphop", - ".hiv", - ".holdings", - ".holiday", - ".homes", - ".horse", - ".host", - ".hosting", - ".house", - ".how", - ".immo", - ".immobilien", - ".industries", - ".info", - ".ing", - ".ink", - ".institute", - ".insure", - ".international", - ".investments", - ".jetzt", - ".joburg", - ".juegos", - ".kaufen", - ".kim", - ".kitchen", - ".kiwi", - ".koeln", - ".krd", - ".kred", - ".lacaixa", - ".land", - ".lawyer", - ".lease", - ".lgbt", - ".life", - ".lighting", - ".limited", - ".limo", - ".link", - ".loans", - ".london", - ".lotto", - ".ltda", - ".luxe", - ".luxury", - ".maison", - ".management", - ".mango", - ".market", - ".marketing", - ".media", - ".meet", - ".melbourne", - ".meme", - ".menu", - ".miami", - ".mini", - ".moda", - ".moe", - ".monash", - ".mortgage", - ".moscow", - ".motorcycles", - ".mov", - ".nagoya", - ".navy", - ".net", - ".network", - ".neustar", - ".new", - ".ngo", - ".nhk", - ".ninja", - ".nra", - ".nrw", - ".nyc", - ".okinawa", - ".ong", - ".onl", - ".ooo", - ".org", - ".organic", - ".otsuka", - ".ovh", - ".paris", - ".partners", - ".parts", - ".pharmacy", - ".photo", - ".photography", - ".photos", - ".physio", - ".pics", - ".pictures", - ".pink", - ".pizza", - ".place", - ".plumbing", - ".praxi", - ".press", - ".prod", - ".productions", - ".properties", - ".property", - ".pub", - ".qpon", - ".quebec", - ".realtor", - ".recipes", - ".red", - ".rehab", - ".reise", - ".reisen", - ".ren", - ".rentals", - ".repair", - ".report", - ".republican", - ".rest", - ".restaurant", - ".reviews", - ".rich", - ".rio", - ".rocks", - ".rodeo", - ".rsvp", - ".ruhr", - ".ryukyu", - ".saarland", - ".sarl", - ".sca", - ".scb", - ".schmidt", - ".schule", - ".scot", - ".services", - ".sexy", - ".shiksha", - ".shoes", - ".singles", - ".social", - ".software", - ".sohu", - ".solar", - ".solutions", - ".soy", - ".space", - ".spiegel", - ".supplies", - ".supply", - ".support", - ".surf", - ".surgery", - ".suzuki", - ".systems", - ".tatar", - ".tattoo", - ".tax", - ".technology", - ".tienda", - ".tips", - ".tirol", - ".today", - ".tokyo", - ".tools", - ".top", - ".town", - ".toys", - ".trade", - ".training", - ".university", - ".uno", - ".uol", - ".vacations", - ".vegas", - ".ventures", - ".versicherung", - ".vet", - ".viajes", - ".villas", - ".vision", - ".vlaanderen", - ".vodka", - ".vote", - ".voting", - ".voto", - ".voyage", - ".wales", - ".wang", - ".watch", - ".webcam", - ".website", - ".wed", - ".whoswho", - ".wien", - ".wiki", - ".williamhill", - ".wme", - ".works", - ".wtc", - ".wtf", - ".xn--1qqw23a", - ".xn--3bst00m", - ".xn--3ds443g", - ".xn--4gbrim", - ".xn--55qw42g", - ".xn--55qx5d", - ".xn--6frz82g", - ".xn--6qq986b3xl", - ".xn--80adxhks", - ".xn--80asehdb", - ".xn--80aswg", - ".xn--c1avg", - ".xn--cg4bki", - ".xn--czr694b", - ".xn--czru2d", - ".xn--d1acj3b", - ".xn--fiq228c5hs", - ".xn--fiq64b", - ".xn--i1b6b1a6a2e", - ".xn--io0a7i", - ".xn--kput3i", - ".xn--mgbab2bd", - ".xn--ngbc5azd", - ".xn--nqv7f", - ".xn--nqv7fs00ema", - ".xn--q9jyb4c", - ".xn--rhqv96g", - ".xn--ses554g", - ".xn--unup4y", - ".xn--vhquv", - ".xn--xhq521b", - ".xn--zfr164b", - ".xyz", - ".yachts", - ".yandex", - ".yokohama", - ".youtube", - ".zone", diff -uNr whois-5.2.0/new_gtlds_list whois-5.2.3/new_gtlds_list --- whois-5.2.0/new_gtlds_list 2014-09-13 05:13:16.000000000 +0200 +++ whois-5.2.3/new_gtlds_list 2014-12-26 19:56:21.000000000 +0100 @@ -4,12 +4,19 @@ # Any exceptions can be handled in tld_serv_list as usual, since it will # be checked first. +abogado academy accountants active actor +adult agency airforce +allfinanz +alsace +amsterdam +android +aquarelle archi army associates @@ -18,6 +25,7 @@ audio autos axa +band bar bargains bayern @@ -29,18 +37,21 @@ bio black blackfriday +bloomberg blue bmw bnpparibas boo boutique brussels +budapest build builders business buzz bzh cab +cal camera camp cancerresearch @@ -51,13 +62,17 @@ care career careers +cartier +casa cash catering center ceo cern +channel cheap christmas +chrome church citic city @@ -67,11 +82,11 @@ clinic clothing club +coach codes coffee college cologne -com community company computer @@ -84,6 +99,8 @@ country credit creditcard +cricket +crs cruises cuisinella cymru @@ -93,10 +110,12 @@ day deals degree +delivery democrat dental dentist desi +dev diamonds diet digital @@ -104,33 +123,46 @@ directory discount dnp +docs domains +doosan durban +dvag eat education email +emerck +energy engineer engineering enterprises equipment esq estate +eurovision eus events +everbank exchange expert exposed fail farm +fashion feedback finance financial +firmdale fish fishing fitness flights florist +flowers +flsmidth +fly foo +forsale foundation frl frogans @@ -139,17 +171,21 @@ futbol gal gallery +garden gbiz gent +ggee gift gifts gives glass +gle global globo gmail gmo gmx +google gop graphics gratis @@ -173,16 +209,18 @@ hosting house how +ibm immo immobilien industries -info ing ink institute insure international investments +irish +iwc jetzt joburg juegos @@ -195,9 +233,13 @@ kred lacaixa land +latrobe lawyer +lds lease +legal lgbt +lidl life lighting limited @@ -209,6 +251,7 @@ ltda luxe luxury +madrid maison management mango @@ -218,22 +261,25 @@ meet melbourne meme +memorial menu miami mini moda moe monash +money +mormon mortgage moscow motorcycles mov nagoya navy -net network neustar new +nexus ngo nhk ninja @@ -244,13 +290,14 @@ ong onl ooo -org organic +osaka otsuka ovh paris partners parts +party pharmacy photo photography @@ -262,10 +309,14 @@ pizza place plumbing +pohl +poker +porn praxi press prod productions +prof properties property pub @@ -277,6 +328,7 @@ rehab reise reisen +reit ren rentals repair @@ -287,23 +339,30 @@ reviews rich rio +rip rocks rodeo rsvp ruhr ryukyu saarland +sale +samsung sarl sca scb schmidt schule +schwarz +science scot services +sew sexy shiksha shoes singles +sky social software sohu @@ -318,13 +377,16 @@ surf surgery suzuki +sydney systems +taipei tatar tattoo tax technology tienda tips +tires tirol today tokyo @@ -334,6 +396,8 @@ toys trade training +trust +tui university uno uol @@ -343,6 +407,7 @@ versicherung vet viajes +video villas vision vlaanderen @@ -357,17 +422,21 @@ webcam website wed +wedding whoswho wien wiki williamhill wme +work works +world wtc wtf xn--1qqw23a xn--3bst00m xn--3ds443g +xn--45q11c xn--4gbrim xn--55qw42g xn--55qx5d @@ -379,10 +448,13 @@ xn--c1avg xn--cg4bki xn--czr694b +xn--czrs0t xn--czru2d xn--d1acj3b xn--fiq228c5hs xn--fiq64b +xn--flw351e +xn--hxt814e xn--i1b6b1a6a2e xn--io0a7i xn--kput3i @@ -390,16 +462,23 @@ xn--ngbc5azd xn--nqv7f xn--nqv7fs00ema +xn--p1acf xn--q9jyb4c +xn--qcka1pmc xn--rhqv96g xn--ses554g xn--unup4y +xn--vermgensberater-ctb +xn--vermgensberatung-pwb xn--vhquv xn--xhq521b xn--zfr164b xyz yachts yandex +yoga yokohama youtube +zip zone +zuerich diff -uNr whois-5.2.0/nic_handles.h whois-5.2.3/nic_handles.h --- whois-5.2.0/nic_handles.h 1970-01-01 01:00:00.000000000 +0100 +++ whois-5.2.3/nic_handles.h 2014-10-16 02:03:04.000000000 +0200 @@ -0,0 +1,22 @@ + "-arin", "whois.arin.net", + "-ripe", "whois.ripe.net", + "-mnt", "whois.ripe.net", + "-lacnic", "whois.lacnic.net", + "-afrinic", "whois.afrinic.net", + "-ap", "whois.apnic.net", + "-cznic", "whois.nic.cz", + "-dk", "whois.dk-hostmaster.dk", + "-il", "whois.isoc.org.il", + "-is", "whois.isnic.is", + "-kg", "whois.domain.kg", + "-coop", "whois.nic.coop", + "-frnic", "whois.nic.fr", + "-lrms", "whois.afilias.info", + "-metu", "whois.nic.tr", + "-nicat", "whois.nic.at", + "-nicci", "whois.nic.ci", + "-irnic", "whois.nic.ir", + "-norid", "whois.norid.no", + "-tel", "whois.nic.tel", + "-adnic", "whois.nic.org.uy", + "-sixxs", "whois.sixxs.net", diff -uNr whois-5.2.0/nic_handles_list whois-5.2.3/nic_handles_list --- whois-5.2.0/nic_handles_list 1970-01-01 01:00:00.000000000 +0100 +++ whois-5.2.3/nic_handles_list 2014-10-16 01:57:19.000000000 +0200 @@ -0,0 +1,22 @@ +-arin whois.arin.net +-ripe whois.ripe.net +-mnt whois.ripe.net +-lacnic whois.lacnic.net +-afrinic whois.afrinic.net +-ap whois.apnic.net +-cznic whois.nic.cz +-dk whois.dk-hostmaster.dk +-il whois.isoc.org.il +-is whois.isnic.is +-kg whois.domain.kg +-coop whois.nic.coop +-frnic whois.nic.fr +-lrms whois.afilias.info +-metu whois.nic.tr +-nicat whois.nic.at +-nicci whois.nic.ci +-irnic whois.nic.ir +-norid whois.norid.no +-tel whois.nic.tel +-adnic whois.nic.org.uy +-sixxs whois.sixxs.net diff -uNr whois-5.2.0/po/eu.po whois-5.2.3/po/eu.po --- whois-5.2.0/po/eu.po 2013-04-18 03:29:36.000000000 +0200 +++ whois-5.2.3/po/eu.po 2014-10-16 02:01:05.000000000 +0200 @@ -11,7 +11,7 @@ "PO-Revision-Date: 2002-08-24 16:22+0200\n" "Last-Translator: Aitor Ibaez <aitiba@gmail.com>\n" "Language-Team: Euskara <Librezale@librezale.org>\n" -"Language: \n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" diff -uNr whois-5.2.0/po/pt_BR.po whois-5.2.3/po/pt_BR.po --- whois-5.2.0/po/pt_BR.po 2013-04-18 03:29:36.000000000 +0200 +++ whois-5.2.3/po/pt_BR.po 2014-10-16 02:01:05.000000000 +0200 @@ -11,7 +11,7 @@ "PO-Revision-Date: 2006-04-26 21:03-0300\n" "Last-Translator: Anderson Goulart <globalx@gmail.com>\n" "Language-Team: Portuguese/Brazil\n" -"Language: \n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" diff -uNr whois-5.2.0/servers_charset_list whois-5.2.3/servers_charset_list --- whois-5.2.0/servers_charset_list 2014-08-02 03:31:54.000000000 +0200 +++ whois-5.2.3/servers_charset_list 2014-11-12 03:35:56.000000000 +0100 @@ -32,6 +32,7 @@ whois.nic.it utf-8 whois.jprs.jp iso-2022-jp whois.nic.ad.jp iso-2022-jp +whois.domain.kg cp1251 whois.nic.or.kr utf-8 whois.kr utf-8 # XXX I had to guess: the server is unable to fully transcode U+49b in the @@ -40,6 +41,7 @@ whois.nic.li utf-8 whois.domreg.lt utf-8 whois.dns.lu iso-8859-1 +whois.marnet.mk utf-8 whois.nic.mu utf-8 whois.norid.no iso-8859-1 whois.iis.nu utf-8 diff -uNr whois-5.2.0/tld_serv_list whois-5.2.3/tld_serv_list --- whois-5.2.0/tld_serv_list 2014-08-21 02:35:29.000000000 +0200 +++ whois-5.2.3/tld_serv_list 2014-12-26 19:56:21.000000000 +0100 @@ -91,7 +91,7 @@ .bi whois1.nic.bi .bj whois.nic.bj #.bl -.bm WEB http://207.228.133.14/cgi-bin/lansaweb?procfun+BMWHO+BMWHO2+WHO +.bm WEB http://www.bermudanic.bm/cgi-bin/lansaweb?procfun+BMWHO+BMWHO2+WHO .bn whois.bn # www.brunet.bn .bo whois.nic.bo #.bq @@ -107,7 +107,7 @@ .cc VERISIGN ccwhois.verisign-grs.com .cd whois.nic.cd .cf whois.dot.cf -.cg WEB http://www.nic.cg/cgi-bin/whois.pl +.cg NONE .ch whois.nic.ch .ci whois.nic.ci .ck NONE @@ -156,12 +156,12 @@ .gm WEB http://www.nic.gm/htmlpages/whois.htm .gn NONE # http://www.psg.com/dns/gn/ .gp WEB https://www.dom-enic.com/whois.html -.gq NONE # NO NIC http://www.getesa.gq/ -.gr WEB https://grweb.ics.forth.gr/Whois?lang=en +.gq whois.dominio.gq +.gr WEB https://grweb.ics.forth.gr/public/whois.jsp?lang=en .gs whois.nic.gs -.gt WEB http://www.gt/who_is.html +.gt WEB http://www.gt/ .gu WEB http://gadao.gov.gu/domainsearch.htm -.gw NONE # currently no registry +.gw WEB http://nic.gw/en/whois/ .gy whois.registry.gy .hk whois.hkirc.hk .hm whois.registry.hm @@ -185,7 +185,7 @@ .jp whois.jprs.jp .ke whois.kenic.or.ke .kg whois.domain.kg -.kh NONE # http://www.mptc.gov.kh/DomainNameRegistrationForm.aspx http://www.nic.net.kh/ +.kh NONE # http://www.trc.gov.kh/index.php/en/newsCategory/view?id=42&detail_id=68 .ki whois.nic.mu .km NONE # www.domaine.km .kn WEB http://www.nic.kn/ @@ -207,7 +207,7 @@ .ly whois.nic.ly .ma whois.iam.net.ma # www.nic.ma .mc NONE # www.nic.mc -.md WEB http://www.dns.md/wh1.php # whois.nic.md is restricted +.md whois.nic.md .me whois.nic.me # afilias #.mf .mg whois.nic.mg @@ -227,7 +227,7 @@ .mw WEB http://www.registrar.mw/ .mx whois.mx .my whois.mynic.my -.mz NONE # NIC? www.uem.mz +.mz whois.nic.mz .na whois.na-nic.com.na .nc whois.nc .ne NONE # NIC? http://www.intnet.ne @@ -236,7 +236,7 @@ .ni WEB http://www.nic.ni/ .nl whois.domain-registry.nl .no whois.norid.no -.np WEB http://register.mos.com.np/userSearchInc.asp +.np WEB http://register.mos.com.np/np-whois-lookup .nr WEB http://www.cenpac.net.nr/dns/whois.html .nu whois.iis.nu .nz whois.srs.net.nz @@ -255,7 +255,7 @@ .ps whois.pnina.ps .pt whois.dns.pt .pw whois.nic.pw -.py WEB http://www.nic.py/consultas.html +.py WEB http://www.nic.py/consulta-datos.php .qa whois.registry.qa .re whois.nic.re .ro whois.rotld.ro @@ -285,10 +285,10 @@ .sx whois.sx .sy whois.tld.sy .sz NONE # http://www.sispa.org.sz/ -.tc whois.meridiantld.net +.tc whois.nic.tc .td WEB http://www.nic.td/ .tf whois.nic.tf -.tg WEB http://www.nic.tg/ +.tg whois.nic.tg .th whois.thnic.co.th .tj WEB http://www.nic.tj/whois.html .tk whois.dot.tk @@ -329,7 +329,7 @@ .vc AFILIAS .ve whois.nic.ve .vg whois.adamsnames.tc -.vi WEB http://www.nic.vi/whoisform.htm +.vi WEB https://secure.nic.vi/whois-lookup/ .vn WEB http://www.vnnic.vn/en/domain .vu vunic.vu .wf whois.nic.wf @@ -340,10 +340,10 @@ .alt.za whois.alt.za .co.za whois.registry.net.za .gov.za whois.gov.za -.net.za whois.net.za -.org.za WEB http://www.org.za/ # rwhois.org.za:4321 is restricted -.web.za whois.web.za -.za NONE # http://www.zadna.org.za/annexure-d.html +.net.za net-whois.registry.net.za +.org.za org-whois.registry.net.za +.web.za web-whois.registry.net.za +.za NONE # http://www.zadna.org.za/content/page/domain-information .zm whois.nic.zm .zw NONE # http://www.zispa.co.zw/ @@ -354,6 +354,7 @@ .xn--80ao21a whois.nic.kz # Kazakhstan .xn--90a3ac whois.rnids.rs # Serbia .xn--clchc0ea0b2g2a9gcd whois.sgnic.sg # Singapore, Tamil +.xn--d1alf whois.marnet.mk # Macedonia .xn--fiqs8s cwhois.cnnic.cn # China, Simplified Chinese .xn--fiqz9s cwhois.cnnic.cn # China, Traditional Chinese .xn--fpcrj9c3d whois.inregistry.net # India, Telugu AW @@ -374,6 +375,7 @@ .xn--mgbc0a9azcg NONE # Morocco .xn--mgberp4a5d4ar whois.nic.net.sa # Saudi Arabia .xn--mgbx4cd0ab whois.mynic.my # Malaysia AW +.xn--node whois.itdc.ge # Georgia .xn--o3cw4h whois.thnic.co.th # Thailand .xn--ogbpf8fl whois.tld.sy # Syria .xn--p1ai whois.tcinet.ru # Russian Federation @@ -385,38 +387,3 @@ .xn--xkc2dl3a5ee0h whois.inregistry.net # India, Tamil AW .xn--yfro4i67o whois.sgnic.sg # Singapore, Chinese .xn--ygbi2ammx whois.pnina.ps # Palestinian Territory - --dom whois.networksolutions.com --org whois.networksolutions.com --hst whois.networksolutions.com --arin whois.arin.net --ripe whois.ripe.net --mnt whois.ripe.net --lacnic whois.lacnic.net --afrinic whois.afrinic.net --ap whois.apnic.net --cn whois.cnnic.cn --cz whois.nic.cz --dk whois.dk-hostmaster.dk --il whois.isoc.org.il --is whois.isnic.is --kg whois.domain.kg --ti whois.telstra.net --tw whois.twnic.net.tw --coop whois.nic.coop --frnic whois.nic.fr --gandi whois.gandi.net --kenic whois.kenic.or.ke --lrms whois.afilias.info --metu whois.nic.tr --nicat whois.nic.at --nicci whois.nic.ci --nicir whois.nic.ir --norid whois.norid.no --rotld whois.rotld.ro --sgnic whois.sgnic.sg --tel whois.nic.tel --uanic whois.ua --cunic whois.cunic.ua --uynic whois.nic.org.uy --sixxs whois.sixxs.net diff -uNr whois-5.2.0/version.h whois-5.2.3/version.h --- whois-5.2.0/version.h 2014-09-13 05:15:04.000000000 +0200 +++ whois-5.2.3/version.h 2014-12-26 19:57:56.000000000 +0100 @@ -1 +1 @@ -#define VERSION "5.2.0" +#define VERSION "5.2.3" diff -uNr whois-5.2.0/whois.c whois-5.2.3/whois.c --- whois-5.2.0/whois.c 2014-09-13 05:13:19.000000000 +0200 +++ whois-5.2.3/whois.c 2014-11-12 03:35:56.000000000 +0100 @@ -442,7 +442,7 @@ } regfree(&re); #else - if (domcmp(s, pattern)) { + if (endstrcaseeq(s, pattern)) { fclose(fp); return strdup(server); } @@ -496,6 +496,15 @@ /* no dot and no hyphen means it's a NSI NIC handle or ASN (?) */ if (!strpbrk(s, ".-")) { + /* if it is a TLD or a new gTLD then ask IANA */ + for (i = 0; tld_serv[i]; i += 2) + if (strcaseeq(s, tld_serv[i])) + return strdup("whois.iana.org"); + + for (i = 0; new_gtlds[i]; i++) + if (strcaseeq(s, new_gtlds[i])) + return strdup("whois.iana.org"); + if (strncaseeq(s, "as", 2) && /* it's an AS */ (isasciidigit(s[2]) || s[2] == ' ')) return strdup(whereas(atol(s + 2))); @@ -524,7 +533,7 @@ /* check the TLDs list */ for (i = 0; tld_serv[i]; i += 2) - if (domcmp(s, tld_serv[i])) + if (in_domain(s, tld_serv[i])) return strdup(tld_serv[i + 1]); /* use the default server name for "new" gTLDs */ @@ -541,6 +550,12 @@ for (i = 0; nic_handles[i]; i += 2) if (strncaseeq(s, nic_handles[i], strlen(nic_handles[i]))) return strdup(nic_handles[i + 1]); + + /* search for strings at the end of the word */ + for (i = 0; nic_handles_post[i]; i += 2) + if (endstrcaseeq(s, nic_handles_post[i])) + return strdup(nic_handles_post[i + 1]); + /* it's probably a network name */ return strdup(""); } @@ -633,9 +648,9 @@ /* add useful default flags if there are no flags or multiple arguments */ if (isripe) { } else if (strchr(query, ' ') || *flags) { } - else if (streq(server, "whois.denic.de") && domcmp(query, ".de")) + else if (streq(server, "whois.denic.de") && in_domain(query, "de")) strcat(buf, "-T dn" DENIC_PARAM_ACE DENIC_PARAM_CHARSET " "); - else if (streq(server, "whois.dk-hostmaster.dk") && domcmp(query, ".dk")) + else if (streq(server, "whois.dk-hostmaster.dk") && in_domain(query, "dk")) strcat(buf, "--show-handles "); /* mangle and add the query string */ @@ -1035,18 +1050,50 @@ } /* check if dom ends with tld */ -int domcmp(const char *dom, const char *tld) +int endstrcaseeq(const char *dom, const char *tld) { - const char *p, *q; + size_t dom_len, tld_len; + const char *p = NULL; - for (p = dom; *p; p++); p--; /* move to the last char */ - for (q = tld; *q; q++); q--; - while (p >= dom && q >= tld && tolower(*p) == *q) { /* compare backwards */ - if (q == tld) /* start of the second word? */ - return 1; - p--; q--; - } - return 0; + if ((dom_len = strlen(dom)) == 0) + return 0; + + if ((tld_len = strlen(tld)) == 0) + return 0; + + /* dom cannot be shorter than what we are looking for */ + if (tld_len > dom_len) + return 0; + + p = dom + dom_len - tld_len; + + return strcaseeq(p, tld); +} + +/* check if dom is a subdomain of tld */ +int in_domain(const char *dom, const char *tld) +{ + size_t dom_len, tld_len; + const char *p = NULL; + + if ((dom_len = strlen(dom)) == 0) + return 0; + + if ((tld_len = strlen(tld)) == 0) + return 0; + + /* dom cannot be shorter than what we are looking for */ + /* -1 to ignore dom containing just a dot and tld */ + if (tld_len >= dom_len - 1) + return 0; + + p = dom + dom_len - tld_len; + + /* fail if the character before tld is not a dot */ + if (*(p - 1) != '.') + return 0; + + return strcaseeq(p, tld); } const char *is_new_gtld(const char *s) @@ -1054,8 +1101,8 @@ int i; for (i = 0; new_gtlds[i]; i++) - if (domcmp(s, new_gtlds[i])) - return new_gtlds[i] + 1; + if (in_domain(s, new_gtlds[i])) + return new_gtlds[i]; return 0; } @@ -1063,7 +1110,7 @@ /* * Attempt to normalize a query by removing trailing dots and whitespace, * then convert the domain to punycode. - * The function assumes that the domain is the last token of they query. + * The function assumes that the domain is the last token of the query. * Returns a malloc'ed string which needs to be freed by the caller. */ char *normalize_domain(const char *dom) @@ -1074,10 +1121,15 @@ #endif ret = strdup(dom); - /* eat trailing dots and blanks */ - p = ret + strlen(ret); - for (; *p == '.' || *p == ' ' || *p == '\t' || p == ret; p--) + /* start from the last character */ + p = ret + strlen(ret) - 1; + /* and then eat trailing dots and blanks */ + while (p > ret) { + if (!(*p == '.' || *p == ' ' || *p == '\t')) + break; *p = '\0'; + p--; + } #ifdef HAVE_LIBIDN /* find the start of the last word if there are spaces in the query */ @@ -1235,19 +1287,23 @@ if (errno || a < 0 || a > 255 || *endptr != '.') return strdup("0.0.0.0"); - if (domcmp(endptr + 1, ".in-addr.arpa")) { + if (in_domain(endptr + 1, "in-addr.arpa")) { b = strtol(endptr + 1, &endptr, 10); /* 1.2. */ if (errno || b < 0 || b > 255 || *endptr != '.') return strdup("0.0.0.0"); - if (domcmp(endptr + 1, ".in-addr.arpa")) { + if (in_domain(endptr + 1, "in-addr.arpa")) { c = strtol(endptr + 1, &endptr, 10); /* 1.2.3. */ if (errno || c < 0 || c > 255 || *endptr != '.') return strdup("0.0.0.0"); - if (domcmp(endptr + 1, ".in-addr.arpa")) + if (in_domain(endptr + 1, "in-addr.arpa")) return strdup("0.0.0.0"); + } else { + c = b; b = a; a = 0; } + } else { + c = a; a = 0; } new = malloc(sizeof("255.255.255.255")); diff -uNr whois-5.2.0/whois.h whois-5.2.3/whois.h --- whois-5.2.0/whois.h 2014-09-13 02:42:29.000000000 +0200 +++ whois-5.2.3/whois.h 2014-10-16 01:57:19.000000000 +0200 @@ -28,7 +28,8 @@ unsigned long myinet_aton(const char *); unsigned long asn32_to_long(const char *); int isasciidigit(const char); -int domcmp(const char *, const char *); +int endstrcaseeq(const char *, const char *); +int in_domain(const char *, const char *); const char *is_new_gtld(const char *); int domfind(const char *, const char *[]); char *normalize_domain(const char *);