summaryrefslogtreecommitdiffstats
path: root/src/ipv6nd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2019-08-25 12:10:00 +0100
committerRoy Marples <roy@marples.name>2019-08-25 12:10:00 +0100
commita7827e357ea2e847cb34d7e46cfb9b5db67637e8 (patch)
tree6bdbe5b86833ea47bcb9bf35fa90428dd2e565ea /src/ipv6nd.c
parenta9287e98d2d47969fb2ba602eb3d1f72788eae19 (diff)
downloaddhcpcd-a7827e357ea2e847cb34d7e46cfb9b5db67637e8.tar.xz
inet6: Just solicit when a router is unreachable
We shouldn't take the default route away as there could be valid reasons, such as the default route changing interface. Instead, just solicit another router if there are no valid routers on the interface.
Diffstat (limited to 'src/ipv6nd.c')
-rw-r--r--src/ipv6nd.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/ipv6nd.c b/src/ipv6nd.c
index 0169caef..5f9c72cf 100644
--- a/src/ipv6nd.c
+++ b/src/ipv6nd.c
@@ -127,7 +127,6 @@ __CTASSERT(sizeof(struct nd_opt_rdnss) == 8);
//
static void ipv6nd_handledata(void *);
-static void ipv6nd_startrs1(void *);
/*
* Android ships buggy ICMP6 filter headers.
@@ -576,10 +575,6 @@ ipv6nd_reachable(struct ra *rap, int flags)
rap->iface->name, rap->sfrom);
rap->isreachable = false;
}
-
- rt_build(rap->iface->ctx, AF_INET6);
- /* XXX Not really an RA */
- script_runreason(rap->iface, "ROUTERADVERT");
}
void
@@ -608,7 +603,7 @@ ipv6nd_neighbour(struct dhcpcd_ctx *ctx, struct in6_addr *addr, int flags)
}
if (rapr == NULL)
- ipv6nd_startrs1(rap->iface);
+ ipv6nd_startrs(rap->iface);
}
const struct ipv6_addr *
@@ -1427,9 +1422,6 @@ ipv6nd_env(FILE *fp, const struct interface *ifp)
if (efprintf(fp, "%s_now=%lld", ndprefix,
(long long)now.tv_sec) == -1)
return -1;
- if (efprintf(fp, "%s_isreachable=%s", ndprefix,
- rap->isreachable ? "true" : "false") == -1)
- return -1;
/* Zero our indexes */
for (j = 0, opt = rap->iface->ctx->nd_opts;