From: Roy Marples Date: Wed, 7 Nov 2012 00:49:33 +0000 (+0000) Subject: When an RA is forced to expire, don't run the script twice. X-Git-Tag: v5.99.3~34 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b88df4213551e71d7e60e765d4d467fb3c3dc74f;p=thirdparty%2Fdhcpcd.git When an RA is forced to expire, don't run the script twice. --- diff --git a/ipv6rs.c b/ipv6rs.c index 62bc34a0..5968682c 100644 --- a/ipv6rs.c +++ b/ipv6rs.c @@ -520,7 +520,8 @@ ipv6rs_handledata(_unused void *arg) } if (nd_ra->nd_ra_retransmit) rap->retrans = ntohl(nd_ra->nd_ra_retransmit); - rap->expired = (rap->lifetime == 0); + if (rap->lifetime) + rap->expired = 0; len -= sizeof(struct nd_router_advert); p = ((uint8_t *)icp) + sizeof(struct nd_router_advert); @@ -731,11 +732,14 @@ ipv6rs_handledata(_unused void *arg) add_router(rap); if (options & DHCPCD_IPV6RA_OWN && !(options & DHCPCD_TEST)) ipv6_addaddrs(ifp, &rap->addrs); - if (!(options & DHCPCD_TEST)) - ipv6_buildroutes(); - run_script_reason(ifp, options & DHCPCD_TEST ? "TEST" : "ROUTERADVERT"); - if (options & DHCPCD_TEST) + if (options & DHCPCD_TEST) { + run_script_reason(ifp, "TEST"); goto handle_flag; + } + ipv6_buildroutes(); + /* We will get run by the expire function */ + if (rap->lifetime) + run_script_reason(ifp, "ROUTERADVERT"); /* If we don't require RDNSS then set has_dns = 1 so we fork */ if (!(ifp->state->options->options & DHCPCD_IPV6RA_REQRDNSS))