From e1ecfef16f74dac23803c45f145939027e18eda9 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 23 Jun 2021 15:58:31 +0900 Subject: [PATCH] udev-util: introduce udev_replace_ifname() --- src/shared/udev-util.c | 17 +++++++++++++++++ src/shared/udev-util.h | 1 + 2 files changed, 18 insertions(+) diff --git a/src/shared/udev-util.c b/src/shared/udev-util.c index 06aede9d36..f934fc157e 100644 --- a/src/shared/udev-util.c +++ b/src/shared/udev-util.c @@ -18,6 +18,7 @@ #include "parse-util.h" #include "path-util.h" #include "signal-util.h" +#include "socket-util.h" #include "string-table.h" #include "string-util.h" #include "strxcpyx.h" @@ -436,6 +437,22 @@ size_t udev_replace_whitespace(const char *str, char *to, size_t len) { return j; } +size_t udev_replace_ifname(char *str) { + size_t replaced = 0; + + assert(str); + + /* See ifname_valid_full(). */ + + for (char *p = str; *p != '\0'; p++) + if (!ifname_valid_char(*p)) { + *p = '_'; + replaced++; + } + + return replaced; +} + size_t udev_replace_chars(char *str, const char *allow) { size_t i = 0, replaced = 0; diff --git a/src/shared/udev-util.h b/src/shared/udev-util.h index d1c33b86a7..276686da80 100644 --- a/src/shared/udev-util.h +++ b/src/shared/udev-util.h @@ -46,6 +46,7 @@ void log_device_uevent(sd_device *device, const char *str); int udev_rule_parse_value(char *str, char **ret_value, char **ret_endpos); size_t udev_replace_whitespace(const char *str, char *to, size_t len); +size_t udev_replace_ifname(char *str); size_t udev_replace_chars(char *str, const char *allow); int udev_resolve_subsys_kernel(const char *string, char *result, size_t maxsize, bool read_value); -- 2.25.1