whois: implement -i

function                                             old     new   delta
whois_main                                           654     675     +21
packed_usage                                       30355   30356      +1

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2016-07-06 17:16:27 +02:00
parent 1035c92e2d
commit 0844b5afe2

View File

@ -21,13 +21,18 @@
//kbuild:lib-$(CONFIG_WHOIS) += whois.o
//usage:#define whois_trivial_usage
//usage: "[-h SERVER] [-p PORT] NAME..."
//usage: "[-i] [-h SERVER] [-p PORT] NAME..."
//usage:#define whois_full_usage "\n\n"
//usage: "Query WHOIS info about NAME\n"
//usage: "\n -i Show redirect results too"
//usage: "\n -h,-p Server to query"
#include "libbb.h"
enum {
OPT_i = (1 << 0),
};
static char *query(const char *host, int port, const char *domain)
{
int fd;
@ -53,6 +58,7 @@ static char *query(const char *host, int port, const char *domain)
buf = xrealloc(buf, bufpos + len + 1);
memcpy(buf + bufpos, linebuf, len);
bufpos += len;
buf[bufpos] = '\0';
if (!redir || !success) {
trim(linebuf);
@ -73,7 +79,7 @@ static char *query(const char *host, int port, const char *domain)
fclose(fp); /* closes fd too */
if (!success && !pfx[0]) {
/*
* Looking at jwhois.conf, some whois servers use
* Looking at /etc/jwhois.conf, some whois servers use
* "domain = DOMAIN", "DOMAIN ID <DOMAIN>"
* and "domain=DOMAIN_WITHOUT_LAST_COMPONENT"
* formats, but those are rare.
@ -91,11 +97,9 @@ static char *query(const char *host, int port, const char *domain)
free(redir);
redir = NULL;
}
if (!redir) {
if (!redir || (option_mask32 & OPT_i)) {
/* Output saved text */
printf("[%s]\n", host);
buf[bufpos] = '\0';
fputs(buf, stdout);
printf("[%s]\n%s", host, buf ? buf : "");
}
free(buf);
return redir;
@ -164,7 +168,7 @@ int whois_main(int argc UNUSED_PARAM, char **argv)
const char *host = "whois.iana.org";
opt_complementary = "-1:p+";
getopt32(argv, "h:p:", &host, &port);
getopt32(argv, "ih:p:", &host, &port);
argv += optind;
do {