X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fodhcpd.git;a=blobdiff_plain;f=src%2Fndp.c;h=10acc3b6dc61d8dd8fff6046088e2c4e70141bbf;hp=f9e04051c73c3018c3b9197a51e2ab2148f88b3c;hb=44965f14d7abed2d5327ca1c89e4bcf481473e53;hpb=c8ac572154981ca833dad92d7ee7aa62b88087cc diff --git a/src/ndp.c b/src/ndp.c index f9e0405..10acc3b 100644 --- a/src/ndp.c +++ b/src/ndp.c @@ -291,9 +291,9 @@ static int prefixcmp(const void *va, const void *vb) // Check address update static void check_updates(struct interface *iface) { - struct odhcpd_ipaddr addr[8] = {{IN6ADDR_ANY_INIT, 0, 0, 0, 0}}; + struct odhcpd_ipaddr addr[RELAYD_MAX_ADDRS] = {{IN6ADDR_ANY_INIT, 0, 0, 0, 0}}; time_t now = odhcpd_time(); - ssize_t len = odhcpd_get_interface_addresses(iface->ifindex, addr, 8); + ssize_t len = odhcpd_get_interface_addresses(iface->ifindex, addr, ARRAY_SIZE(addr)); if (len < 0) return; @@ -327,8 +327,10 @@ static void check_updates(struct interface *iface) if (change) dhcpv6_ia_postupdate(iface, now); - if (change) + if (change) { + syslog(LOG_INFO, "Raising SIGUSR1 due to address change on %s", iface->ifname); raise(SIGUSR1); + } } @@ -360,8 +362,10 @@ static void handle_rtnetlink(_unused void *addr, void *data, size_t len, if (is_route) { // Inform about a change in default route - if (rtm->rtm_dst_len == 0) + if (rtm->rtm_dst_len == 0) { + syslog(LOG_INFO, "Raising SIGUSR1 due to default route change"); raise(SIGUSR1); + } continue; } @@ -475,9 +479,6 @@ static void handle_rtnetlink(_unused void *addr, void *data, size_t len, if (is_addr) { check_updates(iface); - if (iface->dhcpv6 == RELAYD_SERVER) - iface->ia_reconf = true; - if (iface->ndp == RELAYD_RELAY && iface->master) { // Replay address changes on all slave interfaces nh->nlmsg_flags = NLM_F_REQUEST;