summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-12-05 22:11:51 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-12-05 22:11:51 +0100
commit9703f77e6f49cf5bcf318c1f2d315a6250ae773d (patch)
treedbf218eb100ec08fd937d6a70d17321bdd811227
parentafc80b971146277e4befc173ef61cfcb375a3b0f (diff)
downloadconnman-9703f77e6f49cf5bcf318c1f2d315a6250ae773d.tar.gz
connman-9703f77e6f49cf5bcf318c1f2d315a6250ae773d.tar.bz2
connman-9703f77e6f49cf5bcf318c1f2d315a6250ae773d.zip
Add generic failure reply
-rw-r--r--src/connman.h1
-rw-r--r--src/element.c14
-rw-r--r--src/error.c6
3 files changed, 15 insertions, 6 deletions
diff --git a/src/connman.h b/src/connman.h
index c42859fe..9f7c4c1f 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 36f40900..0f7ceccb 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 08f94d2e..21606cbc 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