Skip to content

Commit 062c020

Browse files
committed
network: move link_ipv6_accept_ra_enabled()
1 parent 6f7a17f commit 062c020

File tree

3 files changed

+34
-31
lines changed

3 files changed

+34
-31
lines changed

src/network/networkd-link.c

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -193,36 +193,6 @@ static bool link_proxy_arp_enabled(Link *link) {
193193
return true;
194194
}
195195

196-
static bool link_ipv6_accept_ra_enabled(Link *link) {
197-
assert(link);
198-
199-
if (!socket_ipv6_is_supported())
200-
return false;
201-
202-
if (link->flags & IFF_LOOPBACK)
203-
return false;
204-
205-
if (!link->network)
206-
return false;
207-
208-
if (!link_ipv6ll_enabled(link))
209-
return false;
210-
211-
/* If unset use system default (enabled if local forwarding is disabled.
212-
* disabled if local forwarding is enabled).
213-
* If set, ignore or enforce RA independent of local forwarding state.
214-
*/
215-
if (link->network->ipv6_accept_ra < 0)
216-
/* default to accept RA if ip_forward is disabled and ignore RA if ip_forward is enabled */
217-
return !link_ipv6_forward_enabled(link);
218-
else if (link->network->ipv6_accept_ra > 0)
219-
/* accept RA even if ip_forward is enabled */
220-
return true;
221-
else
222-
/* ignore RA */
223-
return false;
224-
}
225-
226196
static IPv6PrivacyExtensions link_ipv6_privacy_extensions(Link *link) {
227197
assert(link);
228198

src/network/networkd-ndisc.c

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
Copyright © 2014 Intel Corporation. All rights reserved.
44
***/
55

6-
#include <netinet/icmp6.h>
76
#include <arpa/inet.h>
7+
#include <netinet/icmp6.h>
8+
#include <linux/if.h>
89

910
#include "sd-ndisc.h"
1011

@@ -35,6 +36,36 @@
3536

3637
#define NDISC_APP_ID SD_ID128_MAKE(13,ac,81,a7,d5,3f,49,78,92,79,5d,0c,29,3a,bc,7e)
3738

39+
bool link_ipv6_accept_ra_enabled(Link *link) {
40+
assert(link);
41+
42+
if (!socket_ipv6_is_supported())
43+
return false;
44+
45+
if (link->flags & IFF_LOOPBACK)
46+
return false;
47+
48+
if (!link->network)
49+
return false;
50+
51+
if (!link_ipv6ll_enabled(link))
52+
return false;
53+
54+
/* If unset use system default (enabled if local forwarding is disabled.
55+
* disabled if local forwarding is enabled).
56+
* If set, ignore or enforce RA independent of local forwarding state.
57+
*/
58+
if (link->network->ipv6_accept_ra < 0)
59+
/* default to accept RA if ip_forward is disabled and ignore RA if ip_forward is enabled */
60+
return !link_ipv6_forward_enabled(link);
61+
else if (link->network->ipv6_accept_ra > 0)
62+
/* accept RA even if ip_forward is enabled */
63+
return true;
64+
else
65+
/* ignore RA */
66+
return false;
67+
}
68+
3869
static int ndisc_remove_old_one(Link *link, const struct in6_addr *router, bool force);
3970

4071
static int ndisc_address_callback(Address *address) {

src/network/networkd-ndisc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ static inline char* NDISC_DNSSL_DOMAIN(const NDiscDNSSL *n) {
6969
return ((char*) n) + ALIGN(sizeof(NDiscDNSSL));
7070
}
7171

72+
bool link_ipv6_accept_ra_enabled(Link *link);
73+
7274
int ndisc_configure(Link *link);
7375
void ndisc_vacuum(Link *link);
7476
void ndisc_flush(Link *link);

0 commit comments

Comments
 (0)