summaryrefslogtreecommitdiffstats
path: root/drivers/isimodem/network-registration.c
diff options
context:
space:
mode:
authorAki Niemi <aki.niemi@nokia.com>2009-09-14 16:21:18 +0300
committerAki Niemi <aki.niemi@nokia.com>2009-09-14 16:21:18 +0300
commit69ac9733f425ee02e8475e21cef3e9a448dc836f (patch)
treec6f7f070d915365588e7cadfba916fabe0920664 /drivers/isimodem/network-registration.c
parenta1ca8a9afa7d09285f4f430099abada5b858dc29 (diff)
downloadofono-69ac9733f425ee02e8475e21cef3e9a448dc836f.tar.bz2
Modify to use the new alpha tag getter
Diffstat (limited to 'drivers/isimodem/network-registration.c')
-rw-r--r--drivers/isimodem/network-registration.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/drivers/isimodem/network-registration.c b/drivers/isimodem/network-registration.c
index f543f628..85b34c32 100644
--- a/drivers/isimodem/network-registration.c
+++ b/drivers/isimodem/network-registration.c
@@ -396,6 +396,8 @@ static bool name_get_resp_cb(GIsiClient *client, const void *restrict data,
struct ofono_network_operator op;
GIsiSubBlockIter iter;
+ DBG("");
+
if (!msg) {
DBG("ISI client error: %d", g_isi_client_error(client));
goto error;
@@ -427,11 +429,16 @@ static bool name_get_resp_cb(GIsiClient *client, const void *restrict data,
case NET_OPER_NAME_INFO: {
char *tag = NULL;
+ guint8 taglen = 0;
if (g_isi_sb_iter_get_len(&iter) < 4)
goto error;
- if (!g_isi_sb_iter_get_alpha_tag(&iter, &tag, 3))
+ if (!g_isi_sb_iter_get_byte(&iter, &taglen, 3))
+ goto error;
+
+ if (!g_isi_sb_iter_get_alpha_tag(&iter, &tag,
+ taglen * 2, 4))
goto error;
strncpy(op.name, tag, OFONO_MAX_OPERATOR_NAME_LENGTH);
@@ -534,17 +541,25 @@ static bool available_resp_cb(GIsiClient *client, const void *restrict data,
struct ofono_network_operator *op;
char *tag = NULL;
+ guint8 taglen = 0;
guint8 status = 0;
if (g_isi_sb_iter_get_len(&iter) < 12)
goto error;
op = list + common++;
- if (!g_isi_sb_iter_get_byte(&iter, &status, 2) ||
- !g_isi_sb_iter_get_alpha_tag(&iter, &tag, 5))
+ if (!g_isi_sb_iter_get_byte(&iter, &status, 2))
goto error;
op->status = status;
+
+ if (!g_isi_sb_iter_get_byte(&iter, &taglen, 5))
+ goto error;
+
+ if (!g_isi_sb_iter_get_alpha_tag(&iter, &tag,
+ taglen * 2, 6))
+ goto error;
+
strncpy(op->name, tag, OFONO_MAX_OPERATOR_NAME_LENGTH);
op->name[OFONO_MAX_OPERATOR_NAME_LENGTH] = '\0';
g_free(tag);