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