aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-modem-helpers.c20
-rw-r--r--src/mm-modem-helpers.h9
-rw-r--r--src/tests/test-modem-helpers.c8
3 files changed, 25 insertions, 12 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index 30dc54bb..78b0b818 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -888,17 +888,19 @@ mm_create_device_identifier (guint vid,
struct CindResponse {
char *desc;
+ gint idx;
gint min;
gint max;
};
static CindResponse *
-cind_response_new (const char *desc, gint min, gint max)
+cind_response_new (const char *desc, gint idx, gint min, gint max)
{
CindResponse *r;
char *p;
g_return_val_if_fail (desc != NULL, NULL);
+ g_return_val_if_fail (idx >= 0, NULL);
r = g_malloc0 (sizeof (CindResponse));
@@ -910,6 +912,7 @@ cind_response_new (const char *desc, gint min, gint max)
desc++;
}
+ r->idx = idx;
r->max = max;
r->min = min;
return r;
@@ -934,9 +937,17 @@ cind_response_get_desc (CindResponse *r)
}
gint
+cind_response_get_index (CindResponse *r)
+{
+ g_return_val_if_fail (r != NULL, -1);
+
+ return r->idx;
+}
+
+gint
cind_response_get_min (CindResponse *r)
{
- g_return_val_if_fail (r != NULL, 0);
+ g_return_val_if_fail (r != NULL, -1);
return r->min;
}
@@ -944,7 +955,7 @@ cind_response_get_min (CindResponse *r)
gint
cind_response_get_max (CindResponse *r)
{
- g_return_val_if_fail (r != NULL, 0);
+ g_return_val_if_fail (r != NULL, -1);
return r->max;
}
@@ -957,6 +968,7 @@ mm_parse_cind_response (const char *reply, GError **error)
GHashTable *hash;
GRegex *r;
GMatchInfo *match_info;
+ gint idx = 0;
g_return_val_if_fail (reply != NULL, NULL);
@@ -992,7 +1004,7 @@ mm_parse_cind_response (const char *reply, GError **error)
max = atoi (tmp);
g_free (tmp);
- resp = cind_response_new (desc, min, max);
+ resp = cind_response_new (desc, idx++, min, max);
if (resp)
g_hash_table_insert (hash, g_strdup (resp->desc), resp);
diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h
index 21f174a2..ed3ada0f 100644
--- a/src/mm-modem-helpers.h
+++ b/src/mm-modem-helpers.h
@@ -70,10 +70,11 @@ char *mm_create_device_identifier (guint vid,
gboolean debug);
typedef struct CindResponse CindResponse;
-GHashTable *mm_parse_cind_response (const char *reply, GError **error);
-const char *cind_response_get_desc (CindResponse *r);
-gint cind_response_get_min (CindResponse *r);
-gint cind_response_get_max (CindResponse *r);
+GHashTable *mm_parse_cind_response (const char *reply, GError **error);
+const char *cind_response_get_desc (CindResponse *r);
+gint cind_response_get_index (CindResponse *r);
+gint cind_response_get_min (CindResponse *r);
+gint cind_response_get_max (CindResponse *r);
#endif /* MM_MODEM_HELPERS_H */
diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c
index db18b25d..5627416a 100644
--- a/src/tests/test-modem-helpers.c
+++ b/src/tests/test-modem-helpers.c
@@ -1103,13 +1103,13 @@ test_cind_results (const char *desc,
for (i = 0; i < expected_results_len; i++) {
CindEntry *expected = &expected_results[i];
- CindEntry *compare;
+ CindResponse *compare;
compare = g_hash_table_lookup (results, expected->desc);
g_assert (compare);
-
- g_assert_cmpint (expected->min, ==, compare->min);
- g_assert_cmpint (expected->max, ==, compare->max);
+ g_assert_cmpint (i, ==, cind_response_get_index (compare));
+ g_assert_cmpint (expected->min, ==, cind_response_get_min (compare));
+ g_assert_cmpint (expected->max, ==, cind_response_get_max (compare));
}
g_hash_table_destroy (results);