diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2011-01-26 09:51:41 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2011-01-26 09:51:41 +0100 |
commit | ed99980cd39385dff0cda1b4ce691f7055296a8d (patch) | |
tree | 4145ad1622ebdfaf7ea8fcbbea4ceb089e32e294 /src/modem.c | |
parent | 8637e31d1dee8d9912ae2cfaec8006aed6a8c3cb (diff) | |
download | ofono-ed99980cd39385dff0cda1b4ce691f7055296a8d.tar.bz2 |
modem: Simplify the modem lockdown modification
Diffstat (limited to 'src/modem.c')
-rw-r--r-- | src/modem.c | 53 |
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); |