Remove #ifdeffed out code, both KEEP_UNUSED and #if 0.

This commit is contained in:
Rob Landley 2006-06-03 21:23:20 +00:00
parent 5084c78cbe
commit e84f4343b2

View File

@ -4,7 +4,6 @@
* *
* Heavily modified by Manuel Novoa III Mar 12, 2001 * Heavily modified by Manuel Novoa III Mar 12, 2001
* *
* Pruned unused code using KEEP_UNUSED define.
* Added print_bytes_scaled function to reduce code size. * Added print_bytes_scaled function to reduce code size.
* Added some (potentially) missing defines. * Added some (potentially) missing defines.
* Improved display support for -a and for a named interface. * Improved display support for -a and for a named interface.
@ -20,11 +19,7 @@
* Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
* and others. Copyright 1993 MicroWalt Corporation * and others. Copyright 1993 MicroWalt Corporation
* *
* This program is free software; you can redistribute it * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
* your option) any later version.
* *
* Patched to support 'add' and 'del' keywords for INET(4) addresses * Patched to support 'add' and 'del' keywords for INET(4) addresses
* by Mrs. Brisby <mrs.brisby@nimh.org> * by Mrs. Brisby <mrs.brisby@nimh.org>
@ -36,8 +31,6 @@
* (default AF was wrong) * (default AF was wrong)
*/ */
/* #define KEEP_UNUSED */
/* /*
* *
* Protocol Families. * Protocol Families.
@ -133,39 +126,6 @@ struct aftype {
char *flag_file; char *flag_file;
}; };
#ifdef KEEP_UNUSED
static int flag_unx;
static int flag_inet;
static struct aftrans_t {
char *alias;
char *name;
int *flag;
} aftrans[] = {
{
"ip", "inet", &flag_inet},
#ifdef HAVE_AFINET6
{
"ip6", "inet6", &flag_inet6},
#endif
{
"inet", "inet", &flag_inet},
#ifdef HAVE_AFINET6
{
"inet6", "inet6", &flag_inet6},
#endif
{
"unix", "unix", &flag_unx}, {
"tcpip", "inet", &flag_inet},
{
0, 0, 0}
};
static char afname[256] = "";
#endif /* KEEP_UNUSED */
#if HAVE_AFUNIX #if HAVE_AFUNIX
/* Display a UNIX domain address. */ /* Display a UNIX domain address. */
@ -197,19 +157,6 @@ static struct aftype unix_aftype = {
#if HAVE_AFINET #if HAVE_AFINET
#ifdef KEEP_UNUSED
static void INET_reserror(char *text)
{
herror(text);
}
/* Display an Internet socket address. */
static char *INET_print(unsigned char *ptr)
{
return (inet_ntoa((*(struct in_addr *) ptr)));
}
#endif /* KEEP_UNUSED */
/* Display an Internet socket address. */ /* Display an Internet socket address. */
static char *INET_sprint(struct sockaddr *sap, int numeric) static char *INET_sprint(struct sockaddr *sap, int numeric)
{ {
@ -225,96 +172,6 @@ static char *INET_sprint(struct sockaddr *sap, int numeric)
return (buff); return (buff);
} }
#ifdef KEEP_UNUSED
static char *INET_sprintmask(struct sockaddr *sap, int numeric,
unsigned int netmask)
{
static char buff[128];
if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
return safe_strncpy(buff, "[NONE SET]", sizeof(buff));
if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
numeric, netmask) != 0)
return (NULL);
return (buff);
}
static int INET_getsock(char *bufp, struct sockaddr *sap)
{
char *sp = bufp, *bp;
unsigned int i;
unsigned val;
struct sockaddr_in *sin;
sin = (struct sockaddr_in *) sap;
sin->sin_family = AF_INET;
sin->sin_port = 0;
val = 0;
bp = (char *) &val;
for (i = 0; i < sizeof(sin->sin_addr.s_addr); i++) {
*sp = toupper(*sp);
if ((*sp >= 'A') && (*sp <= 'F'))
bp[i] |= (int) (*sp - 'A') + 10;
else if ((*sp >= '0') && (*sp <= '9'))
bp[i] |= (int) (*sp - '0');
else
return (-1);
bp[i] <<= 4;
sp++;
*sp = toupper(*sp);
if ((*sp >= 'A') && (*sp <= 'F'))
bp[i] |= (int) (*sp - 'A') + 10;
else if ((*sp >= '0') && (*sp <= '9'))
bp[i] |= (int) (*sp - '0');
else
return (-1);
sp++;
}
sin->sin_addr.s_addr = htonl(val);
return (sp - bufp);
}
static int INET_input(int type, char *bufp, struct sockaddr *sap)
{
switch (type) {
case 1:
return (INET_getsock(bufp, sap));
case 256:
return (INET_resolve(bufp, (struct sockaddr_in *) sap, 1));
default:
return (INET_resolve(bufp, (struct sockaddr_in *) sap, 0));
}
}
static int INET_getnetmask(char *adr, struct sockaddr *m, char *name)
{
struct sockaddr_in *mask = (struct sockaddr_in *) m;
char *slash, *end;
int prefix;
if ((slash = strchr(adr, '/')) == NULL)
return 0;
*slash++ = '\0';
prefix = strtoul(slash, &end, 0);
if (*end != '\0')
return -1;
if (name) {
sprintf(name, "/%d", prefix);
}
mask->sin_family = AF_INET;
mask->sin_addr.s_addr = htonl(~(0xffffffffU >> prefix));
return 1;
}
#endif /* KEEP_UNUSED */
static struct aftype inet_aftype = { static struct aftype inet_aftype = {
"inet", "DARPA Internet", AF_INET, sizeof(unsigned long), "inet", "DARPA Internet", AF_INET, sizeof(unsigned long),
NULL /* UNUSED INET_print */ , INET_sprint, NULL /* UNUSED INET_print */ , INET_sprint,
@ -329,22 +186,6 @@ static struct aftype inet_aftype = {
#if HAVE_AFINET6 #if HAVE_AFINET6
#ifdef KEEP_UNUSED
static void INET6_reserror(char *text)
{
herror(text);
}
/* Display an Internet socket address. */
static char *INET6_print(unsigned char *ptr)
{
static char name[80];
inet_ntop(AF_INET6, (struct in6_addr *) ptr, name, 80);
return name;
}
#endif /* KEEP_UNUSED */
/* Display an Internet socket address. */ /* Display an Internet socket address. */
/* dirty! struct sockaddr usually doesn't suffer for inet6 addresses, fst. */ /* dirty! struct sockaddr usually doesn't suffer for inet6 addresses, fst. */
static char *INET6_sprint(struct sockaddr *sap, int numeric) static char *INET6_sprint(struct sockaddr *sap, int numeric)
@ -359,32 +200,6 @@ static char *INET6_sprint(struct sockaddr *sap, int numeric)
return (buff); return (buff);
} }
#ifdef KEEP_UNUSED
static int INET6_getsock(char *bufp, struct sockaddr *sap)
{
struct sockaddr_in6 *sin6;
sin6 = (struct sockaddr_in6 *) sap;
sin6->sin6_family = AF_INET6;
sin6->sin6_port = 0;
if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0)
return (-1);
return 16; /* ?;) */
}
static int INET6_input(int type, char *bufp, struct sockaddr *sap)
{
switch (type) {
case 1:
return (INET6_getsock(bufp, sap));
default:
return (INET6_resolve(bufp, (struct sockaddr_in6 *) sap));
}
}
#endif /* KEEP_UNUSED */
static struct aftype inet6_aftype = { static struct aftype inet6_aftype = {
"inet6", "IPv6", AF_INET6, sizeof(struct in6_addr), "inet6", "IPv6", AF_INET6, sizeof(struct in6_addr),
NULL /* UNUSED INET6_print */ , INET6_sprint, NULL /* UNUSED INET6_print */ , INET6_sprint,
@ -445,135 +260,11 @@ static struct aftype * const aftypes[] = {
NULL NULL
}; };
#ifdef KEEP_UNUSED
static short sVafinit = 0;
static void afinit()
{
unspec_aftype.title = "UNSPEC";
#if HAVE_AFUNIX
unix_aftype.title = "UNIX Domain";
#endif
#if HAVE_AFINET
inet_aftype.title = "DARPA Internet";
#endif
#if HAVE_AFINET6
inet6_aftype.title = "IPv6";
#endif
sVafinit = 1;
}
static int aftrans_opt(const char *arg)
{
struct aftrans_t *paft;
char *tmp1, *tmp2;
char buf[256];
safe_strncpy(buf, arg, sizeof(buf));
tmp1 = buf;
while (tmp1) {
tmp2 = strchr(tmp1, ',');
if (tmp2)
*(tmp2++) = '\0';
paft = aftrans;
for (paft = aftrans; paft->alias; paft++) {
if (strcmp(tmp1, paft->alias))
continue;
if (strlen(paft->name) + strlen(afname) + 1 >= sizeof(afname)) {
bb_error_msg("Too many address family arguments.");
return (0);
}
if (paft->flag)
(*paft->flag)++;
if (afname[0])
strcat(afname, ",");
strcat(afname, paft->name);
break;
}
if (!paft->alias) {
bb_error_msg("Unknown address family `%s'.", tmp1);
return (1);
}
tmp1 = tmp2;
}
return (0);
}
/* set the default AF list from the program name or a constant value */
static void aftrans_def(char *tool, char *argv0, char *dflt)
{
char *tmp;
char *buf;
strcpy(afname, dflt);
if (!(tmp = strrchr(argv0, '/')))
tmp = argv0; /* no slash?! */
else
tmp++;
if (!(buf = strdup(tmp)))
return;
if (strlen(tool) >= strlen(tmp)) {
free(buf);
return;
}
tmp = buf + (strlen(tmp) - strlen(tool));
if (strcmp(tmp, tool) != 0) {
free(buf);
return;
}
*tmp = '\0';
if ((tmp = strchr(buf, '_')))
*tmp = '\0';
afname[0] = '\0';
if (aftrans_opt(buf))
strcpy(afname, buf);
free(buf);
}
/* Check our protocol family table for this family. */
static struct aftype *get_aftype(const char *name)
{
struct aftype * const *afp;
#ifdef KEEP_UNUSED
if (!sVafinit)
afinit();
#endif /* KEEP_UNUSED */
afp = aftypes;
while (*afp != NULL) {
if (!strcmp((*afp)->name, name))
return (*afp);
afp++;
}
if (strchr(name, ','))
bb_error_msg("Only one address family.");
return (NULL);
}
#endif /* KEEP_UNUSED */
/* Check our protocol family table for this family. */ /* Check our protocol family table for this family. */
static struct aftype *get_afntype(int af) static struct aftype *get_afntype(int af)
{ {
struct aftype * const *afp; struct aftype * const *afp;
#ifdef KEEP_UNUSED
if (!sVafinit)
afinit();
#endif /* KEEP_UNUSED */
afp = aftypes; afp = aftypes;
while (*afp != NULL) { while (*afp != NULL) {
if ((*afp)->af == af) if ((*afp)->af == af)
@ -588,11 +279,6 @@ static int get_socket_for_af(int af)
{ {
struct aftype * const *afp; struct aftype * const *afp;
#ifdef KEEP_UNUSED
if (!sVafinit)
afinit();
#endif /* KEEP_UNUSED */
afp = aftypes; afp = aftypes;
while (*afp != NULL) { while (*afp != NULL) {
if ((*afp)->af == af) if ((*afp)->af == af)
@ -602,38 +288,6 @@ static int get_socket_for_af(int af)
return -1; return -1;
} }
#ifdef KEEP_UNUSED
/* type: 0=all, 1=getroute */
static void print_aflist(int type)
{
int count = 0;
char *txt;
struct aftype * const *afp;
#ifdef KEEP_UNUSED
if (!sVafinit)
afinit();
#endif /* KEEP_UNUSED */
afp = aftypes;
while (*afp != NULL) {
if ((type == 1 && ((*afp)->rprint == NULL)) || ((*afp)->af == 0)) {
afp++;
continue;
}
if ((count % 3) == 0)
fprintf(stderr, count ? "\n " : " ");
txt = (*afp)->name;
if (!txt)
txt = "..";
fprintf(stderr, "%s (%s) ", txt, (*afp)->title);
count++;
afp++;
}
fprintf(stderr, "\n");
}
#endif /* KEEP_UNUSED */
struct user_net_device_stats { struct user_net_device_stats {
unsigned long long rx_packets; /* total packets received */ unsigned long long rx_packets; /* total packets received */
unsigned long long tx_packets; /* total packets transmitted */ unsigned long long tx_packets; /* total packets transmitted */
@ -687,13 +341,6 @@ struct interface {
int interface_opt_a = 0; /* show all interfaces */ int interface_opt_a = 0; /* show all interfaces */
#ifdef KEEP_UNUSED
static int opt_i = 0; /* show the statistics */
static int opt_v = 0; /* debugging output flag */
static int addr_family = 0; /* currently selected AF */
#endif /* KEEP_UNUSED */
static struct interface *int_list, *int_last; static struct interface *int_list, *int_last;
static int skfd = -1; /* generic raw socket desc. */ static int skfd = -1; /* generic raw socket desc. */
@ -1170,84 +817,6 @@ static char *pr_ether(unsigned char *ptr)
return (buff); return (buff);
} }
#ifdef KEEP_UNUSED
/* Input an Ethernet address and convert to binary. */
static int in_ether(char *bufp, struct sockaddr *sap)
{
unsigned char *ptr;
char c, *orig;
int i;
unsigned val;
sap->sa_family = ether_hwtype.type;
ptr = sap->sa_data;
i = 0;
orig = bufp;
while ((*bufp != '\0') && (i < ETH_ALEN)) {
val = 0;
c = *bufp++;
if (isdigit(c))
val = c - '0';
else if (c >= 'a' && c <= 'f')
val = c - 'a' + 10;
else if (c >= 'A' && c <= 'F')
val = c - 'A' + 10;
else {
#ifdef DEBUG
bb_error_msg("in_ether(%s): invalid ether address!\n", orig);
#endif
errno = EINVAL;
return (-1);
}
val <<= 4;
c = *bufp;
if (isdigit(c))
val |= c - '0';
else if (c >= 'a' && c <= 'f')
val |= c - 'a' + 10;
else if (c >= 'A' && c <= 'F')
val |= c - 'A' + 10;
else if (c == ':' || c == 0)
val >>= 4;
else {
#ifdef DEBUG
bb_error_msg("in_ether(%s): invalid ether address!", orig);
#endif
errno = EINVAL;
return (-1);
}
if (c != 0)
bufp++;
*ptr++ = (unsigned char) (val & 0377);
i++;
/* We might get a semicolon here - not required. */
if (*bufp == ':') {
#ifdef DEBUG
if (i == ETH_ALEN) {
bb_error_msg("in_ether(%s): trailing : ignored!", orig);
}
#endif
bufp++;
}
}
#ifdef DEBUG
/* That's it. Any trailing junk? */
if ((i == ETH_ALEN) && (*bufp != '\0')) {
bb_error_msg("in_ether(%s): trailing junk!", orig);
errno = EINVAL;
return (-1);
}
bb_error_msg("in_ether(%s): %s", orig, pr_ether(sap->sa_data));
#endif
return (0);
}
#endif /* KEEP_UNUSED */
static const struct hwtype ether_hwtype = { static const struct hwtype ether_hwtype = {
"ether", "Ethernet", ARPHRD_ETHER, ETH_ALEN, "ether", "Ethernet", ARPHRD_ETHER, ETH_ALEN,
pr_ether, NULL /* UNUSED in_ether */ , NULL pr_ether, NULL /* UNUSED in_ether */ , NULL
@ -1261,15 +830,6 @@ static const struct hwtype ether_hwtype = {
#include <net/if_arp.h> #include <net/if_arp.h>
#ifdef KEEP_UNUSED
/* Start the PPP encapsulation on the file descriptor. */
static int do_ppp(int fd)
{
bb_error_msg("You cannot start PPP with this program.");
return -1;
}
#endif /* KEEP_UNUSED */
static const struct hwtype ppp_hwtype = { static const struct hwtype ppp_hwtype = {
"ppp", "Point-Point Protocol", ARPHRD_PPP, 0, "ppp", "Point-Point Protocol", ARPHRD_PPP, 0,
NULL, NULL, NULL /* UNUSED do_ppp */ , 0 NULL, NULL, NULL /* UNUSED do_ppp */ , 0
@ -1298,40 +858,7 @@ static const struct hwtype * const hwtypes[] = {
NULL NULL
}; };
#ifdef KEEP_UNUSED
static short sVhwinit = 0;
static void hwinit()
{
loop_hwtype.title = "Local Loopback";
unspec_hwtype.title = "UNSPEC";
#if HAVE_HWETHER
ether_hwtype.title = "Ethernet";
#endif
#if HAVE_HWTUNNEL
tunnel_hwtype.title = "IPIP Tunnel";
#endif
#if HAVE_HWPPP
ppp_hwtype.title = "Point-to-Point Protocol";
#endif
sVhwinit = 1;
}
#endif /* KEEP_UNUSED */
#ifdef IFF_PORTSEL #ifdef IFF_PORTSEL
#if 0
static const char * const if_port_text[][4] = {
/* Keep in step with <linux/netdevice.h> */
{"unknown", NULL, NULL, NULL},
{"10base2", "bnc", "coax", NULL},
{"10baseT", "utp", "tpe", NULL},
{"AUI", "thick", "db15", NULL},
{"100baseT", NULL, NULL, NULL},
{"100baseTX", NULL, NULL, NULL},
{"100baseFX", NULL, NULL, NULL},
{NULL, NULL, NULL, NULL},
};
#else
static const char * const if_port_text[] = { static const char * const if_port_text[] = {
/* Keep in step with <linux/netdevice.h> */ /* Keep in step with <linux/netdevice.h> */
"unknown", "unknown",
@ -1344,18 +871,12 @@ static const char * const if_port_text[] = {
NULL NULL
}; };
#endif #endif
#endif
/* Check our hardware type table for this type. */ /* Check our hardware type table for this type. */
static const struct hwtype *get_hwntype(int type) static const struct hwtype *get_hwntype(int type)
{ {
const struct hwtype * const *hwp; const struct hwtype * const *hwp;
#ifdef KEEP_UNUSED
if (!sVhwinit)
hwinit();
#endif /* KEEP_UNUSED */
hwp = hwtypes; hwp = hwtypes;
while (*hwp != NULL) { while (*hwp != NULL) {
if ((*hwp)->type == type) if ((*hwp)->type == type)
@ -1391,24 +912,12 @@ static void print_bytes_scaled(unsigned long long ull, const char *end)
int_part = ull; int_part = ull;
i = 4; i = 4;
do { do {
#if 0
/* This does correct rounding and is a little larger. But it
* uses KiB as the smallest displayed unit. */
if ((int_part < (1024*1024 - 51)) || !--i) {
i = 0;
int_part += 51; /* 1024*.05 = 51.2 */
frac_part = ((((unsigned int) int_part) & (1024-1)) * 10) / 1024;
}
int_part /= 1024;
ext += 3; /* KiB, MiB, GiB, TiB */
#else
if (int_part >= 1024) { if (int_part >= 1024) {
frac_part = ((((unsigned int) int_part) & (1024-1)) * 10) / 1024; frac_part = ((((unsigned int) int_part) & (1024-1)) * 10) / 1024;
int_part /= 1024; int_part /= 1024;
ext += 3; /* KiB, MiB, GiB, TiB */ ext += 3; /* KiB, MiB, GiB, TiB */
} }
--i; --i;
#endif
} while (i); } while (i);
printf("X bytes:%llu (%llu.%u %sB)%s", ull, int_part, frac_part, ext, end); printf("X bytes:%llu (%llu.%u %sB)%s", ull, int_part, frac_part, ext, end);