Skip to content

Commit 6f7a17f

Browse files
committed
network: unify link_ipv{4,6}_forward_enabled()
1 parent 67c311a commit 6f7a17f

File tree

2 files changed

+12
-21
lines changed

2 files changed

+12
-21
lines changed

src/network/networkd-link.c

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -162,25 +162,11 @@ static bool link_radv_enabled(Link *link) {
162162
return link->network->router_prefix_delegation != RADV_PREFIX_DELEGATION_NONE;
163163
}
164164

165-
static bool link_ipv4_forward_enabled(Link *link) {
165+
bool link_ip_forward_enabled(Link *link, int family) {
166166
assert(link);
167+
assert(IN_SET(family, AF_INET, AF_INET6));
167168

168-
if (link->flags & IFF_LOOPBACK)
169-
return false;
170-
171-
if (!link->network)
172-
return false;
173-
174-
if (link->network->ip_forward == _ADDRESS_FAMILY_INVALID)
175-
return false;
176-
177-
return link->network->ip_forward & ADDRESS_FAMILY_IPV4;
178-
}
179-
180-
static bool link_ipv6_forward_enabled(Link *link) {
181-
assert(link);
182-
183-
if (!socket_ipv6_is_supported())
169+
if (family == AF_INET6 && !socket_ipv6_is_supported())
184170
return false;
185171

186172
if (link->flags & IFF_LOOPBACK)
@@ -189,10 +175,7 @@ static bool link_ipv6_forward_enabled(Link *link) {
189175
if (!link->network)
190176
return false;
191177

192-
if (link->network->ip_forward == _ADDRESS_FAMILY_INVALID)
193-
return false;
194-
195-
return link->network->ip_forward & ADDRESS_FAMILY_IPV6;
178+
return link->network->ip_forward & (family == AF_INET ? ADDRESS_FAMILY_IPV4 : ADDRESS_FAMILY_IPV6);
196179
}
197180

198181
static bool link_proxy_arp_enabled(Link *link) {

src/network/networkd-link.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,14 @@ bool link_has_carrier(Link *link);
227227
bool link_ipv6ll_enabled(Link *link);
228228
int link_ipv6ll_gained(Link *link, const struct in6_addr *address);
229229

230+
bool link_ip_forward_enabled(Link *link, int family);
231+
static inline bool link_ipv4_forward_enabled(Link *link) {
232+
return link_ip_forward_enabled(link, AF_INET);
233+
}
234+
static inline bool link_ipv6_forward_enabled(Link *link) {
235+
return link_ip_forward_enabled(link, AF_INET6);
236+
}
237+
230238
int link_set_mtu(Link *link, uint32_t mtu);
231239

232240
bool link_ipv4ll_enabled(Link *link, AddressFamily mask);

0 commit comments

Comments
 (0)