aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSverre Vegge <sverre.vegge@stericsson.com>2011-05-06 11:29:47 +0200
committerSverre Vegge <sverre.vegge@stericsson.com>2011-07-25 09:25:39 +0200
commit21ddb2911fd857aa6a46d7b75eb6bd28df7e33bd (patch)
tree09c66846fd605deb562a9d4486416d1468f42aa2
parentbd37c21809f0eddb0090026f01b45efaf41865a4 (diff)
downloadu300-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.c9
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 *));