summaryrefslogtreecommitdiff
path: root/src/nm-config-data.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-11-20 17:52:54 +0100
committerThomas Haller <thaller@redhat.com>2015-11-22 13:40:32 +0100
commite1ea4b725eef64f6a718f38850ce26db58aaa4ef (patch)
tree5128fd1757804e2c94ae406b5319e4a1a15a9eae /src/nm-config-data.c
parentc2831875e3a2cf046f8a3b42a971172319c50e99 (diff)
downloadNetworkManager-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.c27
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);
}
}