summaryrefslogtreecommitdiff
path: root/src/network/networkd-dhcp-prefix-delegation.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/networkd-dhcp-prefix-delegation.c')
-rw-r--r--src/network/networkd-dhcp-prefix-delegation.c59
1 files changed, 20 insertions, 39 deletions
diff --git a/src/network/networkd-dhcp-prefix-delegation.c b/src/network/networkd-dhcp-prefix-delegation.c
index d8d9475635..5c923c258c 100644
--- a/src/network/networkd-dhcp-prefix-delegation.c
+++ b/src/network/networkd-dhcp-prefix-delegation.c
@@ -358,21 +358,16 @@ static int dhcp_pd_address_handler(sd_netlink *rtnl, sd_netlink_message *m, Requ
}
static void log_dhcp_pd_address(Link *link, const Address *address) {
- _cleanup_free_ char *buffer = NULL;
- int log_level;
-
assert(address);
assert(address->family == AF_INET6);
- log_level = address_get(link, address, NULL) >= 0 ? LOG_DEBUG : LOG_INFO;
+ int log_level = address_get(link, address, NULL) >= 0 ? LOG_DEBUG : LOG_INFO;
if (log_level < log_get_max_level())
return;
- (void) in6_addr_prefix_to_string(&address->in_addr.in6, address->prefixlen, &buffer);
-
log_link_full(link, log_level, "DHCP-PD address %s (valid %s, preferred %s)",
- strna(buffer),
+ IN6_ADDR_PREFIX_TO_STRING(&address->in_addr.in6, address->prefixlen),
FORMAT_LIFETIME(address->lifetime_valid_usec),
FORMAT_LIFETIME(address->lifetime_preferred_usec));
}
@@ -524,7 +519,6 @@ static int dhcp_pd_assign_subnet_prefix(
usec_t lifetime_valid_usec,
bool is_uplink) {
- _cleanup_free_ char *buf = NULL;
struct in6_addr prefix;
int r;
@@ -536,7 +530,7 @@ static int dhcp_pd_assign_subnet_prefix(
if (r < 0)
return r == -ERANGE ? 0 : r;
- (void) in6_addr_prefix_to_string(&prefix, 64, &buf);
+ const char *pretty = IN6_ADDR_PREFIX_TO_STRING(&prefix, 64);
if (link_radv_enabled(link) && link->network->dhcp_pd_announce) {
if (is_uplink)
@@ -546,23 +540,21 @@ static int dhcp_pd_assign_subnet_prefix(
if (r < 0)
return log_link_warning_errno(link, r,
"Failed to assign/update prefix %s to IPv6 Router Advertisement: %m",
- strna(buf));
+ pretty);
}
}
r = dhcp_pd_request_route(link, &prefix, lifetime_valid_usec);
if (r < 0)
return log_link_warning_errno(link, r,
- "Failed to assign/update route for prefix %s: %m",
- strna(buf));
+ "Failed to assign/update route for prefix %s: %m", pretty);
r = dhcp_pd_request_address(link, &prefix, lifetime_preferred_usec, lifetime_valid_usec);
if (r < 0)
return log_link_warning_errno(link, r,
- "Failed to assign/update address for prefix %s: %m",
- strna(buf));
+ "Failed to assign/update address for prefix %s: %m", pretty);
- log_link_debug(link, "Assigned prefix %s", strna(buf));
+ log_link_debug(link, "Assigned prefix %s", pretty);
return 1;
}
@@ -706,11 +698,8 @@ static int dhcp_request_unreachable_route(
assert(callback);
if (prefixlen >= 64) {
- _cleanup_free_ char *buf = NULL;
-
- (void) in6_addr_prefix_to_string(addr, prefixlen, &buf);
log_link_debug(link, "Not adding a blocking route for DHCP delegated prefix %s since the prefix has length >= 64.",
- strna(buf));
+ IN6_ADDR_PREFIX_TO_STRING(addr, prefixlen));
return 0;
}
@@ -734,13 +723,9 @@ static int dhcp_request_unreachable_route(
route_unmark(existing);
r = link_request_route(link, TAKE_PTR(route), true, counter, callback, NULL);
- if (r < 0) {
- _cleanup_free_ char *buf = NULL;
-
- (void) in6_addr_prefix_to_string(addr, prefixlen, &buf);
+ if (r < 0)
return log_link_error_errno(link, r, "Failed to request unreachable route for DHCP delegated prefix %s: %m",
- strna(buf));
- }
+ IN6_ADDR_PREFIX_TO_STRING(addr, prefixlen));
return 0;
}
@@ -770,7 +755,6 @@ static int dhcp6_request_unreachable_route(
}
static int dhcp_pd_prefix_add(Link *link, const struct in6_addr *prefix, uint8_t prefixlen) {
- _cleanup_free_ char *buf = NULL;
struct in_addr_prefix *p;
int r;
@@ -787,21 +771,20 @@ static int dhcp_pd_prefix_add(Link *link, const struct in6_addr *prefix, uint8_t
.address.in6 = *prefix,
};
- (void) in6_addr_prefix_to_string(prefix, prefixlen, &buf);
-
+ int log_level = set_contains(link->dhcp_pd_prefixes, p) ? LOG_DEBUG :
+ prefixlen > 64 || prefixlen < 48 ? LOG_WARNING : LOG_INFO;
log_link_full(link,
- set_contains(link->dhcp_pd_prefixes, p) ? LOG_DEBUG :
- prefixlen > 64 || prefixlen < 48 ? LOG_WARNING : LOG_INFO,
+ log_level,
"DHCP: received delegated prefix %s%s",
- strna(buf),
+ IN6_ADDR_PREFIX_TO_STRING(prefix, prefixlen),
prefixlen > 64 ? " with prefix length > 64, ignoring." :
prefixlen < 48 ? " with prefix length < 48, looks unusual.": "");
/* Store PD prefix even if prefixlen > 64, not to make logged at warning level so frequently. */
r = set_ensure_consume(&link->dhcp_pd_prefixes, &in_addr_prefix_hash_ops_free, p);
if (r < 0)
- return log_link_error_errno(link, r, "Failed to store DHCP delegated prefix %s: %m", strna(buf));
-
+ return log_link_error_errno(link, r, "Failed to store DHCP delegated prefix %s: %m",
+ IN6_ADDR_PREFIX_TO_STRING(prefix, prefixlen));
return 0;
}
@@ -968,13 +951,11 @@ int dhcp4_pd_prefix_acquired(Link *uplink) {
if (r < 0)
return log_link_warning_errno(uplink, r, "Failed to get DHCPv4 6rd option: %m");
- if (DEBUG_LOGGING) {
- _cleanup_free_ char *buf = NULL;
-
- (void) in6_addr_prefix_to_string(&sixrd_prefix, sixrd_prefixlen, &buf);
+ if (DEBUG_LOGGING)
log_link_debug(uplink, "DHCPv4: 6rd option is acquired: IPv4_masklen=%u, 6rd_prefix=%s, br_address="IPV4_ADDRESS_FMT_STR,
- ipv4masklen, strna(buf), IPV4_ADDRESS_FMT_VAL(*br_addresses));
- }
+ ipv4masklen,
+ IN6_ADDR_PREFIX_TO_STRING(&sixrd_prefix, sixrd_prefixlen),
+ IPV4_ADDRESS_FMT_VAL(*br_addresses));
/* Calculate PD prefix */
dhcp4_calculate_pd_prefix(&ipv4address, ipv4masklen, &sixrd_prefix, sixrd_prefixlen, &pd_prefix, &pd_prefixlen);