summaryrefslogtreecommitdiffstats
path: root/src/modem.c
diff options
context:
space:
mode:
authorAndrzej Zaborowski <andrew.zaborowski@intel.com>2009-09-10 18:57:11 +0200
committerDenis Kenzior <denkenz@gmail.com>2009-09-10 16:29:56 -0500
commit6f675b3148fd7f94ed8083e8d87742c9aab0f6b7 (patch)
tree7fdf02ca0609db322b87c29d5033854eb63025c6 /src/modem.c
parentac5603d225eb4f0a31edcb9edf01c56203e3f181 (diff)
downloadofono-6f675b3148fd7f94ed8083e8d87742c9aab0f6b7.tar.bz2
Keep modem->powered_pending up to date after set_powered.
Without this once a request to power up the modem fails, modem.c won't retry even when asked.
Diffstat (limited to 'src/modem.c')
-rw-r--r--src/modem.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modem.c b/src/modem.c
index ed6f870b..5e6e582a 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -462,6 +462,11 @@ static int set_powered(struct ofono_modem *modem, ofono_bool_t powered)
err = driver->disable(modem);
}
+ if (err == 0)
+ modem->powered = powered;
+ else if (err != EINPROGRESS)
+ modem->powered_pending = modem->powered;
+
return err;
}
@@ -472,6 +477,7 @@ static gboolean set_powered_timeout(gpointer user)
DBG("modem: %p", modem);
modem->timeout = 0;
+ modem->powered_pending = modem->powered;
if (modem->pending != NULL) {
DBusMessage *reply;
@@ -530,9 +536,6 @@ static DBusMessage *modem_set_property(DBusConnection *conn,
return NULL;
}
- modem->powered = powered;
- modem->powered_pending = powered;
-
g_dbus_send_reply(conn, msg, DBUS_TYPE_INVALID);
ofono_dbus_signal_property_changed(conn, modem->path,