diff options
author | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2013-06-24 17:14:02 +0100 |
---|---|---|
committer | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2013-06-29 21:10:21 +0200 |
commit | a96aa11bb5bb314c003f054f433f709f65c16290 (patch) | |
tree | 4031749e225c7791acdd3ef19f3144159ff010da /dundee | |
parent | d6a601f8d17968f1112da68f94c74ee69264ed76 (diff) | |
download | ofono-a96aa11bb5bb314c003f054f433f709f65c16290.tar.bz2 |
dundee: return error if there is a connection procedure ongoing
Diffstat (limited to 'dundee')
-rw-r--r-- | dundee/dbus.c | 7 | ||||
-rw-r--r-- | dundee/device.c | 3 | ||||
-rw-r--r-- | dundee/dundee.h | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/dundee/dbus.c b/dundee/dbus.c index 90bd76be..a1fd2f92 100644 --- a/dundee/dbus.c +++ b/dundee/dbus.c @@ -44,6 +44,13 @@ DBusMessage *__dundee_error_failed(DBusMessage *msg) "Operation failed"); } +DBusMessage *__dundee_error_in_progress(DBusMessage *msg) +{ + return g_dbus_create_error(msg, DUNDEE_ERROR_INTERFACE + ".InProgress", + "Operation already in progress"); +} + DBusMessage *__dundee_error_timed_out(DBusMessage *msg) { return g_dbus_create_error(msg, DUNDEE_ERROR_INTERFACE ".Timedout", diff --git a/dundee/device.c b/dundee/device.c index 2d84aaa9..3b32444b 100644 --- a/dundee/device.c +++ b/dundee/device.c @@ -456,6 +456,9 @@ static DBusMessage *set_property_active(struct dundee_device *device, if (dbus_message_iter_get_arg_type(var) != DBUS_TYPE_BOOLEAN) return __dundee_error_invalid_args(msg); + if (device->pending) + return __dundee_error_in_progress(msg); + dbus_message_iter_get_basic(var, &active); device->pending = dbus_message_ref(msg); diff --git a/dundee/dundee.h b/dundee/dundee.h index 1889d84a..1af56ca2 100644 --- a/dundee/dundee.h +++ b/dundee/dundee.h @@ -96,6 +96,7 @@ void __ofono_dbus_pending_reply(DBusMessage **msg, DBusMessage *reply); DBusMessage *__dundee_error_invalid_args(DBusMessage *msg); DBusMessage *__dundee_error_failed(DBusMessage *msg); +DBusMessage *__dundee_error_in_progress(DBusMessage *msg); DBusMessage *__dundee_error_timed_out(DBusMessage *msg); |