ofono: avoid extra SetProperty("Online") calls
authorPekka Pessi <Pekka.Pessi@nokia.com>
Tue, 18 Jan 2011 15:13:51 +0000 (17:13 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 18 Jan 2011 15:16:49 +0000 (16:16 +0100)
Do not request SetProperty("Online") if the modem is already in desired
Online state.

plugins/ofono.c

index 9385f39..2af555d 100644 (file)
@@ -274,6 +274,16 @@ static void set_online_reply(DBusPendingCall *call, void *user_data)
 
 static int modem_change_online(char const *path, dbus_bool_t online)
 {
+       struct modem_data *modem = g_hash_table_lookup(modem_hash, path);
+
+       if (modem == NULL)
+               return -ENODEV;
+
+       if (modem->online == (gboolean)online)
+               return -EALREADY;
+
+       modem->requested_online = (gboolean)online;
+
        return set_property(path, OFONO_MODEM_INTERFACE, "Online",
                                DBUS_TYPE_BOOLEAN, &online,
                                set_online_reply,