diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-05-26 17:34:56 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-05-26 21:03:15 -0500 |
commit | f2a2573cd071de3d7555fef931f404a2e9f381cf (patch) | |
tree | e390962323a4e5270563ee514cd41cc16ca05715 | |
parent | adefe451a24e9156ba84b820853262004dbac074 (diff) | |
download | ofono-f2a2573cd071de3d7555fef931f404a2e9f381cf.tar.bz2 |
Fix: Don't allow setting online before sim ready
-rw-r--r-- | src/modem.c | 15 |
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, |