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:47:54 +0100 |
commit | aaffd85dbde65eb8e9e723bd6c9f7d30c9b5860d (patch) | |
tree | 83e11ec9be9f055d6b763696896144e2316a2c40 | |
parent | ea17665e75a2c308b0c53f45f60eb26aa6b76951 (diff) | |
download | pacrunner-aaffd85dbde65eb8e9e723bd6c9f7d30c9b5860d.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) { |