summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-09-19 04:33:38 -0700
committerMarcel Holtmann <marcel@holtmann.org>2009-09-19 04:33:38 -0700
commit4663833e70b3a4d0bdc85e17cc0d62e9b79c3456 (patch)
tree6cbe5a8ee099af90795510cb036681a73791edaa
parent6e66b321e01c98e673cc59c5f4d982d0f41a2ef0 (diff)
downloadconnman-4663833e70b3a4d0bdc85e17cc0d62e9b79c3456.tar.gz
connman-4663833e70b3a4d0bdc85e17cc0d62e9b79c3456.tar.bz2
connman-4663833e70b3a4d0bdc85e17cc0d62e9b79c3456.zip
Fix broken concept of roaming tracking with MBM devices
-rw-r--r--plugins/mbm.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/plugins/mbm.c b/plugins/mbm.c
index c8e6e950..33616b73 100644
--- a/plugins/mbm.c
+++ b/plugins/mbm.c
@@ -267,18 +267,22 @@ static void creg_update(struct connman_device *device, int status)
{
struct mbm_data *data = connman_device_get_data(device);
- if (data->creg_status != 1 && data->creg_status != 5 &&
- (status == 1 || status == 5)) {
+ if (status != 1 && status != 5)
+ goto done;
+
+ if (data->network != NULL) {
if (status == 5)
connman_network_set_roaming(data->network, TRUE);
else
connman_network_set_roaming(data->network, FALSE);
connman_network_set_group(data->network, data->imsi);
+ }
+ if (data->creg_status != 1 && data->creg_status != 5)
network_ready(device);
- }
+done:
data->creg_status = status;
}