summaryrefslogtreecommitdiffstats
path: root/ipv6nd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2015-02-26 13:22:41 +0000
committerRoy Marples <roy@marples.name>2015-02-26 13:22:41 +0000
commita19fe492027a50f1bb15f1754a74fcad242c8876 (patch)
treeda5547bed593c0f415dff3799a50a3844daab76f /ipv6nd.c
parenta3fb51a3dd7a7809327e5d4c8c27a45a1a89197f (diff)
downloaddhcpcd-a19fe492027a50f1bb15f1754a74fcad242c8876.tar.xz
After adding an address load the kernel routing table for the interface.
When routes are rebuilt try not to remove any existing routes if they don't need changing.
Diffstat (limited to 'ipv6nd.c')
-rw-r--r--ipv6nd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ipv6nd.c b/ipv6nd.c
index 236bcbbb..a5b8df7f 100644
--- a/ipv6nd.c
+++ b/ipv6nd.c
@@ -1118,6 +1118,12 @@ extra_opt:
#ifdef IPV6_MANAGETEMPADDR
ipv6_addtempaddrs(ifp, &rap->received);
#endif
+
+ /* Find any freshly added routes, such as the subnet route.
+ * We do this because we cannot rely on recieving the kernel
+ * notification right now via our link socket. */
+ if_initrt6(ifp);
+
ipv6_buildroutes(ifp->ctx);
if (ipv6nd_scriptrun(rap))
return;