summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-06-27 15:17:52 +0200
committerThomas Haller <thaller@redhat.com>2016-06-27 15:17:52 +0200
commitf7614718631666a742fe888f514b37acbba2915b (patch)
tree9abd464cb4c1ca2cf2e78b6703d1d923f2ab2c34
parentd81068071786c74021b007fa5a88a6143a5ae816 (diff)
downloadNetworkManager-bg/vpn-dns-rh1348901.tar.gz
fixup! dns: log DNS servers at TRACE levelbg/vpn-dns-rh1348901
-rw-r--r--shared/nm-utils/nm-macros-internal.h8
-rw-r--r--src/dns-manager/nm-dns-manager.c48
2 files changed, 32 insertions, 24 deletions
diff --git a/shared/nm-utils/nm-macros-internal.h b/shared/nm-utils/nm-macros-internal.h
index 603689af01..81290a3fd2 100644
--- a/shared/nm-utils/nm-macros-internal.h
+++ b/shared/nm-utils/nm-macros-internal.h
@@ -51,6 +51,14 @@ _nm_auto_unset_gvalue_impl (GValue *v)
}
#define nm_auto_unset_gvalue nm_auto(_nm_auto_unset_gvalue_impl)
+static inline void
+_nm_auto_free_gstring_impl (GString **str)
+{
+ if (*str)
+ g_string_free (*str, TRUE);
+}
+#define nm_auto_free_gstring nm_auto(_nm_auto_free_gstring_impl)
+
/********************************************************/
/* http://stackoverflow.com/a/11172679 */
diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
index c22b4ac913..3efd5ac1a8 100644
--- a/src/dns-manager/nm-dns-manager.c
+++ b/src/dns-manager/nm-dns-manager.c
@@ -940,33 +940,42 @@ merge_global_dns_config (NMResolvConfData *rc, NMGlobalDnsConfig *global_conf)
return TRUE;
}
-static void
-get_nameserver_list (void *config, GString *str)
+static const char *
+get_nameserver_list (void *config, GString **str)
{
NMIP4Config *ip4;
NMIP6Config *ip6;
guint num, i;
+ nm_assert (str);
+
+ if (*str)
+ g_string_truncate (*str, 0);
+ else
+ *str = g_string_sized_new (64);
+
if (NM_IS_IP4_CONFIG (config)) {
ip4 = (NMIP4Config *) config;
num = nm_ip4_config_get_num_nameservers (ip4);
for (i = 0; i < num; i++) {
- g_string_append (str,
+ g_string_append (*str,
nm_utils_inet4_ntop (nm_ip4_config_get_nameserver (ip4, i),
NULL));
- g_string_append_c (str, ' ');
+ g_string_append_c (*str, ' ');
}
} else if (NM_IS_IP6_CONFIG (config)) {
ip6 = (NMIP6Config *) config;
num = nm_ip6_config_get_num_nameservers (ip6);
for (i = 0; i < num; i++) {
- g_string_append (str,
+ g_string_append (*str,
nm_utils_inet6_ntop (nm_ip6_config_get_nameserver (ip6, i),
NULL));
- g_string_append_c (str, ' ');
+ g_string_append_c (*str, ' ');
}
} else
- g_return_if_reached ();
+ g_return_val_if_reached (NULL);
+
+ return (*str)->str;
}
static gboolean
@@ -988,7 +997,7 @@ update_dns (NMDnsManager *self,
NMConfigData *data;
NMGlobalDnsConfig *global_config;
gs_free NMDnsIPConfigData **plugin_confs = NULL;
- GString *ns_list = NULL;
+ nm_auto_free_gstring GString *tmp_gstring = NULL;
g_return_val_if_fail (!error || !*error, FALSE);
@@ -1029,7 +1038,6 @@ update_dns (NMDnsManager *self,
gboolean skip = FALSE, v4;
plugin_confs = g_new (NMDnsIPConfigData *, priv->configs->len + 1);
- ns_list = g_string_sized_new (64);
for (i = 0; i < priv->configs->len; i++) {
current = priv->configs->pdata[i];
@@ -1046,19 +1054,13 @@ update_dns (NMDnsManager *self,
prev_prio = prio;
- if (_LOGT_ENABLED ()) {
- get_nameserver_list (current->config, ns_list);
-
- _LOGT ("config: %8d %-7s v%c %-16s %s: %s",
- prio,
- _config_type_to_string (current->type),
- v4 ? '4' : '6',
- current->iface,
- skip ? "<SKIP>" : "",
- ns_list->str);
-
- g_string_truncate (ns_list, 0);
- }
+ _LOGT ("config: %8d %-7s v%c %-16s %s: %s",
+ prio,
+ _config_type_to_string (current->type),
+ v4 ? '4' : '6',
+ current->iface,
+ skip ? "<SKIP>" : "",
+ get_nameserver_list (current->config, &tmp_gstring));
if (!skip) {
merge_one_ip_config_data (self, &rc, current);
@@ -1210,8 +1212,6 @@ update_dns (NMDnsManager *self,
if (nis_servers)
g_strfreev (nis_servers);
- g_string_free (ns_list, TRUE);
-
return !update || result == SR_SUCCESS;
}