X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fodhcpd.git;a=blobdiff_plain;f=src%2Fndp.c;h=30ebaf4b13456e028c25f250d02775b47c4161fc;hp=f9e04051c73c3018c3b9197a51e2ab2148f88b3c;hb=048558077d1bcd4c4e5a7f45b020ae3a879965e4;hpb=c8ac572154981ca833dad92d7ee7aa62b88087cc diff --git a/src/ndp.c b/src/ndp.c index f9e0405..30ebaf4 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_DEBUG, "Raising SIGUSR1 due to address change"); 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_DEBUG, "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;