1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-03-08 20:58:20 +03:00

in-addr-util: introduce in6_addr_is_link_local()

This commit is contained in:
Yu Watanabe 2021-02-18 01:56:47 +09:00
parent 7653dcc328
commit 1235befadd
2 changed files with 8 additions and 1 deletions

View File

@ -48,6 +48,12 @@ bool in4_addr_is_link_local(const struct in_addr *a) {
return (be32toh(a->s_addr) & UINT32_C(0xFFFF0000)) == (UINT32_C(169) << 24 | UINT32_C(254) << 16);
}
bool in6_addr_is_link_local(const struct in6_addr *a) {
assert(a);
return IN6_IS_ADDR_LINKLOCAL(a);
}
int in_addr_is_link_local(int family, const union in_addr_union *u) {
assert(u);
@ -55,7 +61,7 @@ int in_addr_is_link_local(int family, const union in_addr_union *u) {
return in4_addr_is_link_local(&u->in);
if (family == AF_INET6)
return IN6_IS_ADDR_LINKLOCAL(&u->in6);
return in6_addr_is_link_local(&u->in6);
return -EAFNOSUPPORT;
}

View File

@ -43,6 +43,7 @@ static inline bool in_addr_data_is_set(const struct in_addr_data *a) {
int in_addr_is_multicast(int family, const union in_addr_union *u);
bool in4_addr_is_link_local(const struct in_addr *a);
bool in6_addr_is_link_local(const struct in6_addr *a);
int in_addr_is_link_local(int family, const union in_addr_union *u);
bool in6_addr_is_link_local_all_nodes(const struct in6_addr *a);