]> err.no Git - linux-2.6/commitdiff
[IPV4]: ipconfig.c: fix dhcp timeout behaviour
authorMaxime Bizon <mbizon@freebox.fr>
Tue, 28 Jun 2005 20:21:12 +0000 (13:21 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 28 Jun 2005 20:21:12 +0000 (13:21 -0700)
I think there is a small bug in ipconfig.c in case IPCONFIG_DHCP is set
and dhcp is used.

When a DHCPOFFER is received, ip address is kept until we get DHCPACK.
If no ack is received, ic_dynamic() returns negatively, but leaves the
offered ip address in ic_myaddr.

This makes the main loop in ip_auto_config() break and uses the maybe
incomplete configuration.

Not sure if it's the best way to do, but the following trivial patch
correct this.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ipconfig.c

index f2509034ce72bce29573d886f59adda599e7be8e..d2bf8e1930a3709a41ce0154fabc50d0ff781b7d 100644 (file)
@@ -1149,8 +1149,10 @@ static int __init ic_dynamic(void)
                ic_rarp_cleanup();
 #endif
 
-       if (!ic_got_reply)
+       if (!ic_got_reply) {
+               ic_myaddr = INADDR_NONE;
                return -1;
+       }
 
        printk("IP-Config: Got %s answer from %u.%u.%u.%u, ",
                ((ic_got_reply & IC_RARP) ? "RARP"