diff options
author | Aki Niemi <aki.niemi@nokia.com> | 2009-09-14 16:21:18 +0300 |
---|---|---|
committer | Aki Niemi <aki.niemi@nokia.com> | 2009-09-14 16:21:18 +0300 |
commit | 69ac9733f425ee02e8475e21cef3e9a448dc836f (patch) | |
tree | c6f7f070d915365588e7cadfba916fabe0920664 | |
parent | a1ca8a9afa7d09285f4f430099abada5b858dc29 (diff) | |
download | ofono-69ac9733f425ee02e8475e21cef3e9a448dc836f.tar.bz2 |
Modify to use the new alpha tag getter
-rw-r--r-- | drivers/isimodem/network-registration.c | 21 |
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); |