aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/script.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/script.c')
-rw-r--r--networking/udhcp/script.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/networking/udhcp/script.c b/networking/udhcp/script.c
index 2eb4459dd..48ff8e07e 100644
--- a/networking/udhcp/script.c
+++ b/networking/udhcp/script.c
@@ -68,10 +68,11 @@ static int sprintip(char *dest, char *pre, unsigned char *ip)
68static int mton(struct in_addr *mask) 68static int mton(struct in_addr *mask)
69{ 69{
70 int i; 70 int i;
71 /* note: mask will always be in network byte order, so 71 unsigned long bits = ntohl(mask->s_addr);
72 * there are no endian issues */ 72 /* too bad one can't check the carry bit, etc in c bit
73 for (i = 31; i >= 0 && !((mask->s_addr >> i) & 1); i--); 73 * shifting */
74 return i + 1; 74 for (i = 0; i < 32 && !((bits >> i) & 1); i++);
75 return 32 - i;
75} 76}
76 77
77 78