diff --git a/Makefile b/Makefile index 608184d..0cd8cfa 100644 --- a/Makefile +++ b/Makefile @@ -51,14 +51,17 @@ whois_OBJECTS += simple_recode.o DEFS += -DHAVE_ICONV endif -ifdef HAVE_XCRYPT +ifeq ($(shell $(PKG_CONFIG) --exists 'libxcrypt >= 4.1' || echo NO),) +DEFS += -DHAVE_CRYPT_H -DHAVE_LINUX_CRYPT_GENSALT $(shell $(PKG_CONFIG) --cflags libcrypt) +mkpasswd_LDADD += $(shell $(PKG_CONFIG) --libs libcrypt) +else ifdef HAVE_XCRYPT +DEFS += -DHAVE_XCRYPT_H -DHAVE_LINUX_CRYPT_GENSALT mkpasswd_LDADD += -lxcrypt -DEFS += -DHAVE_XCRYPT -DHAVE_LINUX_CRYPT_GENSALT +else ifdef HAVE_LIBOWCRYPT +# owl and openSUSE have crypt_gensalt(3) in libowcrypt +DEFS += -DHAVE_CRYPT_H -DHAVE_LINUX_CRYPT_GENSALT -D_OW_SOURCE +mkpasswd_LDADD += -lcrypt -lowcrypt else -ifdef HAVE_LINUX_CRYPT_GENSALT -# owl and openSUSE have crypt_gensalt(3) in the libc's libcrypt -DEFS += -DHAVE_LINUX_CRYPT_GENSALT -endif mkpasswd_LDADD += -lcrypt endif diff --git a/config.h b/config.h index 112d14c..19224f8 100644 --- a/config.h +++ b/config.h @@ -17,7 +17,7 @@ # include #endif -#ifdef linux +#ifdef __GLIBC__ # define ENABLE_NLS #endif @@ -40,6 +40,7 @@ #if defined __APPLE__ && defined __MACH__ # define HAVE_GETOPT_LONG # define HAVE_GETADDRINFO +# define HAVE_BSDICRYPT #endif #if defined __GLIBC__ @@ -52,10 +53,22 @@ # endif #endif +#if defined OpenBSD && OpenBSD < 201405 +# define HAVE_BCRYPT_OBSOLETE +#elif defined OpenBSD || defined __FreeBSD__ || (defined __SVR4 && defined __sun) || defined _OW_SOURCE +# define HAVE_BCRYPT +#endif + +#if defined OpenBSD || defined __FreeBSD__ || defined __NetBSD__ +# define HAVE_BSDICRYPT +#endif + /* Unknown versions of Solaris */ #if defined __SVR4 && defined __sun # define HAVE_SHA_CRYPT +# define HAVE_CRYPT_H # define HAVE_SOLARIS_CRYPT_GENSALT +# define CRYPT_GENSALT_IMPLEMENTS_DEFAULT_PREFIX #endif /* FIXME: which systems lack this? */ @@ -66,7 +79,7 @@ * and add more systems which have one. */ #ifdef RANDOM_DEVICE -#elif defined __GLIBC__ \ +#elif defined linux \ || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \ /* AIX >= 5.2? */ \ || defined _AIX52 \ @@ -95,6 +108,13 @@ # define HAVE_GETENTROPY #endif +/* some versions of crypt(3) set errno on error */ +#if defined __GLIBC__ || (defined __SVR4 && defined __sun) || defined OpenBSD || AIX +# define CRYPT_SETS_ERRNO 1 +#else +# define CRYPT_SETS_ERRNO 0 +#endif + #ifdef ENABLE_NLS # ifndef NLS_CAT_NAME # define NLS_CAT_NAME "whois" diff --git a/debian/changelog b/debian/changelog index 011e439..bceb644 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,32 @@ +whois (5.4.2) unstable; urgency=medium + + * Added the .ss and .xn--mgbah1a3hjkrd (موريتانيا, Mauritania) TLD + servers. + * Updated the .in TLD and related IDN TLDs servers. + * Updated the .fm TLD server. + + -- Marco d'Itri Thu, 28 Mar 2019 00:48:28 +0100 + +whois (5.4.1) unstable; urgency=medium + + * Added the .mw TLD server. + * Updated one or more translations. + + -- Marco d'Itri Sun, 27 Jan 2019 04:48:53 +0100 + +whois (5.4.0) unstable; urgency=medium + + * Added support for the new libxcrypt 4.x. + This allows mkpasswd to support many modern password hash methods. + * Renamed the hash types (i.e. the arguments to -H) to use the naming + convention established by John the Ripper. + * Made mkpasswd use entropy gathered by crypt_gensalt(3), when available. + * Fixed many portability bugs in mkpasswd. + * Added the .gp TLD server. + * Updated the list of new gTLDs. + + -- Marco d'Itri Fri, 26 Oct 2018 18:32:49 +0200 + whois (5.3.2~bpo9+1) stretch-backports; urgency=medium * Rebuild for stretch-backports. diff --git a/debian/control b/debian/control index 616ddcf..8c472d3 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: whois Section: net Priority: standard Maintainer: Marco d'Itri -Standards-Version: 4.1.2 +Standards-Version: 4.3.0.1 Rules-Requires-Root: no Build-Depends: debhelper (>= 9), gettext, libidn11-dev Vcs-Git: git://github.com/rfc1036/whois.git diff --git a/mkpasswd.1 b/mkpasswd.1 index db7db47..21555ad 100644 --- a/mkpasswd.1 +++ b/mkpasswd.1 @@ -20,10 +20,13 @@ Use the \fISTRING\fP as salt. It must not contain prefixes such as \fI$1$\fP. Use \fINUMBER\fP rounds. This argument is ignored if the method chosen does not support variable rounds. For the OpenBSD Blowfish method this is the logarithm of the number of rounds. +The behavior is undefined if this option is used without \fI--method\fP. .TP .B -m, --method=TYPE Compute the password using the \fITYPE\fP method. If \fITYPE\fP is \fIhelp\fP then the available methods are printed. +If \fITYPE\fP begins and end with \fI$\fP characters then the string +is passed to \fIcrypt_gensalt(3)\fP as-is. .TP .B -5 Like \fI--method=md5\fP. @@ -49,6 +52,8 @@ This programs suffers of a bad case of featuritis. .IR passwd(1), .IR passwd(5), .IR crypt(3), +.IR crypt(5), +.IR crypt_gensalt(3), .IR getpass(3) .SH AUTHOR .B mkpasswd diff --git a/mkpasswd.c b/mkpasswd.c index 0eb89f3..00e839b 100644 --- a/mkpasswd.c +++ b/mkpasswd.c @@ -35,12 +35,11 @@ #include #include #include -#ifdef HAVE_XCRYPT +#ifdef HAVE_XCRYPT_H #include #include #endif -#ifdef HAVE_LINUX_CRYPT_GENSALT -#define _OW_SOURCE +#ifdef HAVE_CRYPT_H #include #endif #ifdef HAVE_GETTIMEOFDAY @@ -82,32 +81,53 @@ struct crypt_method { const char *desc; /* long description for the methods list */ }; +/* XCRYPT_VERSION_NUM is defined in crypt.h from libxcrypt */ +#if defined XCRYPT_VERSION_NUM +# define HAVE_SHA_CRYPT +# define HAVE_BCRYPT +# define HAVE_BSDICRYPT +#endif + static const struct crypt_method methods[] = { /* method prefix minlen, maxlen rounds description */ - { "des", "", 2, 2, 0, - 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) +#ifdef CRYPT_GENSALT_IMPLEMENTS_DEFAULT_PREFIX + { "auto", NULL, 0, 0, 0, NULL }, +#endif + /* compatibility aliases for mkpasswd versions < 5.4.0 */ + { "des", "", 2, 2, 0, NULL }, + { "md5", "$1$", 8, 8, 0, NULL }, +#if defined XCRYPT_VERSION_NUM + { "yescrypt", "$y$", 0, 0, 0, "Yescrypt" }, + { "scrypt", "$7$", 0, 0, 0, "scrypt" }, +#endif +#ifdef HAVE_BCRYPT_OBSOLETE /* 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 + { "bf", "$2a$", 22, 22, 2, "bcrypt" }, #endif -#if defined HAVE_LINUX_CRYPT_GENSALT - { "bf", "$2a$", 22, 22, 1, "Blowfish, system-specific on 8-bit chars" }, - /* algorithm 2y fixes CVE-2011-2483 */ - { "bfy", "$2y$", 22, 22, 1, "Blowfish, correct handling of 8-bit chars" }, -#endif -#if defined FreeBSD - { "nt", "$3$", 0, 0, 0, "NT-Hash" }, +#ifdef HAVE_BCRYPT + { "bcrypt", "$2b$", 22, 22, 2, "bcrypt" }, + { "bcrypt-a", "$2a$", 22, 22, 2, "bcrypt (obsolete $2a$ version)" }, #endif #if defined HAVE_SHA_CRYPT /* http://people.redhat.com/drepper/SHA-crypt.txt */ - { "sha-256", "$5$", 8, 16, 1, "SHA-256" }, - { "sha-512", "$6$", 8, 16, 1, "SHA-512" }, + { "sha512crypt", "$6$", 8, 16, 1, "SHA-512" }, + { "sha256crypt", "$5$", 8, 16, 1, "SHA-256" }, + /* compatibility aliases for mkpasswd versions < 5.4.0 */ + { "sha-256", "$5$", 8, 16, 1, NULL }, + { "sha-512", "$6$", 8, 16, 1, NULL }, +#endif +#if (defined __SVR4 && defined __sun) || defined XCRYPT_VERSION_NUM + { "sunmd5", "$md5$", 8, 8, 1, "SunMD5" }, +#endif + { "md5crypt", "$1$", 8, 8, 0, "MD5" }, +#ifdef HAVE_BSDICRYPT + { "bsdicrypt", "_", 0, 0, 0, + N_("BSDI extended DES-based crypt(3)") }, +#endif + { "descrypt", "", 2, 2, 0, + N_("standard 56 bit DES-based crypt(3)") }, +#if defined FreeBSD || defined XCRYPT_VERSION_NUM + { "nt", "$3$", 0, 0, 0, "NT-Hash" }, #endif /* http://www.crypticide.com/dropsafe/article/1389 */ /* @@ -116,9 +136,6 @@ static const struct crypt_method methods[] = { * http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/ \ * usr/src/lib/crypt_modules/sunmd5/sunmd5.c#crypt_gensalt_impl */ -#if defined __SVR4 && defined __sun - { "sunmd5", "$md5$", 8, 8, 1, "SunMD5" }, -#endif { NULL, NULL, 0, 0, 0, NULL } }; @@ -164,6 +181,17 @@ int main(int argc, char *argv[]) display_methods(); exit(0); } +#if defined HAVE_LINUX_CRYPT_GENSALT || defined HAVE_SOLARIS_CRYPT_GENSALT + if (optarg[0] == '$' + && strlen(optarg) > 2 + && *(optarg + strlen(optarg) - 1) == '$') { + salt_prefix = NOFAIL(strdup(optarg)); + salt_minlen = 0; + salt_maxlen = 0; + rounds_support = 0; + break; + } +#endif for (i = 0; methods[i].method != NULL; i++) if (strcaseeq(methods[i].method, optarg)) { salt_prefix = methods[i].prefix; @@ -230,18 +258,21 @@ int main(int argc, char *argv[]) display_help(EXIT_FAILURE); } - /* default: DES password */ + /* default: DES password, or else whatever crypt_gensalt chooses */ if (!salt_prefix) { salt_minlen = methods[0].minlen; salt_maxlen = methods[0].maxlen; salt_prefix = methods[0].prefix; + rounds_support = methods[0].rounds; } - if (streq(salt_prefix, "$2a$") || streq(salt_prefix, "$2y$")) { - /* OpenBSD Blowfish and derivatives */ + if (!salt_prefix) { + /* NULL means that crypt_gensalt will choose one later */ + } else if (rounds_support == 2) { + /* bcrypt strings always contain the rounds number */ if (rounds <= 5) rounds = 5; - /* actually for 2a/2y it is the logarithm of the number of rounds */ + /* actually it is the logarithm of the number of rounds */ snprintf(rounds_str, sizeof(rounds_str), "%02u$", rounds); } else if (rounds_support && rounds) snprintf(rounds_str, sizeof(rounds_str), "rounds=%u$", rounds); @@ -283,18 +314,19 @@ int main(int argc, char *argv[]) #ifdef HAVE_SOLARIS_CRYPT_GENSALT salt = crypt_gensalt(salt_prefix, NULL); if (!salt) { - perror("crypt_gensalt"); - exit(2); + perror("crypt_gensalt"); + exit(2); } #elif defined HAVE_LINUX_CRYPT_GENSALT void *entropy = get_random_bytes(64); salt = crypt_gensalt(salt_prefix, rounds, entropy, 64); if (!salt) { - fprintf(stderr, "crypt_gensalt failed.\n"); - exit(2); + perror("crypt_gensalt"); + exit(2); } - free(entropy); + if (entropy) + free(entropy); #else unsigned int salt_len = salt_maxlen; @@ -342,12 +374,13 @@ int main(int argc, char *argv[]) result = crypt(password, salt); /* xcrypt returns "*0" on errors */ if (!result || result[0] == '*') { - fprintf(stderr, "crypt failed.\n"); + if (CRYPT_SETS_ERRNO) + perror("crypt"); + else + fprintf(stderr, "crypt failed.\n"); exit(2); } - /* yes, using strlen(salt_prefix) on salt. It's not - * documented whether crypt_gensalt may change the prefix */ - if (!strneq(result, salt, strlen(salt_prefix))) { + if (!strneq(result, salt, strlen(salt))) { fprintf(stderr, _("Method not supported by crypt(3).\n")); exit(2); } @@ -357,9 +390,27 @@ int main(int argc, char *argv[]) exit(0); } -#if defined RANDOM_DEVICE || defined HAVE_ARC4RANDOM_BUF || defined HAVE_GETENTROPY +#ifdef CRYPT_GENSALT_IMPLEMENTS_AUTO_ENTROPY -void* get_random_bytes(const unsigned int count) +/* + * If NULL is passed to the libxcrypt version of crypt_gensalt() instead of + * the buffer of random bytes then the function will obtain by itself the + * required randomness. + */ +inline void *get_random_bytes(const unsigned int count) +{ + return NULL; +} + +#elif defined HAVE_SOLARIS_CRYPT_GENSALT + +/* + * The Solaris version of crypt_gensalt() gathers the random data by itself. + */ + +#elif defined RANDOM_DEVICE || defined HAVE_ARC4RANDOM_BUF || defined HAVE_GETENTROPY + +void *get_random_bytes(const unsigned int count) { char *buf = NOFAIL(malloc(count)); @@ -473,7 +524,8 @@ void display_methods(void) printf(_("Available methods:\n")); for (i = 0; methods[i].method != NULL; i++) - printf("%s\t%s\n", methods[i].method, methods[i].desc); + if (methods[i].desc) + printf("%-15s %s\n", methods[i].method, methods[i].desc); } char *read_line(FILE *fp) { diff --git a/new_gtlds_list b/new_gtlds_list index 5a6f86a..ac1a64e 100644 --- a/new_gtlds_list +++ b/new_gtlds_list @@ -512,6 +512,7 @@ imamat imdb immo immobilien +inc industries infiniti ing diff --git a/po/pl.po b/po/pl.po index 48ef588..4d021cf 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,24 +1,24 @@ # Polish translation for whois. -# Micha 'CeFeK' Nazarewicz , 1999 -# Przemysaw Knycz , 2003 -# Jakub Bogusz , 2003-2013 +# Michał 'CeFeK' Nazarewicz , 1999 +# Przemysław Knycz , 2003 +# Jakub Bogusz , 2003-2018 # msgid "" msgstr "" -"Project-Id-Version: whois 5.0.24\n" +"Project-Id-Version: whois 5.4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-10 04:23+0200\n" -"PO-Revision-Date: 2013-04-11 17:48+0200\n" +"POT-Creation-Date: 2018-11-30 20:58+0100\n" +"PO-Revision-Date: 2018-11-30 21:23+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -#: ../whois.c:148 +#: ../whois.c:233 #, c-format msgid "" "Version %s.\n" @@ -27,31 +27,31 @@ msgid "" msgstr "" "Wersja %s.\n" "\n" -"Bdy prosz zgasza na adres %s.\n" +"Błędy proszę zgłaszać na adres %s.\n" -#: ../whois.c:202 ../whois.c:255 ../whois.c:261 ../whois.c:291 +#: ../whois.c:287 ../whois.c:340 ../whois.c:347 ../whois.c:390 #, c-format msgid "Using server %s.\n" -msgstr "Uycie serwera %s.\n" +msgstr "Użycie serwera %s.\n" -#: ../whois.c:240 +#: ../whois.c:325 msgid "This TLD has no whois server, but you can access the whois database at" msgstr "" -"Ta gwna domena nie ma serwera whois, ale mona uy bazy danych whois pod" +"Ta główna domena nie ma serwera whois, ale można użyć bazy danych whois pod" -#: ../whois.c:245 +#: ../whois.c:330 msgid "This TLD has no whois server." -msgstr "Ta gwna domena nie ma serwera whois." +msgstr "Ta główna domena nie ma serwera whois." -#: ../whois.c:248 +#: ../whois.c:333 msgid "No whois server is known for this kind of object." -msgstr "Dla tego rodzaju obiektu nie jest znany aden serwer whois." +msgstr "Dla tego rodzaju obiektu nie jest znany żaden serwer whois." -#: ../whois.c:251 +#: ../whois.c:336 msgid "Unknown AS number or IP network. Please upgrade this program." -msgstr "Nieznany numer AS lub sie IP. Prosz uaktualni ten program." +msgstr "Nieznany numer AS lub sieć IP. Proszę uaktualnić ten program." -#: ../whois.c:267 +#: ../whois.c:354 #, c-format msgid "" "\n" @@ -59,10 +59,10 @@ msgid "" "\n" msgstr "" "\n" -"Pytanie o zakoczenie IPv4 %s adresu IPv6 typu 6to4.\n" +"Pytanie o zakończenie IPv4 %s adresu IPv6 typu 6to4.\n" "\n" -#: ../whois.c:273 +#: ../whois.c:361 #, c-format msgid "" "\n" @@ -70,10 +70,10 @@ msgid "" "\n" msgstr "" "\n" -"Pytanie o zakoczenie IPv4 %s adresu IPv6 Teredo.\n" +"Pytanie o zakończenie IPv4 %s adresu IPv6 Teredo.\n" "\n" -#: ../whois.c:292 +#: ../whois.c:391 #, c-format msgid "" "Query string: \"%s\"\n" @@ -82,7 +82,7 @@ msgstr "" "Zapytanie: \"%s\"\n" "\n" -#: ../whois.c:302 +#: ../whois.c:401 #, c-format msgid "" "\n" @@ -95,43 +95,43 @@ msgstr "" "Znaleziono odniesienie do %s.\n" "\n" -#: ../whois.c:344 ../whois.c:347 +#: ../whois.c:443 ../whois.c:446 #, c-format msgid "Cannot parse this line: %s" -msgstr "Nie mona przeanalizowa tej linii: %s" +msgstr "Nie można przeanalizować tej linii: %s" -#: ../whois.c:516 +#: ../whois.c:635 msgid "Warning: RIPE flags used with a traditional server." -msgstr "Uwaga: uyto flag RIPE ze starszym serwerem." +msgstr "Uwaga: użyto flag RIPE ze starszym serwerem." -#: ../whois.c:675 ../whois.c:773 +#: ../whois.c:805 ../whois.c:921 msgid "" "Catastrophic error: disclaimer text has been changed.\n" "Please upgrade this program.\n" msgstr "" -"Katastrofa! Tekst owiadczenia zosta zmieniony.\n" -"Prosz uaktualni ten program.\n" +"Katastrofa! Tekst oświadczenia został zmieniony.\n" +"Proszę uaktualnić ten program.\n" -#: ../whois.c:828 +#: ../whois.c:985 #, c-format msgid "Host %s not found." -msgstr "Serwer %s nie zosta znaleziony." +msgstr "Serwer %s nie został znaleziony." -#: ../whois.c:838 +#: ../whois.c:995 #, c-format msgid "%s/tcp: unknown service" -msgstr "%s/tcp: usuga nieznana" +msgstr "%s/tcp: usługa nieznana" -#: ../whois.c:913 +#: ../whois.c:1070 msgid "Timeout." -msgstr "Upyn limit czasu." +msgstr "Upłynął limit czasu." -#: ../whois.c:919 +#: ../whois.c:1076 #, c-format msgid "Interrupted by signal %d..." -msgstr "Przerwano sygnaem %d..." +msgstr "Przerwano sygnałem %d..." -#: ../whois.c:1189 +#: ../whois.c:1444 #, c-format msgid "" "Usage: whois [OPTION]... OBJECT...\n" @@ -168,103 +168,119 @@ msgid "" "-v TYPE request verbose template for object of TYPE\n" "-q [version|sources|types] query specified server info\n" msgstr "" -"Skadnia: whois [OPCJA]... OBIEKT...\n" +"Składnia: whois [OPCJA]... OBIEKT...\n" "\n" -"-h HOST, --host HOST czenie z serwerem HOST\n" -"-p PORT, --port PORT czenie z portem PORT\n" -"-H ukrycie owiadcze prawnych\n" -" --verbose wyjanianie, co si dzieje\n" -" --help wywietlenie tego opisu i zakoczenie dziaania\n" -" --version wywietlenie informacji o wersji i zakoczenie dziaania\n" +"-h HOST, --host HOST łączenie z serwerem HOST\n" +"-p PORT, --port PORT łączenie z portem PORT\n" +"-H ukrycie oświadczeń prawnych\n" +" --verbose wyjaśnianie, co się dzieje\n" +" --help wyświetlenie tego opisu i zakończenie działania\n" +" --version wyświetlenie informacji o wersji i zakończenie " +"działania\n" "\n" -"Nastpujce flagi s obsugiwane przez serwery whois.ripe.net i podobne:\n" -"-l zapytanie o jeden poziom mniej szczegowe\n" -"-L wyszukanie wszystkich mniej szczegowych dopasowa\n" -"-m wyszukanie pierwszego bardziej szczegowego dopasowania\n" -"-M wyszukanie wszystkich bardziej szczegowych dopasowa\n" -"-c wyszukanie najmniejszego dopasowania z atrybutem mnt-irt\n" -"-x dokadne dopasowanie\n" -"-b wypisanie zwile przedziaw adresw IP i kontaktu abuse\n" -"-B bez filtrowania abiektw (wywietlanie adresw e-mail)\n" -"-G bez grupowania powizanych obiektw\n" -"-d take obiekty odwrotnej delegacji DNS\n" -"-i ATR[,ATR]... wykonanie odwrotnego wyszukiwania ATRybutw\n" -"-T TYP[,TYP]... szukanie tylko obiektw podanego TYPU\n" -"-K zwrcenie tylko podstawowych kluczy\n" -"-r bez rekursywnego poszukiwania informacji kontaktowych\n" -"-R wymuszenie pokazania lokalnej kopii obiektu domeny nawet\n" -" jeli zawiera odwoanie\n" -"-a przeszukanie wszystkich baz danych z kopii lustrzanej\n" -"-s RDO[,RDO]... przeszukanie odbicia lustrzanego bazy danych ze RDA\n" -"-g RDO:PIERW.-OST. szukanie uaktualnie ze RDA od numeru PIERW. do OST.\n" -"-t TYP danie szablonu dla obiektu podanego TYPU\n" -"-v TYP danie szczegowego szablonu dla obiektu podanego TYPU\n" +"Następujące flagi są obsługiwane przez serwery whois.ripe.net i podobne:\n" +"-l zapytanie o jeden poziom mniej szczegółowe\n" +"-L wyszukanie wszystkich mniej szczegółowych dopasowań\n" +"-m wyszukanie pierwszego bardziej szczegółowego " +"dopasowania\n" +"-M wyszukanie wszystkich bardziej szczegółowych " +"dopasowań\n" +"-c wyszukanie najmniejszego dopasowania z atrybutem mnt-" +"irt\n" +"-x dokładne dopasowanie\n" +"-b wypisanie zwięźle przedziałów adresów IP i kontaktu " +"abuse\n" +"-B bez filtrowania abiektów (wyświetlanie adresów e-" +"mail)\n" +"-G bez grupowania powiązanych obiektów\n" +"-d także obiekty odwrotnej delegacji DNS\n" +"-i ATR[,ATR]... wykonanie odwrotnego wyszukiwania ATRybutów\n" +"-T TYP[,TYP]... szukanie tylko obiektów podanego TYPU\n" +"-K zwrócenie tylko podstawowych kluczy\n" +"-r bez rekursywnego poszukiwania informacji " +"kontaktowych\n" +"-R wymuszenie pokazania lokalnej kopii obiektu domeny " +"nawet\n" +" jeśli zawiera odwołanie\n" +"-a przeszukanie wszystkich baz danych z kopii " +"lustrzanej\n" +"-s ŹRÓDŁO[,ŹRÓDŁO]... przeszukanie odbicia lustrzanego bazy danych ze " +"ŹRÓDŁA\n" +"-g ŹRÓDŁO:PIERW.-OST. szukanie uaktualnień ze ŹRÓDŁA od numeru PIERW. do " +"OST.\n" +"-t TYP żądanie szablonu dla obiektu podanego TYPU\n" +"-v TYP żądanie szczegółowego szablonu dla obiektu podanego " +"TYPU\n" "-q [version|sources|types] zapytanie serwera o podane informacje\n" -#: ../mkpasswd.c:84 +#: ../mkpasswd.c:125 +msgid "BSDI extended DES-based crypt(3)" +msgstr "oparta o DES rozszerzona funkcja crypt(3) BSDI" + +#: ../mkpasswd.c:128 msgid "standard 56 bit DES-based crypt(3)" msgstr "standardowa 56-bitowa, oparta o DES funkcja crypt(3)" -#: ../mkpasswd.c:165 +#: ../mkpasswd.c:204 #, c-format msgid "Invalid method '%s'.\n" -msgstr "Nieprawidowa metoda '%s'.\n" +msgstr "Nieprawidłowa metoda '%s'.\n" -#: ../mkpasswd.c:174 ../mkpasswd.c:184 +#: ../mkpasswd.c:213 ../mkpasswd.c:225 #, c-format msgid "Invalid number '%s'.\n" -msgstr "Nieprawidowa liczba '%s'.\n" +msgstr "Nieprawidłowa liczba '%s'.\n" -#: ../mkpasswd.c:201 +#: ../mkpasswd.c:243 #, c-format msgid "Try '%s --help' for more information.\n" -msgstr "'%s --help' poda wicej informacji.\n" +msgstr "'%s --help' poda więcej informacji.\n" # : ../mkpasswd.c:152 -#: ../mkpasswd.c:242 +#: ../mkpasswd.c:287 #, 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] "Bdna dugo zarodka: %d bajt kiedy oczekiwano %d.\n" -msgstr[1] "Bdna dugo zarodka: %d bajty kiedy oczekiwano %d.\n" -msgstr[2] "Bdna dugo zarodka: %d bajtw kiedy oczekiwano %d.\n" +msgstr[0] "Błędna długość zarodka: %d bajt kiedy oczekiwano %d.\n" +msgstr[1] "Błędna długość zarodka: %d bajty kiedy oczekiwano %d.\n" +msgstr[2] "Błędna długość zarodka: %d bajtów kiedy oczekiwano %d.\n" # : ../mkpasswd.c:152 -#: ../mkpasswd.c:247 +#: ../mkpasswd.c:292 #, 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] "Bdna dugo zarodka: %d bajt kiedy oczekiwano %d <= n <= %d.\n" -msgstr[1] "Bdna dugo zarodka: %d bajty kiedy oczekiwano %d <= n <= %d.\n" -msgstr[2] "Bdna dugo zarodka: %d bajtw kiedy oczekiwano %d <= n <= %d.\n" +msgstr[0] "Błędna długość zarodka: %d bajt kiedy oczekiwano %d <= n <= %d.\n" +msgstr[1] "Błędna długość zarodka: %d bajty kiedy oczekiwano %d <= n <= %d.\n" +msgstr[2] "Błędna długość zarodka: %d bajtów kiedy oczekiwano %d <= n <= %d.\n" -#: ../mkpasswd.c:256 +#: ../mkpasswd.c:301 #, c-format msgid "Illegal salt character '%c'.\n" -msgstr "Bdny znak zarodka '%c'.\n" +msgstr "Błędny znak zarodka '%c'.\n" -#: ../mkpasswd.c:306 ../mkpasswd.c:322 +#: ../mkpasswd.c:352 ../mkpasswd.c:365 #, c-format msgid "Password: " -msgstr "Haso: " +msgstr "Hasło: " -#: ../mkpasswd.c:340 +#: ../mkpasswd.c:384 #, c-format msgid "Method not supported by crypt(3).\n" -msgstr "Metoda nie obsugiwana przez crypt(3).\n" +msgstr "Metoda nie obsługiwana przez crypt(3).\n" -#: ../mkpasswd.c:419 +#: ../mkpasswd.c:492 #, c-format msgid "" "Usage: mkpasswd [OPTIONS]... [PASSWORD [SALT]]\n" "Crypts the PASSWORD using crypt(3).\n" "\n" msgstr "" -"Skadnia: mkpasswd [OPCJE]... [HASO [ZARODEK]]\n" -"Koduje HASO przy uyciu funkcji crypt(3).\n" +"Składnia: mkpasswd [OPCJE]... [HASŁO [ZARODEK]]\n" +"Koduje HASŁO przy użyciu funkcji crypt(3).\n" "\n" -#: ../mkpasswd.c:422 +#: ../mkpasswd.c:495 #, c-format msgid "" " -m, --method=TYPE select method TYPE\n" @@ -283,24 +299,24 @@ msgid "" "\n" "Report bugs to %s.\n" msgstr "" -" -m, --method=TYP wybr metody TYP\n" +" -m, --method=TYP wybór metody TYP\n" " -5 to samo, co --method=md5\n" -" -S, --salt=ZARODEK uycie podanego ZARODKA\n" -" -R, --rounds=LICZBA uycie podanej LICZBY cykli\n" -" -P, --password-fd=NUM odczyt hasa z deskryptora pliku NUM zamiast\n" +" -S, --salt=ZARODEK użycie podanego ZARODKA\n" +" -R, --rounds=LICZBA użycie podanej LICZBY cykli\n" +" -P, --password-fd=NUM odczyt hasła z deskryptora pliku NUM zamiast\n" " z /dev/tty\n" " -s, --stdin to samo co --password-fd=0\n" -" -h, --help wywietlenie tego opisu i zakoczenie dziaania\n" -" -V, --version wywietlenie informacji o wersji i zakoczenie " -"dziaania\n" +" -h, --help wyświetlenie tego opisu i zakończenie działania\n" +" -V, --version wyświetlenie informacji o wersji i zakończenie " +"działania\n" "\n" -"Jeli nie podano HASA, pobierane jest interaktywnie.\n" -"Jeli nie podano ZARODKA, generowany jest losowy.\n" -"Jeli podano TYP 'help', wypisywane s dostpne metody.\n" +"Jeśli nie podano HASŁA, pobierane jest interaktywnie.\n" +"Jeśli nie podano ZARODKA, generowany jest losowy.\n" +"Jeśli podano TYP 'help', wypisywane są dostępne metody.\n" "\n" -"Bdy prosz zgasza na adres %s.\n" +"Błędy proszę zgłaszać na adres %s.\n" -#: ../mkpasswd.c:452 +#: ../mkpasswd.c:525 #, c-format msgid "Available methods:\n" -msgstr "Dostpne metody:\n" +msgstr "Dostępne metody:\n" diff --git a/tld_serv_list b/tld_serv_list index a3e574a..421daa5 100644 --- a/tld_serv_list +++ b/tld_serv_list @@ -141,7 +141,7 @@ .fi whois.fi .fj whois.usp.ac.fj .fk NONE # http://www.fidc.co.fk/ -.fm WEB http://dot.fm/whois/ +.fm whois.nic.fm .fo whois.nic.fo .fr whois.nic.fr .ga whois.dot.ga # www.my.ga @@ -155,7 +155,7 @@ .gl whois.nic.gl .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 +.gp whois.nic.gp .gq whois.dominio.gq .gr WEB https://grweb.ics.forth.gr/public/whois .gs whois.nic.gs @@ -173,7 +173,7 @@ .ie whois.iedr.ie .il whois.isoc.org.il .im whois.nic.im -.in whois.inregistry.net # afilias +.in whois.registry.in .io whois.nic.io .iq whois.cmc.iq # http://www.cmc.iq/en/iq.html .ir whois.nic.ir @@ -224,7 +224,7 @@ .mt WEB https://www.nic.org.mt/dotmt/ # whois.nic.org.mt is restricted .mu whois.nic.mu .mv NONE # NIC? www.dhiraagu.com.mv -.mw WEB http://www.registrar.mw/ +.mw whois.nic.mw .mx whois.mx .my whois.mynic.my .mz whois.nic.mz @@ -280,7 +280,7 @@ .sn whois.nic.sn .so whois.nic.so .sr NONE # www.register.sr -#.ss +.ss whois.nic.ss .st whois.nic.st .su whois.tcinet.ru .sv WEB http://www.svnet.org.sv/ @@ -350,11 +350,11 @@ # AW means that I had to guess the whois server name, but I was not able # to find any registered subdomains to verify it. -.xn--2scrj9c whois.inregistry.net # India +.xn--2scrj9c whois.registry.in # India .xn--3e0b707e whois.kr # Korea, Republic of -.xn--3hcrj9c whois.inregistry.net # India -.xn--45br5cyl whois.inregistry.net # India -.xn--45brj9c whois.inregistry.net # India, Bengali AW +.xn--3hcrj9c whois.registry.in # India +.xn--45br5cyl whois.registry.in # India +.xn--45brj9c whois.registry.in # India, Bengali AW .xn--54b7fta0cc NONE # Bangladesh .xn--80ao21a whois.nic.kz # Kazakhstan .xn--90a3ac whois.rnids.rs # Serbia @@ -365,12 +365,12 @@ .xn--e1a4c whois.eu # European Union, Cyrillic AW .xn--fiqs8s cwhois.cnnic.cn # China, Simplified Chinese .xn--fiqz9s cwhois.cnnic.cn # China, Traditional Chinese -.xn--fpcrj9c3d whois.inregistry.net # India, Telugu AW +.xn--fpcrj9c3d whois.registry.in # India, Telugu AW .xn--fzc2c9e2c whois.nic.lk # Sri Lanka, Sinhala -.xn--gecrj9c whois.inregistry.net # India, Gujarati AW -.xn--h2breg3eve whois.inregistry.net # India -.xn--h2brj9c8c whois.inregistry.net # India -.xn--h2brj9c whois.inregistry.net # India, Hindi AW +.xn--gecrj9c whois.registry.in # India, Gujarati AW +.xn--h2breg3eve whois.registry.in # India +.xn--h2brj9c8c whois.registry.in # India +.xn--h2brj9c whois.registry.in # India, Hindi AW .xn--j1amh whois.dotukr.com # Ukraine .xn--j6w193g whois.hkirc.hk # Hong Kong .xn--kprw13d whois.twnic.net.tw # Taiwan, Simplified Chinese @@ -380,13 +380,14 @@ .xn--mgb9awbf whois.registry.om # Oman .xn--mgba3a4f16a whois.nic.ir # Iran .xn--mgbaam7a8h whois.aeda.net.ae # United Arab Emirates +.xn--mgbah1a3hjkrd whois.nic.mr # Mauritania .xn--mgbai9azgqp6j NONE # Pakistan .xn--mgbayh7gpa WEB http://idn.jo/whois_a.aspx # Jordan -.xn--mgbbh1a71e whois.inregistry.net # India, Urdu AW -.xn--mgbbh1a whois.inregistry.net # India +.xn--mgbbh1a71e whois.registry.in # India, Urdu AW +.xn--mgbbh1a whois.registry.in # India .xn--mgbc0a9azcg NONE # Morocco .xn--mgberp4a5d4ar whois.nic.net.sa # Saudi Arabia -.xn--mgbgu82a whois.inregistry.net # India +.xn--mgbgu82a whois.registry.in # India .xn--mgbpl2fh NONE # Sudan .xn--mgbtx2b whois.cmc.iq # Iraq .xn--mgbx4cd0ab whois.mynic.my # Malaysia AW @@ -397,12 +398,12 @@ .xn--p1ai whois.tcinet.ru # Russian Federation .xn--pgbs0dh NONE # Tunisia .xn--qxam WEB https://grweb.ics.forth.gr/public/whois.jsp?lang=en # Greece AW -.xn--rvc1e0am3e whois.inregistry.net # India -.xn--s9brj9c whois.inregistry.net # India, Punjabi AW +.xn--rvc1e0am3e whois.registry.in # India +.xn--s9brj9c whois.registry.in # India, Punjabi AW .xn--wgbh1c whois.dotmasr.eg # Egypt .xn--wgbl6a whois.registry.qa # Qatar .xn--xkc2al3hye2a whois.nic.lk # Sri Lanka, Tamil -.xn--xkc2dl3a5ee0h whois.inregistry.net # India, Tamil AW +.xn--xkc2dl3a5ee0h whois.registry.in # India, Tamil AW .xn--y9a3aq whois.amnic.net # Armenia .xn--yfro4i67o whois.sgnic.sg # Singapore, Chinese .xn--ygbi2ammx whois.pnina.ps # Palestinian Territory diff --git a/whois.c b/whois.c index a784e8d..d9b6473 100644 --- a/whois.c +++ b/whois.c @@ -281,11 +281,8 @@ int main(int argc, char *argv[]) } #ifdef CONFIG_FILE - if (!server) { + if (!server) server = match_config_file(qstring); - if (verb && server) - printf(_("Using server %s.\n"), server); - } #endif if (!server)