slightly clean the whacked out formatting

This commit is contained in:
Eric Andersen
2004-04-13 19:25:57 +00:00
parent 625da9d61e
commit a4375047d3

View File

@ -44,15 +44,15 @@ static unsigned long get_netmask(unsigned long ipaddr)
static int get_prefix(unsigned long netmask) static int get_prefix(unsigned long netmask)
{ {
unsigned long msk = 0x80000000; unsigned long msk = 0x80000000;
int ret = 0; int ret = 0;
netmask = htonl(netmask); netmask = htonl(netmask);
while(msk) { while(msk) {
if (netmask & msk) if (netmask & msk)
ret++; ret++;
msk >>= 1; msk >>= 1;
} }
return ret; return ret;
} }
#endif #endif
@ -81,13 +81,13 @@ int ipcalc_main(int argc, char **argv)
#endif #endif
static const struct option long_options[] = { static const struct option long_options[] = {
{"netmask", no_argument, NULL, 'm'}, {"netmask", no_argument, NULL, 'm'},
{"broadcast", no_argument, NULL, 'b'}, {"broadcast", no_argument, NULL, 'b'},
{"network", no_argument, NULL, 'n'}, {"network", no_argument, NULL, 'n'},
#ifdef CONFIG_FEATURE_IPCALC_FANCY #ifdef CONFIG_FEATURE_IPCALC_FANCY
{"prefix", no_argument, NULL, 'p'}, {"prefix", no_argument, NULL, 'p'},
{"hostname", no_argument, NULL, 'h'}, {"hostname", no_argument, NULL, 'h'},
{"silent", no_argument, NULL, 's'}, {"silent", no_argument, NULL, 's'},
#endif #endif
{NULL, 0, NULL, 0} {NULL, 0, NULL, 0}
}; };
@ -95,10 +95,11 @@ int ipcalc_main(int argc, char **argv)
bb_applet_long_options = long_options; bb_applet_long_options = long_options;
mode = bb_getopt_ulflags(argc, argv, mode = bb_getopt_ulflags(argc, argv,
#ifdef CONFIG_FEATURE_IPCALC_FANCY #ifdef CONFIG_FEATURE_IPCALC_FANCY
"mbnphs"); "mbnphs"
#else #else
"mbn"); "mbn"
#endif #endif
);
if (mode & (BROADCAST | NETWORK | NETPREFIX)) { if (mode & (BROADCAST | NETWORK | NETPREFIX)) {
if (argc - optind > 2) { if (argc - optind > 2) {
bb_show_usage(); bb_show_usage();
@ -110,35 +111,35 @@ int ipcalc_main(int argc, char **argv)
} }
#ifdef CONFIG_FEATURE_IPCALC_FANCY #ifdef CONFIG_FEATURE_IPCALC_FANCY
prefixstr = ipstr = argv[optind]; prefixstr = ipstr = argv[optind];
while(*prefixstr) { while(*prefixstr) {
if (*prefixstr == '/') { if (*prefixstr == '/') {
*prefixstr = (char)0; *prefixstr = (char)0;
prefixstr++; prefixstr++;
if (*prefixstr) { if (*prefixstr) {
unsigned int msk; unsigned int msk;
if (safe_strtoul(prefixstr, &netprefix) || netprefix > 32) { if (safe_strtoul(prefixstr, &netprefix) || netprefix > 32) {
IPCALC_MSG(bb_error_msg_and_die("bad IP prefix: %s\n", prefixstr), IPCALC_MSG(bb_error_msg_and_die("bad IP prefix: %s\n", prefixstr),
exit(EXIT_FAILURE)); exit(EXIT_FAILURE));
} }
netmask = 0; netmask = 0;
msk = 0x80000000; msk = 0x80000000;
while (netprefix > 0) { while (netprefix > 0) {
netmask |= msk; netmask |= msk;
msk >>= 1; msk >>= 1;
netprefix--; netprefix--;
} }
netmask = htonl(netmask); netmask = htonl(netmask);
/* Even if it was 0, we will signify that we have a netmask. This allows */ /* Even if it was 0, we will signify that we have a netmask. This allows */
/* for specification of default routes, etc which have a 0 netmask/prefix */ /* for specification of default routes, etc which have a 0 netmask/prefix */
have_netmask = 1; have_netmask = 1;
} }
break; break;
} }
prefixstr++; prefixstr++;
} }
ipaddr = inet_aton(ipstr, &a); ipaddr = inet_aton(ipstr, &a);
#else #else
ipaddr = inet_aton(argv[optind], &a); ipaddr = inet_aton(argv[optind], &a);
@ -146,31 +147,31 @@ int ipcalc_main(int argc, char **argv)
if (ipaddr == 0) { if (ipaddr == 0) {
IPCALC_MSG(bb_error_msg_and_die("bad IP address: %s", argv[optind]), IPCALC_MSG(bb_error_msg_and_die("bad IP address: %s", argv[optind]),
exit(EXIT_FAILURE)); exit(EXIT_FAILURE));
} }
ipaddr = a.s_addr; ipaddr = a.s_addr;
if (argc - optind == 2) { if (argc - optind == 2) {
#ifdef CONFIG_FEATURE_IPCALC_FANCY #ifdef CONFIG_FEATURE_IPCALC_FANCY
if (have_netmask) { if (have_netmask) {
IPCALC_MSG(bb_error_msg_and_die("Both prefix and netmask were specified, use one or the other.\n"), IPCALC_MSG(bb_error_msg_and_die("Both prefix and netmask were specified, use one or the other.\n"),
exit(EXIT_FAILURE)); exit(EXIT_FAILURE));
} }
#endif #endif
netmask = inet_aton(argv[optind + 1], &a); netmask = inet_aton(argv[optind + 1], &a);
if (netmask == 0) { if (netmask == 0) {
IPCALC_MSG(bb_error_msg_and_die("bad netmask: %s", argv[optind + 1]), IPCALC_MSG(bb_error_msg_and_die("bad netmask: %s", argv[optind + 1]),
exit(EXIT_FAILURE)); exit(EXIT_FAILURE));
} }
netmask = a.s_addr; netmask = a.s_addr;
} else { } else {
#ifdef CONFIG_FEATURE_IPCALC_FANCY #ifdef CONFIG_FEATURE_IPCALC_FANCY
if (!have_netmask) if (!have_netmask)
#endif #endif
/* JHC - If the netmask wasn't provided then calculate it */ /* JHC - If the netmask wasn't provided then calculate it */
netmask = get_netmask(ipaddr); netmask = get_netmask(ipaddr);
} }
if (mode & NETMASK) { if (mode & NETMASK) {
@ -188,9 +189,9 @@ int ipcalc_main(int argc, char **argv)
} }
#ifdef CONFIG_FEATURE_IPCALC_FANCY #ifdef CONFIG_FEATURE_IPCALC_FANCY
if (mode & NETPREFIX) { if (mode & NETPREFIX) {
printf("PREFIX=%i\n", get_prefix(netmask)); printf("PREFIX=%i\n", get_prefix(netmask));
} }
if (mode & HOSTNAME) { if (mode & HOSTNAME) {
struct hostent *hostinfo; struct hostent *hostinfo;
@ -199,7 +200,7 @@ int ipcalc_main(int argc, char **argv)
hostinfo = gethostbyaddr((char *) &ipaddr, sizeof(ipaddr), AF_INET); hostinfo = gethostbyaddr((char *) &ipaddr, sizeof(ipaddr), AF_INET);
if (!hostinfo) { if (!hostinfo) {
IPCALC_MSG(bb_herror_msg_and_die( IPCALC_MSG(bb_herror_msg_and_die(
"cannot find hostname for %s", argv[optind]),); "cannot find hostname for %s", argv[optind]),);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
for (x = 0; hostinfo->h_name[x]; x++) { for (x = 0; hostinfo->h_name[x]; x++) {