mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
network: move link_ipv6_accept_ra_enabled()
This commit is contained in:
parent
6f7a17ff0c
commit
062c020fb6
@ -193,36 +193,6 @@ static bool link_proxy_arp_enabled(Link *link) {
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool link_ipv6_accept_ra_enabled(Link *link) {
|
||||
assert(link);
|
||||
|
||||
if (!socket_ipv6_is_supported())
|
||||
return false;
|
||||
|
||||
if (link->flags & IFF_LOOPBACK)
|
||||
return false;
|
||||
|
||||
if (!link->network)
|
||||
return false;
|
||||
|
||||
if (!link_ipv6ll_enabled(link))
|
||||
return false;
|
||||
|
||||
/* If unset use system default (enabled if local forwarding is disabled.
|
||||
* disabled if local forwarding is enabled).
|
||||
* If set, ignore or enforce RA independent of local forwarding state.
|
||||
*/
|
||||
if (link->network->ipv6_accept_ra < 0)
|
||||
/* default to accept RA if ip_forward is disabled and ignore RA if ip_forward is enabled */
|
||||
return !link_ipv6_forward_enabled(link);
|
||||
else if (link->network->ipv6_accept_ra > 0)
|
||||
/* accept RA even if ip_forward is enabled */
|
||||
return true;
|
||||
else
|
||||
/* ignore RA */
|
||||
return false;
|
||||
}
|
||||
|
||||
static IPv6PrivacyExtensions link_ipv6_privacy_extensions(Link *link) {
|
||||
assert(link);
|
||||
|
||||
|
@ -3,8 +3,9 @@
|
||||
Copyright © 2014 Intel Corporation. All rights reserved.
|
||||
***/
|
||||
|
||||
#include <netinet/icmp6.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/icmp6.h>
|
||||
#include <linux/if.h>
|
||||
|
||||
#include "sd-ndisc.h"
|
||||
|
||||
@ -35,6 +36,36 @@
|
||||
|
||||
#define NDISC_APP_ID SD_ID128_MAKE(13,ac,81,a7,d5,3f,49,78,92,79,5d,0c,29,3a,bc,7e)
|
||||
|
||||
bool link_ipv6_accept_ra_enabled(Link *link) {
|
||||
assert(link);
|
||||
|
||||
if (!socket_ipv6_is_supported())
|
||||
return false;
|
||||
|
||||
if (link->flags & IFF_LOOPBACK)
|
||||
return false;
|
||||
|
||||
if (!link->network)
|
||||
return false;
|
||||
|
||||
if (!link_ipv6ll_enabled(link))
|
||||
return false;
|
||||
|
||||
/* If unset use system default (enabled if local forwarding is disabled.
|
||||
* disabled if local forwarding is enabled).
|
||||
* If set, ignore or enforce RA independent of local forwarding state.
|
||||
*/
|
||||
if (link->network->ipv6_accept_ra < 0)
|
||||
/* default to accept RA if ip_forward is disabled and ignore RA if ip_forward is enabled */
|
||||
return !link_ipv6_forward_enabled(link);
|
||||
else if (link->network->ipv6_accept_ra > 0)
|
||||
/* accept RA even if ip_forward is enabled */
|
||||
return true;
|
||||
else
|
||||
/* ignore RA */
|
||||
return false;
|
||||
}
|
||||
|
||||
static int ndisc_remove_old_one(Link *link, const struct in6_addr *router, bool force);
|
||||
|
||||
static int ndisc_address_callback(Address *address) {
|
||||
|
@ -69,6 +69,8 @@ static inline char* NDISC_DNSSL_DOMAIN(const NDiscDNSSL *n) {
|
||||
return ((char*) n) + ALIGN(sizeof(NDiscDNSSL));
|
||||
}
|
||||
|
||||
bool link_ipv6_accept_ra_enabled(Link *link);
|
||||
|
||||
int ndisc_configure(Link *link);
|
||||
void ndisc_vacuum(Link *link);
|
||||
void ndisc_flush(Link *link);
|
||||
|
Loading…
Reference in New Issue
Block a user