summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/dbus.c6
-rw-r--r--src/gprs.c6
-rw-r--r--src/ofono.h1
3 files changed, 10 insertions, 3 deletions
diff --git a/src/dbus.c b/src/dbus.c
index b74481fb..25af2ec3 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -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();
diff --git a/src/gprs.c b/src/gprs.c
index 6b88fcbb..7c316793 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -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);