From 9703f77e6f49cf5bcf318c1f2d315a6250ae773d Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 5 Dec 2008 22:11:51 +0100 Subject: [PATCH] Add generic failure reply --- src/connman.h | 1 + src/element.c | 14 ++++++++------ src/error.c | 6 ++++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/connman.h b/src/connman.h index c42859f..9f7c4c1 100644 --- a/src/connman.h +++ b/src/connman.h @@ -27,6 +27,7 @@ #define NM_PATH "/org/freedesktop/NetworkManager" #define NM_INTERFACE NM_SERVICE +DBusMessage *__connman_error_failed(DBusMessage *msg); DBusMessage *__connman_error_invalid_arguments(DBusMessage *msg); DBusMessage *__connman_error_permission_denied(DBusMessage *msg); diff --git a/src/element.c b/src/element.c index 36f4090..0f7cecc 100644 --- a/src/element.c +++ b/src/element.c @@ -288,11 +288,13 @@ static DBusMessage *do_update(DBusConnection *conn, DBG("conn %p", conn); if (element->enabled == FALSE) - return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); + return __connman_error_failed(msg); if (element->driver && element->driver->update) { DBG("Calling update callback"); - element->driver->update(element); + if (element->driver->update(element) < 0) + return __connman_error_failed(msg); + } return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); @@ -306,12 +308,12 @@ static DBusMessage *do_enable(DBusConnection *conn, DBG("conn %p", conn); if (element->enabled == TRUE) - return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); + return __connman_error_failed(msg); if (element->driver && element->driver->enable) { DBG("Calling enable callback"); if (element->driver->enable(element) < 0) - return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); + return __connman_error_failed(msg); } element->enabled = TRUE; @@ -334,12 +336,12 @@ static DBusMessage *do_disable(DBusConnection *conn, DBG("conn %p", conn); if (element->enabled == FALSE) - return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); + return __connman_error_failed(msg); if (element->driver && element->driver->disable) { DBG("Calling disable callback"); if (element->driver->disable(element) < 0) - return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); + return __connman_error_failed(msg); } element->enabled = FALSE; diff --git a/src/error.c b/src/error.c index 08f94d2..21606cb 100644 --- a/src/error.c +++ b/src/error.c @@ -27,6 +27,12 @@ #include "connman.h" +DBusMessage *__connman_error_failed(DBusMessage *msg) +{ + return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE + ".Failed", NULL); +} + DBusMessage *__connman_error_invalid_arguments(DBusMessage *msg) { return g_dbus_create_error(msg, CONNMAN_ERROR_INTERFACE -- 2.7.4