From: Richard Röjfors <[email protected]>
When a context gets activated we read its settings, but
if the context gets deactivated during this time we should
not indicate that the context is activated when the settings
are received.
---
drivers/atmodem/gprs.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/atmodem/gprs.c b/drivers/atmodem/gprs.c
index d3fd893c..dd734585 100644
--- a/drivers/atmodem/gprs.c
+++ b/drivers/atmodem/gprs.c
@@ -161,6 +161,11 @@ static void at_cgdcont_read_cb(gboolean ok, GAtResult
*result,
return;
}
+ if (gd->last_auto_context_id == 0) {
+ DBG("Context got deactivated while calling CGDCONT");
+ return;
+ }
+
g_at_result_iter_init(&iter, result);
while (g_at_result_iter_next(&iter, "+CGDCONT:")) {
@@ -251,6 +256,12 @@ static void cgev_notify(GAtResult *result, gpointer
user_data)
g_at_chat_send(gd->chat, "AT+CGDCONT?", cgdcont_prefix,
at_cgdcont_read_cb, gprs, NULL);
+ } else if (g_str_has_prefix(event, "ME PDN DEACT")) {
+ unsigned int context_id;
+ sscanf(event, "%*s %*s %*s %u", &context_id);
+ /* Indicate that this cid is not activated anymore */
+ if (gd->last_auto_context_id == context_id)
+ gd->last_auto_context_id = 0;
}
}
--
2.20.1
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono