From 8c88ccaad94e79e90db2f8ec5d1b9e88dc163677 Mon Sep 17 00:00:00 2001 From: Rémi Denis-Courmont Date: Wed, 26 Jan 2011 09:33:57 +0200 Subject: modem: do not allow more than one client to lock down --- src/modem.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src') 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); -- cgit v1.2.3