summaryrefslogtreecommitdiffstats
path: root/src/modem.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2011-01-26 09:51:41 +0100
committerMarcel Holtmann <marcel@holtmann.org>2011-01-26 09:51:41 +0100
commited99980cd39385dff0cda1b4ce691f7055296a8d (patch)
tree4145ad1622ebdfaf7ea8fcbbea4ceb089e32e294 /src/modem.c
parent8637e31d1dee8d9912ae2cfaec8006aed6a8c3cb (diff)
downloadofono-ed99980cd39385dff0cda1b4ce691f7055296a8d.tar.bz2
modem: Simplify the modem lockdown modification
Diffstat (limited to 'src/modem.c')
-rw-r--r--src/modem.c53
1 files changed, 27 insertions, 26 deletions
diff --git a/src/modem.c b/src/modem.c
index 8cbbd895..8e243d81 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -796,6 +796,7 @@ static DBusMessage *set_property_lockdown(struct ofono_modem *modem,
{
DBusConnection *conn = ofono_dbus_get_connection();
ofono_bool_t lockdown;
+ dbus_bool_t powered;
const char *caller;
int err;
@@ -815,47 +816,47 @@ static DBusMessage *set_property_lockdown(struct ofono_modem *modem,
if (modem->lockdown == lockdown)
return dbus_message_new_method_return(msg);
- if (lockdown) {
- dbus_bool_t powered;
+ if (lockdown == FALSE) {
+ lockdown_remove(modem);
+ goto done;
+ }
- modem->lock_owner = g_strdup(caller);
+ modem->lock_owner = g_strdup(caller);
- modem->lock_watch = g_dbus_add_disconnect_watch(conn,
+ modem->lock_watch = g_dbus_add_disconnect_watch(conn,
modem->lock_owner, lockdown_disconnect,
modem, NULL);
- if (modem->lock_watch == 0) {
- g_free(modem->lock_owner);
- modem->lock_owner = NULL;
+ if (modem->lock_watch == 0) {
+ g_free(modem->lock_owner);
+ modem->lock_owner = NULL;
- return __ofono_error_failed(msg);
- }
+ return __ofono_error_failed(msg);
+ }
- modem->lockdown = lockdown;
+ modem->lockdown = lockdown;
- if (!modem->powered)
- goto done;
+ if (modem->powered == FALSE)
+ goto done;
- err = set_powered(modem, FALSE);
- if (err < 0) {
- if (err != -EINPROGRESS) {
- lockdown_remove(modem);
- return __ofono_error_failed(msg);
- }
+ err = set_powered(modem, FALSE);
+ if (err < 0) {
+ if (err != -EINPROGRESS) {
+ lockdown_remove(modem);
+ return __ofono_error_failed(msg);
+ }
- modem->pending = dbus_message_ref(msg);
- modem->timeout = g_timeout_add_seconds(20,
+ modem->pending = dbus_message_ref(msg);
+ modem->timeout = g_timeout_add_seconds(20,
set_powered_timeout, modem);
- return NULL;
- }
+ return NULL;
+ }
- powered = FALSE;
- ofono_dbus_signal_property_changed(conn, modem->path,
+ powered = FALSE;
+ ofono_dbus_signal_property_changed(conn, modem->path,
OFONO_MODEM_INTERFACE,
"Powered", DBUS_TYPE_BOOLEAN,
&powered);
- } else
- lockdown_remove(modem);
done:
g_dbus_send_reply(conn, msg, DBUS_TYPE_INVALID);