summaryrefslogtreecommitdiffhomepage
path: root/src/dhcpv6.c
diff options
context:
space:
mode:
authorHans Dedecker <dedeckeh@gmail.com>2017-03-27 22:01:13 +0200
committerHans Dedecker <dedeckeh@gmail.com>2017-03-29 11:35:14 +0200
commiteea7d037b93020dd5d5d2e5a698e88650a0f0912 (patch)
treee5e26a996e136f8b29d1ae083b1174e78523f003 /src/dhcpv6.c
parent24d21c7c26d07e93fb329ac62da5e974cf44213b (diff)
rework IPv6 address dump logic
Make the code more logical by moving the IPv6 address dump logic into the different protocol interface enable handlers so it's clear which protocols require interface IPv6 address tracking. At the same time restructure the IPv6 address dump logic so less IPv6 address netlink dumps are created. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Diffstat (limited to 'src/dhcpv6.c')
-rw-r--r--src/dhcpv6.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/dhcpv6.c b/src/dhcpv6.c
index 81eae06..4cd9e02 100644
--- a/src/dhcpv6.c
+++ b/src/dhcpv6.c
@@ -90,6 +90,9 @@ int setup_dhcpv6_interface(struct interface *iface, bool enable)
if (iface->dhcpv6 == RELAYD_SERVER)
setsockopt(sock, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &server, sizeof(server));
+ if (iface->dhcpv6 != RELAYD_RELAY || !iface->master)
+ ndp_rqs_addr6_dump();
+
iface->dhcpv6_event.uloop.fd = sock;
iface->dhcpv6_event.handle_dgram = handle_dhcpv6;
odhcpd_register(&iface->dhcpv6_event);