From 58c8a33adfac432867230aa6ff0cb6f9e2afa680 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 8 Dec 2009 17:19:40 -0600 Subject: Fix: Reset active contexts if gprs is detached When we lose network registration or are forcefully detached from the network we must reset all active contexts to inactive. --- src/gprs.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src') diff --git a/src/gprs.c b/src/gprs.c index 142b819f..8819ba4d 100644 --- a/src/gprs.c +++ b/src/gprs.c @@ -901,6 +901,27 @@ static void gprs_attached_update(struct ofono_gprs *gprs) gprs->attached = attached; + if (gprs->attached == FALSE) { + GSList *l; + struct pri_context *ctx; + + for (l = gprs->contexts; l; l = l->next) { + ctx = l->data; + + if (ctx->active == FALSE) + continue; + + ctx->active = FALSE; + pri_reset_context_settings(ctx); + + value = FALSE; + ofono_dbus_signal_property_changed(conn, ctx->path, + DATA_CONTEXT_INTERFACE, + "Active", DBUS_TYPE_BOOLEAN, + &value); + } + } + path = __ofono_atom_get_path(gprs->atom); value = attached; ofono_dbus_signal_property_changed(conn, path, -- cgit v1.2.3