Fixes BMC#24432
---
plugins/ofono.c | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/plugins/ofono.c b/plugins/ofono.c
index 4ee44a9..ac186ca 100644
--- a/plugins/ofono.c
+++ b/plugins/ofono.c
@@ -262,7 +262,8 @@ static void set_disconnected(struct modem_data *modem)
{
DBG("%s", modem->path);
- connman_network_set_connected(modem->network, FALSE);
+ if (modem->network != NULL)
+ connman_network_set_connected(modem->network, FALSE);
}
typedef void (*set_property_cb)(struct modem_data *data,
@@ -567,6 +568,20 @@ static int cdma_cm_shutdown(struct modem_data *modem)
return err;
}
+static void remove_network(struct modem_data *modem)
+{
+ DBG("%s", modem->path);
+
+ if (modem->network == NULL || modem->device == NULL)
+ return;
+
+ DBG("network %p", modem->network);
+
+ connman_device_remove_network(modem->device, modem->network);
+ connman_network_unref(modem->network);
+ modem->network = NULL;
+}
+
static void modem_set_online_reply(struct modem_data *modem,
connman_bool_t success)
{
@@ -577,6 +592,8 @@ static void modem_set_online_reply(struct modem_data *modem,
* Don't handle do anything on success here. oFono will send
* the change via PropertyChanged singal.
*/
+ if (modem->set_online == FALSE)
+ remove_network(modem);
return;
}
--
1.7.2.2
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman