From 174d339a345695fdefe90da3e3fbb077bd5eda0b Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Thu, 20 Sep 2007 09:22:42 +0000 Subject: [PATCH] 2007-09-20 Dan Williams * introspection/nm-settings-connection.xml libnm-glib/nm-settings.c libnm-glib/nm-settings.h - Make GetSecrets asynchronous on the server side git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2829 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 7 ++++++ introspection/nm-settings-connection.xml | 1 + libnm-glib/nm-settings.c | 31 ++++++++++++++---------- libnm-glib/nm-settings.h | 4 ++- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6eed4c58e..30b03df59 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-09-20 Dan Williams + + * introspection/nm-settings-connection.xml + libnm-glib/nm-settings.c + libnm-glib/nm-settings.h + - Make GetSecrets asynchronous on the server side + 2007-09-20 Dan Williams * src/nm-manager.h diff --git a/introspection/nm-settings-connection.xml b/introspection/nm-settings-connection.xml index 6a4d8fdf7..b4f5fc78e 100644 --- a/introspection/nm-settings-connection.xml +++ b/introspection/nm-settings-connection.xml @@ -16,6 +16,7 @@ + diff --git a/libnm-glib/nm-settings.c b/libnm-glib/nm-settings.c index 22178e794..077439d1e 100644 --- a/libnm-glib/nm-settings.c +++ b/libnm-glib/nm-settings.c @@ -115,10 +115,9 @@ static gboolean impl_connection_settings_get_id (NMConnectionSettings *connectio static gboolean impl_connection_settings_get_settings (NMConnectionSettings *connection, GHashTable **settings, GError **error); -static gboolean impl_connection_settings_get_secrets (NMConnectionSettings *connection, +static void impl_connection_settings_get_secrets (NMConnectionSettings *connection, const gchar *setting_name, - GHashTable **secrets, - GError **error); + DBusGMethodInvocation *context); #include "nm-settings-connection-glue.h" @@ -169,22 +168,28 @@ impl_connection_settings_get_settings (NMConnectionSettings *connection, return TRUE; } -static gboolean +static void impl_connection_settings_get_secrets (NMConnectionSettings *connection, - const gchar *setting_name, - GHashTable **secrets, - GError **error) + const gchar *setting_name, + DBusGMethodInvocation *context) { - g_return_val_if_fail (NM_IS_CONNECTION_SETTINGS (connection), FALSE); + GError *error = NULL; - if (!CONNECTION_SETTINGS_CLASS (connection)->get_secrets) { - *error = new_error ("%s.%d - Missing implementation for ConnectionSettings::get_secret.", __FILE__, __LINE__); - return FALSE; + if (!NM_IS_CONNECTION_SETTINGS (connection)) { + error = new_error ("%s.%d - Invalid connection in ConnectionSettings::get_secret.", __FILE__, __LINE__); + dbus_g_method_return_error (context, error); + g_error_free (error); + return; } - *secrets = CONNECTION_SETTINGS_CLASS (connection)->get_secrets (connection, setting_name); + if (!CONNECTION_SETTINGS_CLASS (connection)->get_secrets) { + error = new_error ("%s.%d - Missing implementation for ConnectionSettings::get_secret.", __FILE__, __LINE__); + dbus_g_method_return_error (context, error); + g_error_free (error); + return; + } - return TRUE; + CONNECTION_SETTINGS_CLASS (connection)->get_secrets (connection, setting_name, context); } static guint32 cs_counter = 0; diff --git a/libnm-glib/nm-settings.h b/libnm-glib/nm-settings.h index c7ccff14b..d5267658b 100644 --- a/libnm-glib/nm-settings.h +++ b/libnm-glib/nm-settings.h @@ -27,7 +27,9 @@ typedef struct { /* virtual methods */ gchar * (* get_id) (NMConnectionSettings *connection); GHashTable * (* get_settings) (NMConnectionSettings *connection); - GHashTable * (* get_secrets) (NMConnectionSettings *connection, const gchar *setting_name); + void (* get_secrets) (NMConnectionSettings *connection, + const gchar *setting_name, + DBusGMethodInvocation *context); /* signals */ void (* updated) (NMConnectionSettings *connection, GHashTable *settings);