assert(route);
assert(link);
+ route->family = AF_INET;
+ if (!route->protocol_set)
+ route->protocol = RTPROT_DHCP;
+ if (!route->priority_set)
+ route->priority = link->network->dhcp_route_metric;
+ if (!route->table_set)
+ route->table = link_get_dhcp_route_table(link);
+ if (route->mtu == 0)
+ route->mtu = link->network->dhcp_route_mtu;
+
r = link_has_route(link, route);
if (r < 0)
return r;
if (r < 0)
return r;
- route->family = AF_INET;
route->dst.in.s_addr = address.s_addr & netmask.s_addr;
route->dst_prefixlen = in4_addr_netmask_to_prefixlen(&netmask);
route->prefsrc.in = address;
route->scope = RT_SCOPE_LINK;
- route->protocol = RTPROT_DHCP;
- route->table = link_get_dhcp_route_table(link);
- route->mtu = link->network->dhcp_route_mtu;
return dhcp4_request_route(TAKE_PTR(route), link);
}
if (r < 0)
return r;
- route->family = AF_INET;
route->dst.in = *gw;
route->dst_prefixlen = 32;
route->prefsrc.in = address;
route->scope = RT_SCOPE_LINK;
- route->protocol = RTPROT_DHCP;
- route->priority = link->network->dhcp_route_metric;
- route->table = link_get_dhcp_route_table(link);
- route->mtu = link->network->dhcp_route_mtu;
return dhcp4_request_route(TAKE_PTR(route), link);
}
if (r < 0)
return r;
- route->family = AF_INET;
route->gw_family = AF_INET;
- route->protocol = RTPROT_DHCP;
- route->priority = link->network->dhcp_route_metric;
- route->table = link_get_dhcp_route_table(link);
- route->mtu = link->network->dhcp_route_mtu;
r = sd_dhcp_route_get_gateway(static_routes[i], &gw);
if (r < 0)
return r;
/* Next, add a default gateway. */
- route->family = AF_INET;
route->gw_family = AF_INET;
route->gw.in = router[0];
route->prefsrc.in = address;
- route->protocol = RTPROT_DHCP;
- route->priority = link->network->dhcp_route_metric;
- route->table = link_get_dhcp_route_table(link);
- route->mtu = link->network->dhcp_route_mtu;
r = dhcp4_request_route(TAKE_PTR(route), link);
if (r < 0)
return r;
route->gw.in = *gw;
- if (!route->protocol_set)
- route->protocol = RTPROT_DHCP;
- if (!route->priority_set)
- route->priority = link->network->dhcp_route_metric;
- if (!route->table_set)
- route->table = link_get_dhcp_route_table(link);
- if (route->mtu == 0)
- route->mtu = link->network->dhcp_route_mtu;
r = dhcp4_request_route(TAKE_PTR(route), link);
if (r < 0)
if (r < 0)
return r;
- route->family = AF_INET;
route->dst.in = servers[i];
route->dst_prefixlen = 32;
- route->protocol = RTPROT_DHCP;
- route->priority = link->network->dhcp_route_metric;
- route->table = link_get_dhcp_route_table(link);
- route->mtu = link->network->dhcp_route_mtu;
r = dhcp4_request_route_auto(TAKE_PTR(route), link, gw);
if (r < 0)
assert(link);
assert(rt);
+ if (!route->table_set)
+ route->table = link_get_ipv6_accept_ra_route_table(link);
+ if (!route->priority_set)
+ route->priority = link->network->ipv6_accept_ra_route_metric;
+ if (!route->protocol_set)
+ route->protocol = RTPROT_RA;
+
r = link_has_route(link, route);
if (r < 0)
return r;
static int ndisc_router_process_default(Link *link, sd_ndisc_router *rt) {
_cleanup_(route_freep) Route *route = NULL;
struct in6_addr gateway;
- uint32_t table, mtu = 0;
+ uint32_t mtu = 0;
unsigned preference;
uint16_t lifetime;
usec_t time_now;
return log_link_error_errno(link, r, "Failed to get default router MTU from RA: %m");
}
- table = link_get_ipv6_accept_ra_route_table(link);
-
r = route_new(&route);
if (r < 0)
return log_oom();
route->family = AF_INET6;
- route->table = table;
- route->priority = link->network->ipv6_accept_ra_route_metric;
- route->protocol = RTPROT_RA;
route->pref = preference;
route->gw_family = AF_INET6;
route->gw.in6 = gateway;
return r;
route->gw.in6 = gateway;
- if (!route->table_set)
- route->table = table;
- if (!route->priority_set)
- route->priority = link->network->ipv6_accept_ra_route_metric;
- if (!route->protocol_set)
- route->protocol = RTPROT_RA;
if (!route->pref_set)
route->pref = preference;
route->lifetime = usec_add(time_now, lifetime * USEC_PER_SEC);
return log_oom();
route->family = AF_INET6;
- route->table = link_get_ipv6_accept_ra_route_table(link);
- route->priority = link->network->ipv6_accept_ra_route_metric;
- route->protocol = RTPROT_RA;
route->flags = RTM_F_PREFIX;
route->dst_prefixlen = prefixlen;
route->lifetime = usec_add(time_now, lifetime * USEC_PER_SEC);
return log_oom();
route->family = AF_INET6;
- route->table = link_get_ipv6_accept_ra_route_table(link);
- route->priority = link->network->ipv6_accept_ra_route_metric;
- route->protocol = RTPROT_RA;
route->pref = preference;
route->gw.in6 = gateway;
route->gw_family = AF_INET6;