summaryrefslogtreecommitdiffstats
path: root/dhcpcd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2014-05-06 14:42:24 +0000
committerRoy Marples <roy@marples.name>2014-05-06 14:42:24 +0000
commitb4304101ee88b8266593e3735a5bf3716a930ba4 (patch)
tree8dbb4ccd048dad35736842683ea0a39059900f1f /dhcpcd.c
parent8d442d9eac1052f829819235d9bf7f4ddb533c17 (diff)
downloaddhcpcd-b4304101ee88b8266593e3735a5bf3716a930ba4.tar.xz
Always send a carrier as it's no longer encapsulated in the IPv4 stack.
When stopping and not departed, run with the STOPPED reason but do not process it in hooks.
Diffstat (limited to 'dhcpcd.c')
-rw-r--r--dhcpcd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/dhcpcd.c b/dhcpcd.c
index cc916ccf..27cebcfe 100644
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -309,6 +309,8 @@ stop_interface(struct interface *ifp)
eloop_timeout_delete(ctx->eloop, NULL, ifp);
if (ifp->options->options & DHCPCD_DEPARTED)
script_runreason(ifp, "DEPARTED");
+ else
+ script_runreason(ifp, "STOPPED");
if_free(ifp);
if (!(ctx->options & (DHCPCD_MASTER | DHCPCD_TEST)))
eloop_exit(ctx->eloop, EXIT_FAILURE);
@@ -993,6 +995,8 @@ dhcpcd_handleargs(struct dhcpcd_ctx *ctx, struct fd_list *fd,
if (argc == 1) {
TAILQ_FOREACH(ifp, ctx->ifaces, next) {
len++;
+ if (D_STATE(ifp))
+ len++;
if (D6_STATE_RUNNING(ifp))
len++;
if (ipv6nd_has_ra(ifp))
@@ -1014,6 +1018,8 @@ dhcpcd_handleargs(struct dhcpcd_ctx *ctx, struct fd_list *fd,
TAILQ_FOREACH(ifp, ctx->ifaces, next) {
if (strcmp(argv[opt], ifp->name) == 0) {
len++;
+ if (D_STATE(ifp))
+ len++;
if (D6_STATE_RUNNING(ifp))
len++;
if (ipv6nd_has_ra(ifp))