summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-02-24 15:41:15 +0000
committerRoy Marples <roy@marples.name>2009-02-24 15:41:15 +0000
commit379a2b4ba6524bfd3a572bd66e3641ad67f95d8f (patch)
tree12305d5b128ba1a902542fe587f8662cb7f5b65a
parentced943949dce5ce1434821484f0638d7edf8e731 (diff)
downloaddhcpcd-379a2b4ba6524bfd3a572bd66e3641ad67f95d8f.tar.xz
Close sockets better and just run the script when we're not touching the interface.
-rw-r--r--bind.c2
-rw-r--r--dhcpcd.c7
2 files changed, 5 insertions, 4 deletions
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;
}