route->lifetime = time_now + lifetime * USEC_PER_SEC;
route->mtu = mtu;
- r = route_configure(route, link, ndisc_route_handler);
+ r = route_configure(route, link, ndisc_route_handler, NULL);
if (r < 0)
return log_link_error_errno(link, r, "Could not set default route: %m");
if (r > 0)
route_gw->gw = gateway;
- r = route_configure(route_gw, link, ndisc_route_handler);
+ r = route_configure(route_gw, link, ndisc_route_handler, NULL);
if (r < 0)
return log_link_error_errno(link, r, "Could not set gateway: %m");
if (r > 0)
address->in_addr.in6 = *a;
- r = address_configure(address, link, ndisc_address_handler, true);
+ r = address_configure(address, link, ndisc_address_handler, true, NULL);
if (r < 0)
return log_link_error_errno(link, r, "Could not set SLAAC address: %m");
if (r > 0)
if (r < 0)
return log_link_error_errno(link, r, "Failed to get prefix address: %m");
- r = route_configure(route, link, ndisc_route_handler);
+ r = route_configure(route, link, ndisc_route_handler, NULL);
if (r < 0)
return log_link_error_errno(link, r, "Could not set prefix route: %m");;
if (r > 0)
if (r < 0)
return log_link_error_errno(link, r, "Failed to get route address: %m");
- r = route_configure(route, link, ndisc_route_handler);
+ r = route_configure(route, link, ndisc_route_handler, NULL);
if (r < 0)
return log_link_error_errno(link, r, "Could not set additional route: %m");
if (r > 0)
case SD_NDISC_EVENT_TIMEOUT:
log_link_debug(link, "NDisc handler get timeout event");
- link->ndisc_addresses_configured = true;
- link->ndisc_routes_configured = true;
- link_check_ready(link);
-
+ if (link->ndisc_addresses_messages == 0 && link->ndisc_routes_messages == 0) {
+ link->ndisc_addresses_configured = true;
+ link->ndisc_routes_configured = true;
+ link_check_ready(link);
+ }
break;
default:
assert_not_reached("Unknown NDisc event");