diff options
author | Denys Vlasenko | 2016-07-06 17:16:27 +0200 |
---|---|---|
committer | Denys Vlasenko | 2016-07-06 17:16:27 +0200 |
commit | 0844b5afe2cd60d46b7f2ad0fac8c2818d0780b3 (patch) | |
tree | 12b43f35838bc8716cc8c2b4d925aa8d60e9fdb1 /networking/whois.c | |
parent | 1035c92e2d1c017eab7cb10badb7e3b407aeba2d (diff) | |
download | busybox-0844b5afe2cd60d46b7f2ad0fac8c2818d0780b3.zip busybox-0844b5afe2cd60d46b7f2ad0fac8c2818d0780b3.tar.gz |
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>
Diffstat (limited to 'networking/whois.c')
-rw-r--r-- | networking/whois.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/networking/whois.c b/networking/whois.c index 5ef8367..6ba8dfd 100644 --- a/networking/whois.c +++ b/networking/whois.c @@ -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 { |