diff options
author | Thomas Haller <thaller@redhat.com> | 2015-11-20 17:52:54 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-11-22 13:40:32 +0100 |
commit | e1ea4b725eef64f6a718f38850ce26db58aaa4ef (patch) | |
tree | 5128fd1757804e2c94ae406b5319e4a1a15a9eae /src/nm-config-data.c | |
parent | c2831875e3a2cf046f8a3b42a971172319c50e99 (diff) | |
download | NetworkManager-e1ea4b725eef64f6a718f38850ce26db58aaa4ef.tar.gz |
main: add argument --print-config to NetworkManager
Diffstat (limited to 'src/nm-config-data.c')
-rw-r--r-- | src/nm-config-data.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/nm-config-data.c b/src/nm-config-data.c index 66b1da5916..e2b6c3a6e6 100644 --- a/src/nm-config-data.c +++ b/src/nm-config-data.c @@ -495,22 +495,34 @@ _nm_config_data_log_sort (const char **pa, const char **pb, gpointer dummy) } void -nm_config_data_log (const NMConfigData *self, const char *prefix) +nm_config_data_log (const NMConfigData *self, + const char *prefix, + const char *key_prefix, + /* FILE* */ gpointer print_stream) { NMConfigDataPrivate *priv; gs_strfreev char **groups = NULL; gsize ngroups; guint g, k; + FILE *stream = print_stream; g_return_if_fail (NM_IS_CONFIG_DATA (self)); - if (!nm_logging_enabled (LOGL_DEBUG, LOGD_CORE)) + if (!stream && !nm_logging_enabled (LOGL_DEBUG, LOGD_CORE)) return; if (!prefix) prefix = ""; + if (!key_prefix) + key_prefix = ""; -#define _LOG(...) _nm_log (LOGL_DEBUG, LOGD_CORE, 0, "%s"_NM_UTILS_MACRO_FIRST(__VA_ARGS__), prefix _NM_UTILS_MACRO_REST (__VA_ARGS__)) +#define _LOG(stream, prefix, ...) \ + G_STMT_START { \ + if (!stream) \ + _nm_log (LOGL_DEBUG, LOGD_CORE, 0, "%s"_NM_UTILS_MACRO_FIRST(__VA_ARGS__)"%s", prefix _NM_UTILS_MACRO_REST (__VA_ARGS__), ""); \ + else \ + fprintf (stream, "%s"_NM_UTILS_MACRO_FIRST(__VA_ARGS__)"%s", prefix _NM_UTILS_MACRO_REST (__VA_ARGS__), "\n"); \ + } G_STMT_END priv = NM_CONFIG_DATA_GET_PRIVATE (self); @@ -525,7 +537,8 @@ nm_config_data_log (const NMConfigData *self, const char *prefix) NULL); } - _LOG ("config-data[%p]: %lu groups", self, (unsigned long) ngroups); + if (!stream) + _LOG (stream, prefix, "config-data[%p]: %lu groups", self, (unsigned long) ngroups); for (g = 0; g < ngroups; g++) { const char *group = groups[g]; @@ -534,8 +547,8 @@ nm_config_data_log (const NMConfigData *self, const char *prefix) is_atomic = nm_config_data_is_intern_atomic_group (self, group); - _LOG (""); - _LOG ("[%s]%s", group, is_atomic ? "*" : ""); + _LOG (stream, prefix, ""); + _LOG (stream, prefix, "[%s]%s", group, is_atomic && !stream ? " # atomic section" : ""); keys = g_key_file_get_keys (priv->keyfile, group, NULL, NULL); for (k = 0; keys && keys[k]; k++) { @@ -543,7 +556,7 @@ nm_config_data_log (const NMConfigData *self, const char *prefix) gs_free char *value = NULL; value = g_key_file_get_value (priv->keyfile, group, key, NULL); - _LOG (" %s=%s", key, value); + _LOG (stream, prefix, "%s%s=%s", key_prefix, key, value); } } |