From: Joan Lledó <[email protected]>
When configuring a network interface with an invalid IPv4 address
(INADDR_ANY or INADDR_NONE), set the address to INADDR_ANY and the
netmask to 255.0.0.0 instead of INADDR_NONE. This passes validation
and is consistent with pfinet behavior
* lwip/lwip-util.c (init_ifs, configure_device): Use INADDR_ANY and
inet_addr ("255.0.0.0") as defaults for invalid addresses.
---
lwip/lwip-util.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lwip/lwip-util.c b/lwip/lwip-util.c
index d6c3f41e..4a83b8f0 100644
--- a/lwip/lwip-util.c
+++ b/lwip/lwip-util.c
@@ -171,12 +171,12 @@ init_ifs (void *arg)
/*
* The caller is trying to set an invalid address,
- * set all fields to empty so it passes the validation
+ * set all fields to default values so it passes the validation
*/
if (in->address.addr == INADDR_ANY || in->address.addr == INADDR_NONE)
{
- in->address.addr = INADDR_NONE;
- in->netmask.addr = INADDR_NONE;
+ in->address.addr = INADDR_ANY;
+ in->netmask.addr = inet_addr ("255.0.0.0");
in->peer.addr = INADDR_NONE;
in->gateway.addr = INADDR_NONE;
}
@@ -342,8 +342,8 @@ configure_device (struct netif *netif, ip4_addr_t addr,
ip4_addr_t netmask,
*/
if (addr.addr == INADDR_ANY || addr.addr == INADDR_NONE)
{
- addr.addr = INADDR_NONE;
- netmask.addr = INADDR_NONE;
+ addr.addr = INADDR_ANY;
+ netmask.addr = inet_addr ("255.0.0.0");
peer.addr = INADDR_NONE;
broadcast.addr = INADDR_NONE;
gateway.addr = INADDR_NONE;
--
2.50.1