diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-12-18 05:09:59 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-12-19 03:46:39 +0100 |
commit | da38092ad669a5b4b8b85018cab0461bb9f0e54d (patch) | |
tree | 01ffab331a18a2cfa479337808e1c33d5b34a68e | |
parent | 7ab9cecd49a01f84ee146dcce7281641fa338e6f (diff) | |
download | mmsd-da38092ad669a5b4b8b85018cab0461bb9f0e54d.tar.gz |
gdbus: Add helper for sending async error replies
-rw-r--r-- | gdbus/gdbus.h | 6 | ||||
-rw-r--r-- | gdbus/object.c | 32 |
2 files changed, 38 insertions, 0 deletions
diff --git a/gdbus/gdbus.h b/gdbus/gdbus.h index 5f1209f..0e5c012 100644 --- a/gdbus/gdbus.h +++ b/gdbus/gdbus.h @@ -222,6 +222,12 @@ DBusMessage *g_dbus_create_reply_valist(DBusMessage *message, int type, va_list args); gboolean g_dbus_send_message(DBusConnection *connection, DBusMessage *message); +gboolean g_dbus_send_error(DBusConnection *connection, DBusMessage *message, + const char *name, const char *format, ...) + __attribute__((format(printf, 4, 5))); +gboolean g_dbus_send_error_valist(DBusConnection *connection, + DBusMessage *message, const char *name, + const char *format, va_list args); gboolean g_dbus_send_reply(DBusConnection *connection, DBusMessage *message, int type, ...); gboolean g_dbus_send_reply_valist(DBusConnection *connection, diff --git a/gdbus/object.c b/gdbus/object.c index 7cbd612..776d35e 100644 --- a/gdbus/object.c +++ b/gdbus/object.c @@ -1446,6 +1446,38 @@ gboolean g_dbus_send_message(DBusConnection *connection, DBusMessage *message) return result; } +gboolean g_dbus_send_error_valist(DBusConnection *connection, + DBusMessage *message, const char *name, + const char *format, va_list args) +{ + DBusMessage *error; + char str[1024]; + + vsnprintf(str, sizeof(str), format, args); + + error = dbus_message_new_error(message, name, str); + if (error == NULL) + return FALSE; + + return g_dbus_send_message(connection, error); +} + +gboolean g_dbus_send_error(DBusConnection *connection, DBusMessage *message, + const char *name, const char *format, ...) +{ + va_list args; + gboolean result; + + va_start(args, format); + + result = g_dbus_send_error_valist(connection, message, name, + format, args); + + va_end(args); + + return result; +} + gboolean g_dbus_send_reply_valist(DBusConnection *connection, DBusMessage *message, int type, va_list args) { |