diff options
Diffstat (limited to 'src/network/networkd-dhcp-prefix-delegation.c')
-rw-r--r-- | src/network/networkd-dhcp-prefix-delegation.c | 59 |
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); |