Fix the issue where interface is set to the configured state even if configuration has been failed. Add error check to state setting logic.
Signed-off-by: Lauri Hintsala <[email protected]> --- Tested with following command line sequence. Wihtout patch: $ ifup eth0 udhcpc (v1.18.5) started Sending discover... Sending discover... Sending discover... No lease, failing $ ifup eth0 ifup: interface eth0 already configured With patch: $ ifup eth0 udhcpc (v1.18.5) started Sending discover... Sending discover... Sending discover... No lease, failing $ ifup eth0 udhcpc (v1.18.5) started Sending discover... Sending discover... Sending discover... No lease, failing $ ifup eth0 udhcpc (v1.18.5) started Sending discover... Sending select for 10.0.0.2... Lease of 10.0.0.2 obtained, lease time 3600 adding dns 10.0.0.1 $ ifup eth0 ifup: interface eth0 already configured $ ifdown eth0 $ ifup eth0 udhcpc (v1.18.5) started Sending discover... Sending discover... Sending select for 10.0.0.2... Lease of 10.0.0.2 obtained, lease time 3600 adding dns 10.0.0.1 --- networking/ifupdown.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/networking/ifupdown.c b/networking/ifupdown.c index 5946323..9c2cad2 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c @@ -1311,7 +1311,7 @@ int ifupdown_main(int argc UNUSED_PARAM, char **argv) llist_t *state_list = read_iface_state(); llist_t *iface_state = find_iface_state(state_list, iface); - if (cmds == iface_up) { + if (cmds == iface_up && !any_failures) { char * const newiface = xasprintf("%s=%s", iface, liface); if (iface_state == NULL) { llist_add_to_end(&state_list, newiface); -- 1.7.4.1 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
