summaryrefslogtreecommitdiffstats
path: root/gdbus/object.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-08-29 06:31:20 -0400
committerMarcel Holtmann <marcel@holtmann.org>2010-09-09 18:26:36 +0200
commit679f17303dbe792c69dae097b825fcf10ae23ad1 (patch)
tree12674cfe9ae6093d6f01bd3d1ed492ab0ce061a0 /gdbus/object.c
parent8ef8135a2afdfd8de363a61d8a6ae6e1218a01ec (diff)
downloadofono-679f17303dbe792c69dae097b825fcf10ae23ad1.tar.bz2
Use simpler error callbacks for GDBus security hooks
Diffstat (limited to 'gdbus/object.c')
-rw-r--r--gdbus/object.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index a367f938..48530f2a 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -271,22 +271,26 @@ void g_dbus_pending_success(DBusConnection *connection,
}
}
-void g_dbus_pending_error(DBusConnection *connection,
- GDBusPendingReply pending, DBusMessage *error)
+void g_dbus_pending_error_valist(DBusConnection *connection,
+ GDBusPendingReply pending, const char *name,
+ const char *format, va_list args)
{
GSList *list;
for (list = pending_security; list; list = list->next) {
struct security_data *secdata = list->data;
+ DBusMessage *reply;
if (secdata->pending != pending)
continue;
pending_security = g_slist_remove(pending_security, secdata);
- if (error != NULL) {
- dbus_connection_send(connection, error, NULL);
- dbus_message_unref(error);
+ reply = g_dbus_create_error_valist(secdata->message,
+ name, format, args);
+ if (reply != NULL) {
+ dbus_connection_send(connection, reply, NULL);
+ dbus_message_unref(reply);
}
dbus_message_unref(secdata->message);
@@ -295,6 +299,19 @@ void g_dbus_pending_error(DBusConnection *connection,
}
}
+void g_dbus_pending_error(DBusConnection *connection,
+ GDBusPendingReply pending,
+ const char *name, const char *format, ...)
+{
+ va_list args;
+
+ va_start(args, format);
+
+ g_dbus_pending_error_valist(connection, pending, name, format, args);
+
+ va_end(args);
+}
+
static gboolean check_privilege(DBusConnection *conn, DBusMessage *msg,
const GDBusMethodTable *method, void *iface_user_data)
{
@@ -315,7 +332,7 @@ static gboolean check_privilege(DBusConnection *conn, DBusMessage *msg,
pending_security = g_slist_prepend(pending_security, secdata);
- security->function(conn, secdata->message, secdata->pending);
+ security->function(conn, secdata->pending);
return TRUE;
}