summaryrefslogtreecommitdiff
path: root/src/libsystemd-network/sd-radv.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-06-03 16:37:38 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-06-06 09:52:52 +0200
commitc71384a9ee73c1488d831b09f5ee88a804e1ddcd (patch)
tree13116e7a71d9607f4506a9499e3c427215b0fe84 /src/libsystemd-network/sd-radv.c
parent61af1813446ced383490fac93e31d6ea3fd5d178 (diff)
downloadsystemd-c71384a9ee73c1488d831b09f5ee88a804e1ddcd.tar.gz
basic/in-addr-util: add IN_ADDR_PREFIX_TO_STRING
Diffstat (limited to 'src/libsystemd-network/sd-radv.c')
-rw-r--r--src/libsystemd-network/sd-radv.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/libsystemd-network/sd-radv.c b/src/libsystemd-network/sd-radv.c
index db9c8a239b..a1f50afce3 100644
--- a/src/libsystemd-network/sd-radv.c
+++ b/src/libsystemd-network/sd-radv.c
@@ -572,7 +572,6 @@ int sd_radv_set_preference(sd_radv *ra, unsigned preference) {
}
int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
- _cleanup_free_ char *addr_p = NULL;
sd_radv_prefix *found = NULL;
int r;
@@ -583,10 +582,9 @@ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
if (in6_addr_is_null(&p->opt.in6_addr))
return -ENOEXEC;
- (void) in6_addr_prefix_to_string(&p->opt.in6_addr, p->opt.prefixlen, &addr_p);
+ const char *addr_p = IN6_ADDR_PREFIX_TO_STRING(&p->opt.in6_addr, p->opt.prefixlen);
LIST_FOREACH(prefix, cur, ra->prefixes) {
-
r = in_addr_prefix_intersect(AF_INET6,
(const union in_addr_union*) &cur->opt.in6_addr,
cur->opt.prefixlen,
@@ -602,11 +600,10 @@ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
break;
}
- _cleanup_free_ char *addr_cur = NULL;
- (void) in6_addr_prefix_to_string(&cur->opt.in6_addr, cur->opt.prefixlen, &addr_cur);
return log_radv_errno(ra, SYNTHETIC_ERRNO(EEXIST),
"IPv6 prefix %s conflicts with %s, ignoring.",
- strna(addr_p), strna(addr_cur));
+ addr_p,
+ IN6_ADDR_PREFIX_TO_STRING(&cur->opt.in6_addr, cur->opt.prefixlen));
}
if (found) {
@@ -621,7 +618,7 @@ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
LIST_APPEND(prefix, ra->prefixes, p);
log_radv(ra, "Updated/replaced IPv6 prefix %s (preferred: %s, valid: %s)",
- strna(addr_p),
+ addr_p,
FORMAT_TIMESPAN(p->lifetime_preferred_usec, USEC_PER_SEC),
FORMAT_TIMESPAN(p->lifetime_valid_usec, USEC_PER_SEC));
} else {
@@ -631,7 +628,7 @@ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
LIST_APPEND(prefix, ra->prefixes, p);
ra->n_prefixes++;
- log_radv(ra, "Added prefix %s", strna(addr_p));
+ log_radv(ra, "Added prefix %s", addr_p);
}
if (ra->state == RADV_STATE_IDLE)
@@ -643,10 +640,9 @@ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
/* If RAs have already been sent, send an RA immediately to announce the newly-added prefix */
r = radv_send(ra, NULL, ra->lifetime_usec);
if (r < 0)
- log_radv_errno(ra, r, "Unable to send Router Advertisement for added prefix %s: %m",
- strna(addr_p));
+ log_radv_errno(ra, r, "Unable to send Router Advertisement for added prefix %s: %m", addr_p);
else
- log_radv(ra, "Sent Router Advertisement for added/updated prefix %s.", strna(addr_p));
+ log_radv(ra, "Sent Router Advertisement for added/updated prefix %s.", addr_p);
return 0;
}
@@ -677,17 +673,15 @@ void sd_radv_remove_prefix(
}
int sd_radv_add_route_prefix(sd_radv *ra, sd_radv_route_prefix *p) {
- _cleanup_free_ char *addr_p = NULL;
sd_radv_route_prefix *found = NULL;
int r;
assert_return(ra, -EINVAL);
assert_return(p, -EINVAL);
- (void) in6_addr_prefix_to_string(&p->opt.in6_addr, p->opt.prefixlen, &addr_p);
+ const char *addr_p = IN6_ADDR_PREFIX_TO_STRING(&p->opt.in6_addr, p->opt.prefixlen);
LIST_FOREACH(prefix, cur, ra->route_prefixes) {
-
r = in_addr_prefix_intersect(AF_INET6,
(const union in_addr_union*) &cur->opt.in6_addr,
cur->opt.prefixlen,
@@ -703,11 +697,10 @@ int sd_radv_add_route_prefix(sd_radv *ra, sd_radv_route_prefix *p) {
break;
}
- _cleanup_free_ char *addr_cur = NULL;
- (void) in6_addr_prefix_to_string(&cur->opt.in6_addr, cur->opt.prefixlen, &addr_cur);
return log_radv_errno(ra, SYNTHETIC_ERRNO(EEXIST),
"IPv6 route prefix %s conflicts with %s, ignoring.",
- strna(addr_p), strna(addr_cur));
+ addr_p,
+ IN6_ADDR_PREFIX_TO_STRING(&cur->opt.in6_addr, cur->opt.prefixlen));
}
if (found) {