aboutsummaryrefslogtreecommitdiff
path: root/networking/ipcalc.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/ipcalc.c')
-rw-r--r--networking/ipcalc.c21
1 files changed, 1 insertions, 20 deletions
diff --git a/networking/ipcalc.c b/networking/ipcalc.c
index 92e7b289d..3ec473c6b 100644
--- a/networking/ipcalc.c
+++ b/networking/ipcalc.c
@@ -71,25 +71,6 @@ static unsigned long get_netmask(unsigned long ipaddr)
71 return 0; 71 return 0;
72} 72}
73 73
74#if ENABLE_FEATURE_IPCALC_FANCY
75static int get_prefix(unsigned long netmask)
76{
77 unsigned long msk = 0x80000000;
78 int ret = 0;
79
80 netmask = htonl(netmask);
81 while (msk) {
82 if (netmask & msk)
83 ret++;
84 msk >>= 1;
85 }
86 return ret;
87}
88#else
89int get_prefix(unsigned long netmask);
90#endif
91
92
93#define NETMASK 0x01 74#define NETMASK 0x01
94#define BROADCAST 0x02 75#define BROADCAST 0x02
95#define NETWORK 0x04 76#define NETWORK 0x04
@@ -210,7 +191,7 @@ int ipcalc_main(int argc UNUSED_PARAM, char **argv)
210 191
211 if (ENABLE_FEATURE_IPCALC_FANCY) { 192 if (ENABLE_FEATURE_IPCALC_FANCY) {
212 if (opt & NETPREFIX) { 193 if (opt & NETPREFIX) {
213 printf("PREFIX=%i\n", get_prefix(netmask)); 194 printf("PREFIX=%i\n", bb_popcnt_32(netmask));
214 } 195 }
215 196
216 if (opt & HOSTNAME) { 197 if (opt & HOSTNAME) {