diff options
| author | Roy Marples <roy@marples.name> | 2009-02-24 15:41:15 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2009-02-24 15:41:15 +0000 |
| commit | 379a2b4ba6524bfd3a572bd66e3641ad67f95d8f (patch) | |
| tree | 12305d5b128ba1a902542fe587f8662cb7f5b65a | |
| parent | ced943949dce5ce1434821484f0638d7edf8e731 (diff) | |
| download | dhcpcd-379a2b4ba6524bfd3a572bd66e3641ad67f95d8f.tar.xz | |
Close sockets better and just run the script when we're not touching the interface.
| -rw-r--r-- | bind.c | 2 | ||||
| -rw-r--r-- | dhcpcd.c | 7 |
2 files changed, 5 insertions, 4 deletions
@@ -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) @@ -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; } |
