From e173173a1f2b966fea6b0e0863b919e446a0a2c2 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Thu, 9 Sep 2010 16:39:46 +0200 Subject: Add support for GDBus security action and flags --- gdbus/object.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'gdbus/object.c') diff --git a/gdbus/object.c b/gdbus/object.c index 48530f2a..725c0bbb 100644 --- a/gdbus/object.c +++ b/gdbus/object.c @@ -317,9 +317,10 @@ static gboolean check_privilege(DBusConnection *conn, DBusMessage *msg, { const GDBusSecurityTable *security; - for (security = security_table; security && security->function && - security->privilege; security++) { + for (security = security_table; security && security->privilege; + security++) { struct security_data *secdata; + gboolean interaction; if (security->privilege != method->privilege) continue; @@ -332,7 +333,14 @@ static gboolean check_privilege(DBusConnection *conn, DBusMessage *msg, pending_security = g_slist_prepend(pending_security, secdata); - security->function(conn, secdata->pending); + if (security->flags & G_DBUS_SECURITY_FLAG_ALLOW_INTERACTION) + interaction = TRUE; + else + interaction = FALSE; + + if (security->function) + security->function(conn, security->action, + interaction, secdata->pending); return TRUE; } -- cgit v1.2.3