function old new delta packed_usage 28706 28623 -83 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* vi: set sw=4 ts=4: */
 | 
						|
/*
 | 
						|
 * whois - tiny client for the whois directory service
 | 
						|
 *
 | 
						|
 * Copyright (c) 2011 Pere Orga <gotrunks@gmail.com>
 | 
						|
 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
 | 
						|
 */
 | 
						|
/* TODO
 | 
						|
 * Add ipv6 support
 | 
						|
 * Add proxy support
 | 
						|
 */
 | 
						|
 | 
						|
//config:config WHOIS
 | 
						|
//config:	bool "whois"
 | 
						|
//config:	default y
 | 
						|
//config:	help
 | 
						|
//config:	  whois is a client for the whois directory service
 | 
						|
 | 
						|
//applet:IF_WHOIS(APPLET(whois, BB_DIR_USR_BIN, BB_SUID_DROP))
 | 
						|
 | 
						|
//kbuild:lib-$(CONFIG_WHOIS) += whois.o
 | 
						|
 | 
						|
//usage:#define whois_trivial_usage
 | 
						|
//usage:       "[-h SERVER] [-p PORT] NAME..."
 | 
						|
//usage:#define whois_full_usage "\n\n"
 | 
						|
//usage:       "Query WHOIS info about NAME\n"
 | 
						|
//usage:     "\n	-h,-p	Server to query"
 | 
						|
 | 
						|
#include "libbb.h"
 | 
						|
 | 
						|
static void pipe_out(int fd)
 | 
						|
{
 | 
						|
	FILE *fp;
 | 
						|
	char buf[1024];
 | 
						|
 | 
						|
	fp = xfdopen_for_read(fd);
 | 
						|
	while (fgets(buf, sizeof(buf), fp)) {
 | 
						|
		char *p = strpbrk(buf, "\r\n");
 | 
						|
		if (p)
 | 
						|
			*p = '\0';
 | 
						|
		puts(buf);
 | 
						|
	}
 | 
						|
 | 
						|
	fclose(fp); /* closes fd too */
 | 
						|
}
 | 
						|
 | 
						|
int whois_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 | 
						|
int whois_main(int argc UNUSED_PARAM, char **argv)
 | 
						|
{
 | 
						|
	int port = 43;
 | 
						|
	const char *host = "whois-servers.net";
 | 
						|
 | 
						|
	opt_complementary = "-1:p+";
 | 
						|
	getopt32(argv, "h:p:", &host, &port);
 | 
						|
 | 
						|
	argv += optind;
 | 
						|
	do {
 | 
						|
		int fd = create_and_connect_stream_or_die(host, port);
 | 
						|
		fdprintf(fd, "%s\r\n", *argv);
 | 
						|
		pipe_out(fd);
 | 
						|
	}
 | 
						|
	while (*++argv);
 | 
						|
 | 
						|
	return EXIT_SUCCESS;
 | 
						|
}
 |