diff options
author | Sverre Vegge <sverre.vegge@stericsson.com> | 2011-05-06 11:29:47 +0200 |
---|---|---|
committer | Sverre Vegge <sverre.vegge@stericsson.com> | 2011-07-25 09:25:39 +0200 |
commit | 21ddb2911fd857aa6a46d7b75eb6bd28df7e33bd (patch) | |
tree | 09c66846fd605deb562a9d4486416d1468f42aa2 | |
parent | bd37c21809f0eddb0090026f01b45efaf41865a4 (diff) | |
download | u300-21ddb2911fd857aa6a46d7b75eb6bd28df7e33bd.tar.gz |
SIM: Return number of retries in successful SET FACILITY LOCK
RIL should return number of retries left when setting facility
lock "FD" even in successful case.
Signed-off-by: Sverre Vegge <sverre.vegge@stericsson.com>
-rw-r--r-- | u300-ril-sim.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/u300-ril-sim.c b/u300-ril-sim.c index db62443..3edae13 100644 --- a/u300-ril-sim.c +++ b/u300-ril-sim.c @@ -1715,6 +1715,9 @@ void requestSetFacilityLock(void *data, size_t datalen, RIL_Token t) * "AB": all barring services (only unlock mode=0) * "AG": all outgoing barring services (only unlock mode=0) * "AC": all incoming barring services (only unlock mode=0) + * + * Number of retries left is supported for "SC" and "FD" facilities. + * For other facilities number of retries remaining will be -1 (unknown). */ for (i = 0; barr_facilities[i] != NULL; i++) { if (!strncmp(facility_string, barr_facilities[i], 2)) { @@ -1742,7 +1745,6 @@ void requestSetFacilityLock(void *data, size_t datalen, RIL_Token t) /* CME ERROR 11: "SIM PIN required" happens when PIN is wrong */ case CME_SIM_PIN_REQUIRED: LOGI("requestSetFacilityLock(): wrong PIN"); - num_retries = getNumRetries(RIL_REQUEST_ENTER_SIM_PIN); errorril = RIL_E_PASSWORD_INCORRECT; break; /* @@ -1764,7 +1766,6 @@ void requestSetFacilityLock(void *data, size_t datalen, RIL_Token t) /* CME ERROR 17: "SIM PIN2 required" happens when PIN2 is wrong */ case CME_SIM_PIN2_REQUIRED: LOGI("requestSetFacilityLock() wrong PIN2"); - num_retries = getNumRetries(RIL_REQUEST_ENTER_SIM_PIN2); errorril = RIL_E_PASSWORD_INCORRECT; break; /* @@ -1788,8 +1789,10 @@ void requestSetFacilityLock(void *data, size_t datalen, RIL_Token t) errorril = RIL_E_SUCCESS; finally: - if (num_retries == -1 && strncmp(facility_string, "SC", 2) == 0) + if (strncmp(facility_string, "SC", 2) == 0) num_retries = getNumRetries(RIL_REQUEST_ENTER_SIM_PIN); + else if (strncmp(facility_string, "FD", 2) == 0) + num_retries = getNumRetries(RIL_REQUEST_ENTER_SIM_PIN2); exit: at_response_free(atresponse); RIL_onRequestComplete(t, errorril, &num_retries, sizeof(int *)); |