diff options
author | Aleksander Morgado <aleksander@gnu.org> | 2011-09-02 20:28:12 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:19 +0100 |
commit | d47176a32c45da0f63ec5ab8024cf4e5f6467a7f (patch) | |
tree | 3914d9064c045e606d2da23eff392dbf9af43ea5 /src/mm-auth-provider-polkit.c | |
parent | 1e79a2d292e7e68430043d9741bfbbe01cd3206f (diff) |
core: avoid using DBusGMethodInvocation in auth API
While porting to GDBus, use opaque pointers. This allows us to include either a
DBusGMethodInvocation or a GDBusMethodInvocation in the 'context' pointer.
Once fully ported to GDBus, we can safely change it back to make the context be
a GDBusMethodInvocation.
Diffstat (limited to 'src/mm-auth-provider-polkit.c')
-rw-r--r-- | src/mm-auth-provider-polkit.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/mm-auth-provider-polkit.c b/src/mm-auth-provider-polkit.c index 2cd4a8ab..58550f5b 100644 --- a/src/mm-auth-provider-polkit.c +++ b/src/mm-auth-provider-polkit.c @@ -55,20 +55,33 @@ static MMAuthRequest * real_create_request (MMAuthProvider *provider, const char *authorization, GObject *owner, - DBusGMethodInvocation *context, + gpointer context, MMAuthRequestCb callback, gpointer callback_data, GDestroyNotify notify) { MMAuthProviderPolkitPrivate *priv = MM_AUTH_PROVIDER_POLKIT_GET_PRIVATE (provider); + MMAuthRequest *auth_request; + gchar *sender; - return (MMAuthRequest *) mm_auth_request_polkit_new (priv->authority, - authorization, - owner, - context, - callback, - callback_data, - notify); + /* Ugly temporary hack... */ + if (G_IS_DBUS_METHOD_INVOCATION (context)) { + sender = g_strdup (g_dbus_method_invocation_get_sender (context)); + } else { + sender = dbus_g_method_get_sender (context); + } + + auth_request = (MMAuthRequest *)mm_auth_request_polkit_new (priv->authority, + authorization, + owner, + context, + sender, + callback, + callback_data, + notify); + g_free (sender); + + return auth_request; } /*****************************************************************************/ |