summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-05-26 17:34:56 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-05-26 21:03:15 -0500
commitf2a2573cd071de3d7555fef931f404a2e9f381cf (patch)
treee390962323a4e5270563ee514cd41cc16ca05715
parentadefe451a24e9156ba84b820853262004dbac074 (diff)
downloadofono-f2a2573cd071de3d7555fef931f404a2e9f381cf.tar.bz2
Fix: Don't allow setting online before sim ready
-rw-r--r--src/modem.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/modem.c b/src/modem.c
index a2c5d4f8..fa428de7 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -460,15 +460,18 @@ static DBusMessage *set_property_online(struct ofono_modem *modem,
dbus_message_iter_get_basic(var, &online);
- if (modem->online == online)
- return dbus_message_new_method_return(msg);
-
- if (!driver || !driver->set_online)
- return __ofono_error_failed(msg);
-
if (modem->pending != NULL)
return __ofono_error_busy(msg);
+ if (!driver->set_online)
+ return __ofono_error_not_implemented(msg);
+
+ if (modem->modem_state < MODEM_STATE_OFFLINE)
+ return __ofono_error_not_available(msg);
+
+ if (modem->online == online)
+ return dbus_message_new_method_return(msg);
+
modem->pending = dbus_message_ref(msg);
driver->set_online(modem, online,