network: unify link_ipv{4,6}_forward_enabled()
This commit is contained in:
@@ -162,25 +162,11 @@ static bool link_radv_enabled(Link *link) {
|
||||
return link->network->router_prefix_delegation != RADV_PREFIX_DELEGATION_NONE;
|
||||
}
|
||||
|
||||
static bool link_ipv4_forward_enabled(Link *link) {
|
||||
bool link_ip_forward_enabled(Link *link, int family) {
|
||||
assert(link);
|
||||
assert(IN_SET(family, AF_INET, AF_INET6));
|
||||
|
||||
if (link->flags & IFF_LOOPBACK)
|
||||
return false;
|
||||
|
||||
if (!link->network)
|
||||
return false;
|
||||
|
||||
if (link->network->ip_forward == _ADDRESS_FAMILY_INVALID)
|
||||
return false;
|
||||
|
||||
return link->network->ip_forward & ADDRESS_FAMILY_IPV4;
|
||||
}
|
||||
|
||||
static bool link_ipv6_forward_enabled(Link *link) {
|
||||
assert(link);
|
||||
|
||||
if (!socket_ipv6_is_supported())
|
||||
if (family == AF_INET6 && !socket_ipv6_is_supported())
|
||||
return false;
|
||||
|
||||
if (link->flags & IFF_LOOPBACK)
|
||||
@@ -189,10 +175,7 @@ static bool link_ipv6_forward_enabled(Link *link) {
|
||||
if (!link->network)
|
||||
return false;
|
||||
|
||||
if (link->network->ip_forward == _ADDRESS_FAMILY_INVALID)
|
||||
return false;
|
||||
|
||||
return link->network->ip_forward & ADDRESS_FAMILY_IPV6;
|
||||
return link->network->ip_forward & (family == AF_INET ? ADDRESS_FAMILY_IPV4 : ADDRESS_FAMILY_IPV6);
|
||||
}
|
||||
|
||||
static bool link_proxy_arp_enabled(Link *link) {
|
||||
|
||||
@@ -227,6 +227,14 @@ bool link_has_carrier(Link *link);
|
||||
bool link_ipv6ll_enabled(Link *link);
|
||||
int link_ipv6ll_gained(Link *link, const struct in6_addr *address);
|
||||
|
||||
bool link_ip_forward_enabled(Link *link, int family);
|
||||
static inline bool link_ipv4_forward_enabled(Link *link) {
|
||||
return link_ip_forward_enabled(link, AF_INET);
|
||||
}
|
||||
static inline bool link_ipv6_forward_enabled(Link *link) {
|
||||
return link_ip_forward_enabled(link, AF_INET6);
|
||||
}
|
||||
|
||||
int link_set_mtu(Link *link, uint32_t mtu);
|
||||
|
||||
bool link_ipv4ll_enabled(Link *link, AddressFamily mask);
|
||||
|
||||
Reference in New Issue
Block a user