From: Roy Marples Date: Tue, 24 Feb 2009 15:41:15 +0000 (+0000) Subject: Close sockets better and just run the script when we're not touching the interface. X-Git-Tag: v5.0.0~62 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=379a2b4ba6524bfd3a572bd66e3641ad67f95d8f;p=thirdparty%2Fdhcpcd.git Close sockets better and just run the script when we're not touching the interface. --- diff --git a/bind.c b/bind.c index f671a4ac..98873d76 100644 --- a/bind.c +++ b/bind.c @@ -121,6 +121,8 @@ bind_interface(void *arg) struct dhcp_lease *lease = &state->lease; struct timeval tv; + /* We're binding an address now - ensure that sockets are closed */ + close_sockets(iface); state->reason = NULL; delete_timeout(handle_exit_timeout, NULL); if (clock_monotonic) diff --git a/dhcpcd.c b/dhcpcd.c index 5c6a10e1..78e28a76 100644 --- a/dhcpcd.c +++ b/dhcpcd.c @@ -560,7 +560,6 @@ handle_dhcp(struct interface *iface, struct dhcp_message **dhcpp) } } - close_sockets(iface); bind_interface(iface); } @@ -747,7 +746,7 @@ handle_carrier(const char *ifname) } } iface->state->reason = "CARRIER"; - configure(iface); + run_script(iface); start_interface(iface); } break; @@ -974,7 +973,7 @@ init_state(struct interface *iface, int argc, char **argv) ifs->nakoff = 1; configure_interface(iface, argc, argv); if (!(options & DHCPCD_TEST)) - configure(iface); + run_script(iface); if (ifs->options->options & DHCPCD_LINK) { switch (carrier_status(iface->name)) { @@ -991,7 +990,7 @@ init_state(struct interface *iface, int argc, char **argv) return; } if (!(options & DHCPCD_TEST)) - configure(iface); + run_script(iface); } else iface->carrier = LINK_UNKNOWN; }