From 1e15ea9dd528de2a73747a70cbb60f3ffe5f1dd3 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 10 Feb 2021 10:09:56 +0100 Subject: [PATCH] systemd: add nm_sd_dns_name_normalize() accessor --- shared/systemd/nm-sd-utils-shared.c | 18 ++++++++++++++++++ shared/systemd/nm-sd-utils-shared.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/shared/systemd/nm-sd-utils-shared.c b/shared/systemd/nm-sd-utils-shared.c index c93e89c630..f0504aa937 100644 --- a/shared/systemd/nm-sd-utils-shared.c +++ b/shared/systemd/nm-sd-utils-shared.c @@ -93,6 +93,24 @@ nm_sd_hostname_is_valid(const char *s, bool allow_trailing_dot) : (ValidHostnameFlags) 0); } +char * +nm_sd_dns_name_normalize(const char *s) +{ + nm_auto_free char *n = NULL; + int r; + + r = dns_name_normalize(s, 0, &n); + if (r < 0) + return NULL; + + nm_assert(n); + + /* usually we try not to mix malloc/g_malloc and free/g_free. In practice, + * they are the same. So here we return a buffer allocated with malloc(), + * and the caller should free it with g_free(). */ + return g_steal_pointer(&n); +} + /*****************************************************************************/ static gboolean diff --git a/shared/systemd/nm-sd-utils-shared.h b/shared/systemd/nm-sd-utils-shared.h index b4a1b189d3..45089c074d 100644 --- a/shared/systemd/nm-sd-utils-shared.h +++ b/shared/systemd/nm-sd-utils-shared.h @@ -28,6 +28,8 @@ nm_sd_dns_name_to_wire_format(const char *domain, guint8 *buffer, size_t len, gb int nm_sd_dns_name_is_valid(const char *s); gboolean nm_sd_hostname_is_valid(const char *s, bool allow_trailing_dot); +char *nm_sd_dns_name_normalize(const char *s); + /*****************************************************************************/ gboolean nm_sd_http_url_is_valid_https(const char *url);