Remove #ifdeffed out code, both KEEP_UNUSED and #if 0.
This commit is contained in:
parent
5084c78cbe
commit
e84f4343b2
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user