diff options
author | Rémi Denis-Courmont <remi.denis-courmont@nokia.com> | 2011-01-26 09:33:57 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2011-01-26 09:46:42 +0100 |
commit | 8c88ccaad94e79e90db2f8ec5d1b9e88dc163677 (patch) | |
tree | 4a3bf7202dfb15201e0755a7220e9887f997c3eb | |
parent | 3ef33522e7781af2875958c09d86c2146d4d1c7b (diff) | |
download | ofono-8c88ccaad94e79e90db2f8ec5d1b9e88dc163677.tar.bz2 |
modem: do not allow more than one client to lock down
-rw-r--r-- | src/modem.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/modem.c b/src/modem.c index 553549e4..a92107e2 100644 --- a/src/modem.c +++ b/src/modem.c @@ -805,11 +805,14 @@ static DBusMessage *set_property_lockdown(struct ofono_modem *modem, if (modem->pending != NULL) return __ofono_error_busy(msg); + caller = dbus_message_get_sender(msg); + + if (modem->lockdown && g_strcmp0(caller, modem->lock_owner)) + return __ofono_error_access_denied(msg); + if (modem->lockdown == lockdown) return dbus_message_new_method_return(msg); - caller = dbus_message_get_sender(msg); - if (lockdown) { dbus_bool_t powered; @@ -847,12 +850,8 @@ static DBusMessage *set_property_lockdown(struct ofono_modem *modem, OFONO_MODEM_INTERFACE, "Powered", DBUS_TYPE_BOOLEAN, &powered); - } else { - if (g_strcmp0(caller, modem->lock_owner)) - return __ofono_error_access_denied(msg); - + } else lockdown_remove(modem); - } done: g_dbus_send_reply(conn, msg, DBUS_TYPE_INVALID); |