diff options
Diffstat (limited to 'src/modem.c')
-rw-r--r-- | src/modem.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modem.c b/src/modem.c index a99d792a..5f3821bb 100644 --- a/src/modem.c +++ b/src/modem.c @@ -410,14 +410,16 @@ static void online_cb(const struct ofono_error *error, void *data) struct ofono_modem *modem = data; DBusMessage *reply; - if (error->type == OFONO_ERROR_TYPE_NO_ERROR) + if (error->type == OFONO_ERROR_TYPE_NO_ERROR && + modem->modem_state == MODEM_STATE_OFFLINE) reply = dbus_message_new_method_return(modem->pending); else reply = __ofono_error_failed(modem->pending); __ofono_dbus_pending_reply(&modem->pending, reply); - if (error->type == OFONO_ERROR_TYPE_NO_ERROR) + if (error->type == OFONO_ERROR_TYPE_NO_ERROR && + modem->modem_state == MODEM_STATE_OFFLINE) modem_change_state(modem, MODEM_STATE_ONLINE); } @@ -433,7 +435,8 @@ static void offline_cb(const struct ofono_error *error, void *data) __ofono_dbus_pending_reply(&modem->pending, reply); - if (error->type == OFONO_ERROR_TYPE_NO_ERROR) + if (error->type == OFONO_ERROR_TYPE_NO_ERROR && + modem->modem_state == MODEM_STATE_ONLINE) modem_change_state(modem, MODEM_STATE_OFFLINE); } |