xmm7modem returns 0 as cid for default pdp context. Thus
initializing last_auto_context_id to -1 to indicate a deactivated
context.
---
drivers/atmodem/gprs.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/atmodem/gprs.c b/drivers/atmodem/gprs.c
index dd73458..fbee5c9 100644
--- a/drivers/atmodem/gprs.c
+++ b/drivers/atmodem/gprs.c
@@ -48,7 +48,7 @@ static const char *none_prefix[] = { NULL };
struct gprs_data {
GAtChat *chat;
unsigned int vendor;
- unsigned int last_auto_context_id;
+ int last_auto_context_id;
gboolean telit_try_reattach;
int attached;
};
@@ -161,7 +161,7 @@ static void at_cgdcont_read_cb(gboolean ok, GAtResult
*result,
return;
}
- if (gd->last_auto_context_id == 0) {
+ if (gd->last_auto_context_id == -1) {
DBG("Context got deactivated while calling CGDCONT");
return;
}
@@ -257,11 +257,11 @@ 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;
+ 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;
+ gd->last_auto_context_id = -1;
}
}
@@ -632,6 +632,7 @@ static int at_gprs_probe(struct ofono_gprs *gprs,
gd->chat = g_at_chat_clone(chat);
gd->vendor = vendor;
+ gd->last_auto_context_id = -1;
ofono_gprs_set_data(gprs, gd);
--
1.9.1
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono