diff options
-rw-r--r-- | drivers/isimodem/debug.c | 2 | ||||
-rw-r--r-- | drivers/isimodem/network-registration.c | 8 | ||||
-rw-r--r-- | drivers/isimodem/network.h | 2 |
3 files changed, 10 insertions, 2 deletions
diff --git a/drivers/isimodem/debug.c b/drivers/isimodem/debug.c index 6fb451fc..b48dd95a 100644 --- a/drivers/isimodem/debug.c +++ b/drivers/isimodem/debug.c @@ -1035,6 +1035,8 @@ const char *net_message_id_name(enum net_message_id value) _(NET_AVAILABLE_GET_RESP); _(NET_OPER_NAME_READ_REQ); _(NET_OPER_NAME_READ_RESP); + _(NET_OLD_OPER_NAME_READ_REQ); + _(NET_OLD_OPER_NAME_READ_RESP); _(NET_COMMON_MESSAGE); } return "NET_<UNKNOWN>"; diff --git a/drivers/isimodem/network-registration.c b/drivers/isimodem/network-registration.c index 56c3bb8f..6e9b184d 100644 --- a/drivers/isimodem/network-registration.c +++ b/drivers/isimodem/network-registration.c @@ -466,7 +466,8 @@ static void name_get_resp_cb(const GIsiMessage *msg, void *data) memset(&op, 0, sizeof(struct ofono_network_operator)); - if (!check_response_status(msg, NET_OPER_NAME_READ_RESP)) + if (!check_response_status(msg, NET_OLD_OPER_NAME_READ_RESP) && + !check_response_status(msg, NET_OPER_NAME_READ_RESP)) goto error; for (g_isi_sb_iter_init(&iter, msg, 6); @@ -513,7 +514,7 @@ static void isi_current_operator(struct ofono_netreg *netreg, struct netreg_data *nd = ofono_netreg_get_data(netreg); struct isi_cb_data *cbd = isi_cb_data_new(netreg, cb, data); - const uint8_t msg[] = { + uint8_t msg[] = { NET_OPER_NAME_READ_REQ, NET_HARDCODED_LATIN_OPER_NAME, OFONO_MAX_OPERATOR_NAME_LENGTH, @@ -525,6 +526,9 @@ static void isi_current_operator(struct ofono_netreg *netreg, if (cbd == NULL || nd == NULL) goto error; + if (nd->version.major < 14) + msg[0] = NET_OLD_OPER_NAME_READ_REQ; + if (g_isi_client_send(nd->client, msg, sizeof(msg), name_get_resp_cb, cbd, g_free)) return; diff --git a/drivers/isimodem/network.h b/drivers/isimodem/network.h index ee1fbf2f..57c92aca 100644 --- a/drivers/isimodem/network.h +++ b/drivers/isimodem/network.h @@ -45,6 +45,8 @@ enum net_message_id { NET_RSSI_IND = 0x1E, NET_CIPHERING_IND = 0x20, NET_TIME_IND = 0x27, + NET_OLD_OPER_NAME_READ_REQ = 0x28, + NET_OLD_OPER_NAME_READ_RESP = 0x29, NET_CHANNEL_INFO_IND = 0x2C, NET_RAT_IND = 0x35, NET_RAT_REQ = 0x36, |