diff options
Diffstat (limited to 'networking/udhcp/script.c')
-rw-r--r-- | networking/udhcp/script.c | 9 |
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) | |||
68 | static int mton(struct in_addr *mask) | 68 | static 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 | ||