modem-helpers: fix handling split PDP context ID reporting in CGDCONT=? response
Cinterion PHS8-US devices send split PDP context ID like "(1-17,101-112)" and that caused the modem-helpers to choke.
This commit is contained in:
@@ -876,7 +876,7 @@ mm_3gpp_parse_cgdcont_test_response (const gchar *response,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
r = g_regex_new ("\\+CGDCONT:\\s*\\(\\s*(\\d+)\\s*-?\\s*(\\d+)?\\s*\\)\\s*,\\s*\\(?\"(\\S+)\"",
|
||||
r = g_regex_new ("\\+CGDCONT:\\s*\\(\\s*(\\d+)\\s*-?\\s*(\\d+)?[^\\)]*\\)\\s*,\\s*\\(?\"(\\S+)\"",
|
||||
G_REGEX_DOLLAR_ENDONLY | G_REGEX_RAW,
|
||||
0, &inner_error);
|
||||
g_assert (r != NULL);
|
||||
|
@@ -1831,6 +1831,21 @@ test_cgdcont_test_response_thuraya (void *f, gpointer d)
|
||||
test_cgdcont_test_results ("Thuraya", reply, &expected[0], G_N_ELEMENTS (expected));
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_cgdcont_test_response_cinterion_phs8 (void *f, gpointer d)
|
||||
{
|
||||
const gchar *reply =
|
||||
"+CGDCONT: (1-17,101-116),\"IP\",,,(0),(0-4)\r\n";
|
||||
static MM3gppPdpContextFormat expected[] = {
|
||||
{ 1, 17, MM_BEARER_IP_FAMILY_IPV4 }
|
||||
};
|
||||
|
||||
test_cgdcont_test_results ("Cinterion PHS8-USA REVISION 03.001", reply, &expected[0], G_N_ELEMENTS (expected));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Test CGDCONT read responses */
|
||||
|
||||
@@ -2862,6 +2877,7 @@ int main (int argc, char **argv)
|
||||
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_multiple_and_ignore, NULL));
|
||||
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_single_context, NULL));
|
||||
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_thuraya, NULL));
|
||||
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_cinterion_phs8, NULL));
|
||||
|
||||
g_test_suite_add (suite, TESTCASE (test_cgdcont_read_response_nokia, NULL));
|
||||
g_test_suite_add (suite, TESTCASE (test_cgdcont_read_response_samsung, NULL));
|
||||
|
Reference in New Issue
Block a user