diff options
-rw-r--r-- | src/print_eth_info.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/print_eth_info.c b/src/print_eth_info.c index 90005bf..941b465 100644 --- a/src/print_eth_info.c +++ b/src/print_eth_info.c @@ -30,13 +30,8 @@ static int print_eth_speed(char *outwalk, const char *interface) { #if defined(LINUX) - int ethspeed = 0; -#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) - char *ethspeed; -#endif - -#if defined(LINUX) /* This code path requires root privileges */ + int ethspeed = 0; struct ifreq ifr; struct ethtool_cmd ecmd; @@ -49,6 +44,7 @@ static int print_eth_speed(char *outwalk, const char *interface) { return sprintf(outwalk, "%d Mbit/s", ethspeed); } else return sprintf(outwalk, "?"); #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + char *ethspeed; struct ifmediareq ifm; (void)memset(&ifm, 0, sizeof(ifm)); (void)strncpy(ifm.ifm_name, interface, sizeof(ifm.ifm_name)); @@ -69,6 +65,8 @@ static int print_eth_speed(char *outwalk, const char *interface) { } ethspeed = (desc->ifmt_string != NULL ? desc->ifmt_string : "?"); return sprintf(outwalk, "%s", ethspeed); +#else + return sprintf(outwalk, "?"); #endif } |