From b4b2a492870b441ab078ecd8db2aee1a6d0c1d08 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 5 Oct 2021 14:59:26 +0900 Subject: [PATCH] ethtool-util: make wol_options_to_string() not return all flag strings --- src/shared/ethtool-util.c | 7 ++++++- src/udev/net/link-config.c | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c index 00060abff40..0b5f64c1a33 100644 --- a/src/shared/ethtool-util.c +++ b/src/shared/ethtool-util.c @@ -43,6 +43,11 @@ int wol_options_to_string_alloc(uint32_t opts, char **ret) { assert(ret); + if (opts == UINT32_MAX) { + *ret = NULL; + return 0; + } + for (size_t i = 0; i < ELEMENTSOF(wol_option_map); i++) if (opts & wol_option_map[i].opt && !strextend_with_separator(&str, ",", wol_option_map[i].name)) @@ -55,7 +60,7 @@ int wol_options_to_string_alloc(uint32_t opts, char **ret) { } *ret = TAKE_PTR(str); - return 0; + return 1; } static const char* const port_table[] = { diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c index 14ca2e032e6..ca0522c3042 100644 --- a/src/udev/net/link-config.c +++ b/src/udev/net/link-config.c @@ -334,8 +334,8 @@ static int link_config_apply_ethtool_settings(int *ethtool_fd, const LinkConfig _cleanup_free_ char *str = NULL; (void) wol_options_to_string_alloc(config->wol, &str); - log_device_warning_errno(device, r, "Could not set WakeOnLan to %s, ignoring: %m", - strna(str)); + log_device_warning_errno(device, r, "Could not set WakeOnLan%s%s, ignoring: %m", + isempty(str) ? "" : " to ", strempty(str)); } r = ethtool_set_features(ethtool_fd, name, config->features);