diff options
-rw-r--r-- | config.h | 4 | ||||
-rw-r--r-- | debian/changelog | 9 | ||||
-rw-r--r-- | ip_del_list | 10 | ||||
-rw-r--r-- | po/de.po | 183 | ||||
-rw-r--r-- | tld_serv_list | 2 | ||||
-rw-r--r-- | whois.c | 39 | ||||
-rw-r--r-- | whois.spec | 2 |
7 files changed, 153 insertions, 96 deletions
@@ -1,5 +1,5 @@ /* Program version */ -#define VERSION "5.0.1" +#define VERSION "5.0.2" /* Configurable features */ @@ -37,6 +37,7 @@ #endif #if defined __APPLE__ && defined __MACH__ +# define HAVE_GETOPT_LONG # define HAVE_GETADDRINFO #endif @@ -57,6 +58,7 @@ /* FIXME: which systems lack this? */ #define HAVE_GETTIMEOFDAY +#define HAVE_INET_PTON /* * Please send patches to correctly ignore old releases which lack a RNG diff --git a/debian/changelog b/debian/changelog index d19a97c..01a8f55 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +whois (5.0.2) unstable; urgency=medium + + * Added new IPv4 allocations. + * Updated one or more translations. (Closes: #572068) + * Updated the .gt TLD server. (Closes: #576521) + * Use inet_pton (if available) to parse IP addresses. (Closes: #573006) + + -- Marco d'Itri <md@linux.it> Sun, 11 Apr 2010 04:17:33 +0200 + whois (5.0.1) unstable; urgency=medium * Added new IPv4 allocations. diff --git a/ip_del_list b/ip_del_list index 43ef667..67d17e7 100644 --- a/ip_del_list +++ b/ip_del_list @@ -8,6 +8,7 @@ # 1.0.0.0/8 apnic 2.0.0.0/8 ripe +14.0.0.0/8 apnic 24.132.0.0/14 ripe 27.0.0.0/8 apnic 41.0.0.0/8 afrinic @@ -29,14 +30,16 @@ 78.0.0.0/7 ripe 80.0.0.0/4 ripe # => 95.255.255.255 96.0.0.0/6 arin # => 99.255.255.255 +107.0.0.0/8 arin 108.0.0.0/8 arin 109.0.0.0/8 ripe 110.0.0.0/7 apnic 96.0.0.0/4 UNALLOCATED # => 112.215.255.255 -118.32.0.0/11 whois.nic.or.kr -119.192.0.0/11 whois.nic.or.kr +112.160.0.0/11 whois.nic.or.kr 115.0.0.0/12 whois.nic.or.kr 115.16.0.0/13 whois.nic.or.kr +118.32.0.0/11 whois.nic.or.kr +119.192.0.0/11 whois.nic.or.kr 112.0.0.0/5 apnic 121.128.0.0/10 whois.nic.or.kr 125.128.0.0/11 whois.nic.or.kr @@ -100,9 +103,11 @@ 171.16.0.0/12 ripe 171.32.0.0/15 ripe #171.0.0.0/8 apnic +175.192.0.0/10 whois.nic.or.kr 175.0.0.0/8 apnic 178.0.0.0/8 ripe 180.0.0.0/8 apnic +183.96.0.0/11 whois.nic.or.kr 182.0.0.0/7 apnic 186.0.0.0/7 lacnic 188.0.0.0/8 ripe # transferred from ARIN to to RIPE @@ -232,6 +237,5 @@ 222.120.0.0/15 whois.nic.or.kr 222.122.0.0/16 whois.nic.or.kr 222.232.0.0/13 whois.nic.or.kr -223.0.0.0/8 UNALLOCATED # returned from APNIC to IANA 220.0.0.0/6 apnic # that's all... here starts the multicast space @@ -1,18 +1,18 @@ -# Abgeleitet von whois.pot. -# Copyright (C) 2001 Simon Richter <Simon.Richter@in.tum.de> -# Copyright (C) 2004 Adrian Bunk <bunk@fs.tum.de> -# +# Translation of whois to German +# Copyright (C) 2001 Simon Richter <Simon.Richter@in.tum.de>, 2004 Adrian +# Bunk <bunk@fs.tum.de>, 2010 Chris Leick <c.leick@vollbio.de>. +# This file is distributed under the same license as the whois package. # msgid "" msgstr "" -"Project-Id-Version: whois 4.6.16\n" -"Report-Msgid-Bugs-To: \n" +"Project-Id-Version: whois 5.0.1\n" +"Report-Msgid-Bugs-To: Marco d'Itri <md@linux.it>\n" "POT-Creation-Date: 2010-01-27 13:38+0100\n" -"PO-Revision-Date: 2004-06-15 00:08+0100\n" -"Last-Translator: Adrian Bunk <bunk@fs.tum.de>\n" -"Language-Team: \n" +"PO-Revision-Date: 2010-02-28 11:16+GMT\n" +"Last-Translator: Chris Leick <c.leick@vollbio.de>\n" +"Language-Team: German <debian-l10n-german@lists.debian.org>\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" @@ -25,29 +25,32 @@ msgid "" msgstr "" "Version %s.\n" "\n" -"Senden Sie Bugreports an %s.\n" +"Berichten Sie Fehler auf Englisch an %s.\n" #: ../whois.c:190 ../whois.c:243 ../whois.c:249 ../whois.c:256 ../whois.c:286 #, c-format msgid "Using server %s.\n" -msgstr "Benutze Server %s.\n" +msgstr "Server %s wird benutzt.\n" #: ../whois.c:228 msgid "This TLD has no whois server, but you can access the whois database at" -msgstr "Diese TLD hat keinen whois-Server, aber eine whois-Datenbank unter" +msgstr "" +"Diese TLD hat keinen Whois-Server, kann aber auf eine Whois-Datenbank " +"zugreifen unter" #: ../whois.c:233 msgid "This TLD has no whois server." -msgstr "Diese TLD hat keinen whois-Server." +msgstr "Diese TLD hat keinen Whois-Server." #: ../whois.c:236 msgid "No whois server is known for this kind of object." -msgstr "Hierfür ist kein Whois-Server bekannt." +msgstr "Für diese Art des Objekts ist kein Whois-Server bekannt." #: ../whois.c:239 msgid "Unknown AS number or IP network. Please upgrade this program." msgstr "" -"Unbekannte AS- oder IP-Netzwerk-Nummer. Bitte upgraden Sie dieses Programm." +"Unbekannte AS- oder IP-Netzwerk-Nummer. Bitte führen Sie ein Upgrade dieses " +"Programms durch." #: ../whois.c:262 #, c-format @@ -57,18 +60,18 @@ msgid "" "\n" msgstr "" "\n" -"Frage nach dem IPv4 Endpunkt %s einer 6to4 IPv6-Adresse.\n" +"Abfrage des IPv4-Endpunkts %s einer 6to4 IPv6-Adresse.\n" "\n" #: ../whois.c:268 -#, fuzzy, c-format +#, c-format msgid "" "\n" "Querying for the IPv4 endpoint %s of a Teredo IPv6 address.\n" "\n" msgstr "" "\n" -"Frage nach dem IPv4 Endpunkt %s einer 6to4 IPv6-Adresse.\n" +"Abfrage des IPv4-Endpunkts %s einer Teredo-IPv6-Adresse.\n" "\n" #: ../whois.c:287 @@ -77,7 +80,7 @@ msgid "" "Query string: \"%s\"\n" "\n" msgstr "" -"Suche nach: \"%s\"\n" +"Abfragezeichenkette: »%s«\n" "\n" #: ../whois.c:297 @@ -96,20 +99,20 @@ msgstr "" #: ../whois.c:339 ../whois.c:342 #, c-format msgid "Cannot parse this line: %s" -msgstr "Kann diese Zeile nicht parsen: %s" +msgstr "Diese Zeile kann nicht ausgewertet werden: %s" #: ../whois.c:506 msgid "Warning: RIPE flags used with a traditional server." msgstr "" -"Warnung: RIPE-Flags wurden mit einem \"traditionellen\" Server verwendet." +"Warnung: RIPE-Flags wurden mit einem »traditionellen« Server verwendet." #: ../whois.c:657 ../whois.c:806 msgid "" "Catastrophic error: disclaimer text has been changed.\n" "Please upgrade this program.\n" msgstr "" -"Schwerer Fehler: Haftungsausschlusstext wurde geaendert.\n" -"Bitte upgraden sie dieses Programm.\n" +"Katastrophaler Fehler: Haftungsausschlusstext wurde geändert.\n" +"Bitte führen Sie ein Upgrade dieses Programms durch.\n" #: ../whois.c:858 #, c-format @@ -123,15 +126,15 @@ msgstr "%s/tcp: unbekannter Dienst" #: ../whois.c:943 msgid "Timeout." -msgstr "Timeout." +msgstr "Zeitüberschreitung" #: ../whois.c:949 #, c-format msgid "Interrupted by signal %d..." -msgstr "Erhielt Signal %d, unterbrochen..." +msgstr "Durch Signal %d unterbrochen ..." #: ../whois.c:1175 -#, fuzzy, c-format +#, c-format msgid "" "Usage: whois [OPTION]... OBJECT...\n" "\n" @@ -167,88 +170,91 @@ msgid "" msgstr "" "Aufruf: whois [OPTION]... OBJEKT...\n" "\n" +"-l eine Ebene unspezifischere Suche [nur RPSL]\n" +"-L unspezifischere Treffer suchen\n" +"-m eine Ebene spezifischere Treffer suchen\n" +"-M alle spezifischeren Treffer suchen\n" +"-c den kleinsten Treffer suchen, der ein\n" +" mnt-irt-Attribut enthält.\n" +"-x exakte Treffer [nur RPSL]\n" +"-d auch DNS-Rückübertragungsobjekte zurückgeben\n" +" [nur RPSL]\n" +"-i ATTR[,ATTR]... eine umgekehrte Suche für angegebene ATTRibute\n" +" ausführen\n" +"-T TYP[,TYP]... nur nach Objekten vom Typ TYP suchen\n" +"-K nur Primärschlüssel zeigen [nur RPSL]\n" +"-r Rückwärtsauflösung für Kontaktinformationen\n" +" ausschalten\n" +"-R lokale Kopie des Domainobjekts zeigen, auch wenn es\n" +" einen Verweis enthält\n" "-a alle Datenbanken durchsuchen\n" -"-F \"schnelle\" Rohdatenausgabe (impliziert -r)\n" -"-g QUELLE:BEGINN-ENDE zeige Aenderungen auf QUELLE von BEGINN bis ENDE\n" -"-h HOST Verbinde zum Server HOST\n" +"-s QUELLE[,QUELLE]... in der Datenbank aus der QUELLE suchen\n" +"-g QUELLE:BEGINN-ENDE finde Aktualisierungen der QUELLE von BEGINN bis ENDE\n" +"-t TYP Schablone für Typ TYP anfordern (»all« für eine \n" +" Liste)\n" +"-v TYP detaillierte Schablone für Objekt des TYPs anfordern\n" +"-q [version|sources|types]\n" +" nach angegebener Server-Information fragen [nur RPSL]\n" +"-F »schnelle« Rohdatenausgabe (impliziert -r)\n" +"-h HOST zum Server HOST verbinden\n" +"-p PORT zu PORT verbinden\n" "-H Haftungsausschluss nicht anzeigen\n" -"-i ATTR[,ATTR]... angegebene ATTRibute rückauflösen\n" -"-x exakte Suche [nur RPSL]\n" -"-l eine Ebene unspezifischere Suche [nur RPSL]\n" -"-L suche unspezifischere Treffer\n" -"-M suche spezifischere Treffer\n" -"-m eine Ebene spezifischere Suche\n" -"-r keine Rückwärtsauflösung\n" -"-p PORT verbinde zu PORT\n" -"-R zeige lokale Kopie des Domainobjekts, auch wenn es\n" -" einen Verweis enthält\n" -"-S erlaube dem Server, \"syntaktischen Zucker\" \n" -" wegzulassen\n" -"-s QUELLE[,QUELLE]... suche in der Datenbank von QUELLE\n" -"-T TYP[,TYP]... suche nur nach Objekten vom Typ TYP\n" -"-t TYP fordere Formular für Typ TYP an (\"all\" für eine \n" -" Liste)-v TYP fordere ausführliches " -"Formular für Typ TYP an\n" -"-q [version|quellen] frage nach angegebener Server-Information [nur RPSL]\n" -"-d zeige auch DNS-Rückübertragungsobjekte [nur RPSL]\n" -"-K zeige nur Primärschlüssel [nur RPSL]\n" -"-V --verbose erkläre, was getan wird\n" -" --help zeige diese Hilfe\n" -" --version zeige Version\n" +" --verbose erklären, was getan wird\n" +" --help diese Hilfe zeigen und beenden\n" +" --version Version ausgeben und beenden\n" #: ../mkpasswd.c:80 -#, fuzzy msgid "standard 56 bit DES-based crypt(3)" -msgstr "\tStandard 56 Bit DES-basiertes crypt(3)" +msgstr "Standard 56-Bit DES-basiertes Crypt(3)" #: ../mkpasswd.c:162 -#, fuzzy, c-format +#, c-format msgid "Invalid method '%s'.\n" -msgstr "Falsche Nummer '%s'.\n" +msgstr "Ungültige Methode »%s«\n" #: ../mkpasswd.c:171 ../mkpasswd.c:181 #, c-format msgid "Invalid number '%s'.\n" -msgstr "Falsche Nummer '%s'.\n" +msgstr "Falsche Nummer »%s«.\n" #: ../mkpasswd.c:199 #, c-format msgid "Try '%s --help' for more information.\n" -msgstr "Versuchen Sie '%s --help' für mehr Informationen.\n" +msgstr "Versuchen Sie »%s --help«, um weitere Informationen zu erhalten.\n" #: ../mkpasswd.c:240 -#, fuzzy, c-format +#, c-format msgid "Wrong salt length: %d byte when %d expected.\n" msgid_plural "Wrong salt length: %d bytes when %d expected.\n" -msgstr[0] "Falsche Salt-Länge: %d Byte(s), aber%d wurden erwartet.\n" -msgstr[1] "Falsche Salt-Länge: %d Byte(s), aber%d wurden erwartet.\n" +msgstr[0] "Falsche Salt-Länge: %d Byte, aber %d wurden erwartet.\n" +msgstr[1] "Falsche Salt-Länge: %d Bytes, aber %d wurden erwartet.\n" #: ../mkpasswd.c:245 -#, fuzzy, c-format +#, c-format msgid "Wrong salt length: %d byte when %d <= n <= %d expected.\n" msgid_plural "Wrong salt length: %d bytes when %d <= n <= %d expected.\n" -msgstr[0] "Falsche Salt-Länge: %d Byte(s), aber%d wurden erwartet.\n" -msgstr[1] "Falsche Salt-Länge: %d Byte(s), aber%d wurden erwartet.\n" +msgstr[0] "Falsche Salt-Länge: %d Byte, aber %d <= n <= %d wurden erwartet.\n" +msgstr[1] "Falsche Salt-Länge: %d Bytes, aber %d <= n <= %d wurden erwartet.\n" #: ../mkpasswd.c:254 #, c-format msgid "Illegal salt character '%c'.\n" -msgstr "Illegaler Salt-Buchstabe '%c'.\n" +msgstr "Illegales Salt-Zeichen »%c«.\n" #: ../mkpasswd.c:299 ../mkpasswd.c:326 #, c-format msgid "Password: " -msgstr "Passwort:" +msgstr "Passwort: " #: ../mkpasswd.c:320 #, c-format msgid "Illegal password character '0x%hhx'.\n" -msgstr "Illegaler Passwort-Buchstabe '0x%hhx'.\n" +msgstr "Illegaler Passwortzeichen »0x%hhx«.\n" #: ../mkpasswd.c:342 #, c-format msgid "Method not supported by crypt(3).\n" -msgstr "" +msgstr "Methode nicht von »crypt(3)« unterstützt.\n" #: ../mkpasswd.c:420 #, c-format @@ -258,7 +264,7 @@ msgid "" "\n" msgstr "" "Aufruf: mkpasswd [OPTIONEN] ... [PASSWORT] [SALT]]\n" -"Verschluesselt das PASSWORT mit crypt(3).\n" +"Verschlüsselt das PASSWORT mit »crypt(3)«.\n" "\n" #: ../mkpasswd.c:423 @@ -280,26 +286,23 @@ msgid "" "\n" "Report bugs to %s.\n" msgstr "" +" -m, --method=TYP die Methode TYP auswählen\n" +" -5 wie --method=md5\n" +" -S, --salt=SALT angegebenes SALT benutzen\n" +" -R, --rounds=ANZAHL angegebene ANZAHL von Runden benutzen\n" +" -P, --password-fd=NUM das Passwort vom Dateideskriptor NUM anstatt\n" +" von /dev/tty lesen\n" +" -s, --stdin wie --password-fd=0\n" +" -h, --help diese Hilfe anzeigen und beenden\n" +" -V, --version Versionsinformationen anzeigen und beenden\n" +"\n" +"Falls das PASSWORT fehlt, wird es interaktiv erfragt.\n" +"Falls SALT nicht angegeben wurde, wird ein zufälliges erzeugt.\n" +"Wenn der TYP »help« ist, werden die verfügbaren Methoden ausgegeben.\n" +"\n" +"Berichten Sie Fehler auf Englisch an %s.\n" #: ../mkpasswd.c:452 -#, fuzzy, c-format +#, c-format msgid "Available methods:\n" -msgstr "Verfügbare Algorithmen:\n" - -#~ msgid "Invalid hash type '%s'.\n" -#~ msgstr "Falscher Hash-Typ '%s'.\n" - -#~ msgid "Using default server %s.\n" -#~ msgstr "Benutze voreingestellten Server %s.\n" - -#~ msgid "" -#~ "\n" -#~ "Found referral to %s.\n" -#~ "\n" -#~ msgstr "" -#~ "\n" -#~ "Verweis auf %s gefunden.\n" -#~ "\n" - -#~ msgid "Detected referral to %s on %s.\n" -#~ msgstr "Verweis auf %s gefunden bei %s.\n" +msgstr "Verfügbare Methoden:\n" diff --git a/tld_serv_list b/tld_serv_list index b423c7b..de42c71 100644 --- a/tld_serv_list +++ b/tld_serv_list @@ -147,7 +147,7 @@ .gq NONE # NO NIC http://www.getesa.gq/ .gr WEB https://grweb.ics.forth.gr/Whois?lang=en .gs whois.nic.gs -.gt WEB http://www.gt/whois.htm +.gt WEB http://www.gt/whois.html .gu WEB http://gadao.gov.gu/domainsearch.htm .gw NONE # www.gwregister.com .gy whois.registry.gy @@ -34,6 +34,9 @@ #ifdef HAVE_LIBIDN #include <idna.h> #endif +#ifdef HAVE_INET_PTON +#include <arpa/inet.h> +#endif /* Application-specific */ #include "data.h" @@ -430,7 +433,12 @@ const char *guess_server(const char *s) return whereas32(as32); /* smells like an IP? */ +#ifdef HAVE_INET_PTON + if (inet_pton(AF_INET, s, &ip) > 0) { + ip = ntohl(ip); +#else if ((ip = myinet_aton(s))) { +#endif for (i = 0; ip_assign[i].serv; i++) if ((ip & ip_assign[i].mask) == ip_assign[i].net) return ip_assign[i].serv; @@ -1076,6 +1084,18 @@ void split_server_port(const char *const input, char *convert_6to4(const char *s) { char *new; + +#ifdef HAVE_INET_PTON + struct in6_addr ipaddr; + unsigned char *ip; + + if (inet_pton(AF_INET6, s, &ipaddr) <= 0) + return strdup("0.0.0.0"); + + ip = (unsigned char *)&ipaddr; + new = malloc(sizeof("255.255.255.255")); + sprintf(new, "%d.%d.%d.%d", *(ip + 2), *(ip + 3), *(ip + 4), *(ip + 5)); +#else unsigned int a, b; if (sscanf(s, "2002:%x:%x:", &a, &b) != 2) @@ -1083,12 +1103,27 @@ char *convert_6to4(const char *s) new = malloc(sizeof("255.255.255.255")); sprintf(new, "%d.%d.%d.%d", a >> 8, a & 0xff, b >> 8, b & 0xff); +#endif + return new; } char *convert_teredo(const char *s) { char *new; + +#ifdef HAVE_INET_PTON + struct in6_addr ipaddr; + unsigned char *ip; + + if (inet_pton(AF_INET6, s, &ipaddr) <= 0) + return strdup("0.0.0.0"); + + ip = (unsigned char *)&ipaddr; + new = malloc(sizeof("255.255.255.255")); + sprintf(new, "%d.%d.%d.%d", *(ip + 12) ^ 0xff, *(ip + 13) ^ 0xff, + *(ip + 14) ^ 0xff, *(ip + 15) ^ 0xff); +#else unsigned int a, b; if (sscanf(s, "2001:%*[^:]:%*[^:]:%*[^:]:%*[^:]:%*[^:]:%x:%x", &a, &b) != 2) @@ -1098,6 +1133,8 @@ char *convert_teredo(const char *s) b ^= 0xffff; new = malloc(sizeof("255.255.255.255")); sprintf(new, "%d.%d.%d.%d", a >> 8, a & 0xff, b >> 8, b & 0xff); +#endif + return new; } @@ -1133,6 +1170,7 @@ char *convert_inaddr(const char *s) return new; } +#ifndef HAVE_INET_PTON unsigned long myinet_aton(const char *s) { unsigned long a, b, c, d; @@ -1148,6 +1186,7 @@ unsigned long myinet_aton(const char *s) return 0; return (a << 24) + (b << 16) + (c << 8) + d; } +#endif unsigned long asn32_to_long(const char *s) { @@ -1,6 +1,6 @@ Summary: Enhanced WHOIS client Name: whois -Version: 5.0.1 +Version: 5.0.2 Release: 1 License: GPL Vendor: Marco d'Itri <md@linux.it> |