#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"
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;
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);