diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver index aeea6ab275..70b1674f44 100644 --- a/libnm-glib/libnm-glib.ver +++ b/libnm-glib/libnm-glib.ver @@ -36,6 +36,7 @@ global: nm_client_get_device_by_iface; nm_client_get_device_by_path; nm_client_get_devices; + nm_client_get_logging; nm_client_get_manager_running; nm_client_get_permission_result; nm_client_get_state; diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c index 4bd8956218..aa7c08e374 100644 --- a/libnm-glib/nm-client.c +++ b/libnm-glib/nm-client.c @@ -1045,6 +1045,45 @@ nm_client_get_permission_result (NMClient *client, NMClientPermission permission return GPOINTER_TO_UINT (result); } +/** + * nm_client_get_logging: + * @client: a #NMClient + * @level: (allow-none): return location for logging level string + * @domains: (allow-none): return location for log domains string. The string is + * a list of domains separated by "," + * @error: (allow-none): return location for a #GError, or %NULL + * + * Gets NetworkManager current logging level and domains. + * + * Returns: %TRUE on success, %FALSE otherwise + **/ +gboolean +nm_client_get_logging (NMClient *client, char **level, char **domains, GError **error) +{ + GError *err = NULL; + + g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); + g_return_val_if_fail (level == NULL || *level == NULL, FALSE); + g_return_val_if_fail (domains == NULL || *domains == NULL, FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + if (!level && !domains) + return TRUE; + + if (!dbus_g_proxy_call (NM_CLIENT_GET_PRIVATE (client)->client_proxy, "GetLogging", &err, + G_TYPE_INVALID, + G_TYPE_STRING, level, + G_TYPE_STRING, domains, + G_TYPE_INVALID)) { + if (error) + *error = g_error_copy (err); + g_error_free (err); + return FALSE; + } + + return TRUE; +} + /****************************************************************/ static void diff --git a/libnm-glib/nm-client.h b/libnm-glib/nm-client.h index 64cbce216f..e54f742e90 100644 --- a/libnm-glib/nm-client.h +++ b/libnm-glib/nm-client.h @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #ifndef NM_CLIENT_H @@ -209,6 +209,8 @@ void nm_client_sleep (NMClient *client, gboolean sleep_); NMClientPermissionResult nm_client_get_permission_result (NMClient *client, NMClientPermission permission); +gboolean nm_client_get_logging (NMClient *client, char **level, char **domain, GError **error); + G_END_DECLS #endif /* NM_CLIENT_H */