From f0a3730bb6396132b9a52306fb0832344bddeab0 Mon Sep 17 00:00:00 2001 From: Marius Tomaschewski Date: Mon, 16 Jan 2023 11:11:15 +0100 Subject: [PATCH] client: add ni_ifconfig_kind name mapping utils --- client/read-config.c | 24 ++++++++++++++++++++++++ client/read-config.h | 3 +++ 2 files changed, 27 insertions(+) diff --git a/client/read-config.c b/client/read-config.c index d38ff1bdc..8275f57f2 100644 --- a/client/read-config.c +++ b/client/read-config.c @@ -204,6 +204,30 @@ ni_ifconfig_kind_guess(ni_ifconfig_kind_t kind) } } +static const ni_intmap_t ni_ifconfig_kind_map[] = { + { "policy", NI_IFCONFIG_KIND_POLICY }, + { "config", NI_IFCONFIG_KIND_CONFIG }, + { NULL, NI_IFCONFIG_KIND_DEFAULT } +}; + +const char * +ni_ifconfig_kind_to_name(ni_ifconfig_kind_t kind) +{ + return ni_format_uint_mapped(kind, ni_ifconfig_kind_map); +} + +ni_bool_t +ni_ifconfig_kind_by_name(const char *name, ni_ifconfig_kind_t *kind) +{ + unsigned int type; + + if (!kind || ni_parse_uint_mapped(name, ni_ifconfig_kind_map, &type) < 0) + return FALSE; + + *kind = type; + return TRUE; +} + const ni_ifconfig_type_t * ni_ifconfig_guess_wicked_type(const ni_ifconfig_type_t *map, const char *root, const char *path) diff --git a/client/read-config.h b/client/read-config.h index 69d08a276..a54041fa8 100644 --- a/client/read-config.h +++ b/client/read-config.h @@ -63,4 +63,7 @@ extern ni_bool_t ni_ifconfig_read_subtype(xml_document_array_t *, extern ni_bool_t ni_ifconfig_read(xml_document_array_t *, const char *, const char *, ni_ifconfig_kind_t, ni_bool_t, ni_bool_t); +extern const char * ni_ifconfig_kind_to_name(ni_ifconfig_kind_t); +extern ni_bool_t ni_ifconfig_kind_by_name(const char *, ni_ifconfig_kind_t *); + #endif /* WICKED_CLIENT_READ_CONFIG_H */