diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-11-18 13:23:13 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-11-18 13:23:13 -0600 |
commit | e1e44e772a789313956e819711d45f8d0d6f0d8b (patch) | |
tree | 4a7c4aec6993003e740c140dc1286e0236e663a2 | |
parent | 39b043a40a468756ccab0276cd38c0451a668e7d (diff) | |
download | ofono-e1e44e772a789313956e819711d45f8d0d6f0d8b.tar.bz2 |
Refactor: Send NotAttached error
If one tries to activate the context and we're currently not attached to
GPRS, report a NotAttached error instead of a failure
-rw-r--r-- | src/dbus.c | 6 | ||||
-rw-r--r-- | src/gprs.c | 6 | ||||
-rw-r--r-- | src/ofono.h | 1 |
3 files changed, 10 insertions, 3 deletions
@@ -316,6 +316,12 @@ DBusMessage *__ofono_error_in_use(DBusMessage *msg) "The resource is currently in use"); } +DBusMessage *__ofono_error_not_attached(DBusMessage *msg) +{ + return g_dbus_create_error(msg, DBUS_GSM_ERROR_INTERFACE ".NotAttached", + "GPRS is not attached"); +} + void __ofono_dbus_pending_reply(DBusMessage **msg, DBusMessage *reply) { DBusConnection *conn = ofono_dbus_get_connection(); @@ -603,12 +603,12 @@ static DBusMessage *pri_set_property(DBusConnection *conn, if (ctx->active == (ofono_bool_t) value) return dbus_message_new_method_return(msg); + if (value && !ctx->gprs->attached) + return __ofono_error_not_attached(msg); + if (ctx->gprs->flags & GPRS_FLAG_ATTACHING) return __ofono_error_busy(msg); - if (value && !ctx->gprs->attached) - return __ofono_error_failed(msg); - if (gc == NULL || gc->driver->activate_primary == NULL || gc->driver->deactivate_primary == NULL) return __ofono_error_not_implemented(msg); diff --git a/src/ofono.h b/src/ofono.h index b03dafce..037c4039 100644 --- a/src/ofono.h +++ b/src/ofono.h @@ -51,6 +51,7 @@ DBusMessage *__ofono_error_not_supported(DBusMessage *msg); DBusMessage *__ofono_error_timed_out(DBusMessage *msg); DBusMessage *__ofono_error_sim_not_ready(DBusMessage *msg); DBusMessage *__ofono_error_in_use(DBusMessage *msg); +DBusMessage *__ofono_error_not_attached(DBusMessage *msg); void __ofono_dbus_pending_reply(DBusMessage **msg, DBusMessage *reply); |