summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/dhcpv4.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/dhcpv4.c b/src/dhcpv4.c
index 07ad3ff..f6f4b0a 100644
--- a/src/dhcpv4.c
+++ b/src/dhcpv4.c
@@ -123,11 +123,12 @@ int setup_dhcpv4_interface(struct interface *iface, bool enable)
inet_pton(AF_INET,saddr, &addr);
int bits = ubus_get_mask4(iface->name);
struct in_addr mask;
- if (!(bits < -32 || bits > 32)) {
- mask.s_addr = bits ? htonl(~((1 << (32 - abs(bits))) - 1)) : 0;
- if (bits < 0)
- mask.s_addr = ~mask.s_addr;
- }
+ if (bits < -32 || bits > 32)
+ bits = 0;
+
+ mask.s_addr = bits ? htonl(~((1 << (32 - abs(bits))) - 1)) : 0;
+ if (bits < 0)
+ mask.s_addr = ~mask.s_addr;
// Create a range if not specified