summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRichard Röjfors <richard@puffinpack.se>2019-09-17 23:48:07 +0200
committerDenis Kenzior <denkenz@gmail.com>2019-09-20 09:57:15 -0500
commit336a5b4274bc158cca63e1aa5942902a32db3c1e (patch)
treed53023bc29606388ec672f36321efca42122e51e /src
parentf3a5016a6737b4cb40d33815e2d9aa2977380e01 (diff)
downloadofono-336a5b4274bc158cca63e1aa5942902a32db3c1e.tar.gz
gprs: deattach driver when gprs status indicates unregistered
In the same way as we consider the driver attached when the gprs status indicates we are registered, we should consider it deattached when the status indicates unregistration. If we don't, then we would not always recover from the case when deattaching the driver fails. We would just revert back the driver attached status to true, and "ignore" if the status indicates the opposite when we check the registration status afterwards.
Diffstat (limited to 'src')
-rw-r--r--src/gprs.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/gprs.c b/src/gprs.c
index de172979..c7b181f5 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -2568,12 +2568,6 @@ void ofono_gprs_status_notify(struct ofono_gprs *gprs, int status)
gprs->status = status;
- if (status != NETWORK_REGISTRATION_STATUS_REGISTERED &&
- status != NETWORK_REGISTRATION_STATUS_ROAMING) {
- gprs_attached_update(gprs);
- return;
- }
-
/*
* If we're already taking action, e.g. attaching or detaching, then
* ignore this notification for now, we will take appropriate action
@@ -2582,6 +2576,12 @@ void ofono_gprs_status_notify(struct ofono_gprs *gprs, int status)
if (gprs->flags & GPRS_FLAG_ATTACHING)
return;
+ if (status != NETWORK_REGISTRATION_STATUS_REGISTERED &&
+ status != NETWORK_REGISTRATION_STATUS_ROAMING) {
+ ofono_gprs_detached_notify(gprs);
+ return;
+ }
+
/* We registered without being powered */
if (gprs->powered == FALSE)
goto detach;