diff --git a/libs/lpac-jni/src/main/jni/lpac-jni/lpac-download.c b/libs/lpac-jni/src/main/jni/lpac-jni/lpac-download.c index bbc4bec..6e74c8c 100644 --- a/libs/lpac-jni/src/main/jni/lpac-jni/lpac-download.c +++ b/libs/lpac-jni/src/main/jni/lpac-jni/lpac-download.c @@ -94,6 +94,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j ret = es10b_get_euicc_challenge_and_info(ctx); syslog(LOG_INFO, "es10b_get_euicc_challenge_and_info %d", ret); if (ret < 0) { + SET_CANCELLED(JNI_TRUE); ret = -ES10B_ERROR_REASON_UNDEFINED; goto out; } @@ -106,6 +107,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j ret = es9p_initiate_authentication(ctx); syslog(LOG_INFO, "es9p_initiate_authentication %d", ret); if (ret < 0) { + SET_CANCELLED(JNI_TRUE); ret = -ES10B_ERROR_REASON_UNDEFINED; goto out; } @@ -118,6 +120,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j ret = es10b_authenticate_server(ctx, _matching_id, _imei); syslog(LOG_INFO, "es10b_authenticate_server %d", ret); if (ret < 0) { + SET_CANCELLED(JNI_TRUE); ret = -ES10B_ERROR_REASON_UNDEFINED; goto out; } @@ -129,6 +132,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j ret = es9p_authenticate_client(ctx); syslog(LOG_INFO, "es9p_authenticate_client %d", ret); if (ret < 0) { + SET_CANCELLED(JNI_TRUE); ret = -ES10B_ERROR_REASON_UNDEFINED; goto out; } @@ -141,6 +145,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j ret = es10b_prepare_download(ctx, _confirmation_code); syslog(LOG_INFO, "es10b_prepare_download %d", ret); if (ret < 0) { + SET_CANCELLED(JNI_TRUE); ret = -ES10B_ERROR_REASON_UNDEFINED; goto out; } @@ -162,6 +167,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j ret = es10b_load_bound_profile_package(ctx, &es10b_load_bound_profile_package_result); syslog(LOG_INFO, "es10b_load_bound_profile_package %d, reason %d", ret, es10b_load_bound_profile_package_result.errorReason); if (ret < 0) { + SET_CANCELLED(JNI_TRUE); ret = - (int) es10b_load_bound_profile_package_result.errorReason; goto out; } @@ -169,9 +175,6 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j euicc_http_cleanup(ctx); out: - if (ret == -ES10B_ERROR_REASON_UNDEFINED) { - SET_CANCELLED(JNI_TRUE); - } // We expect Java side to call cancelSessions after any error -- thus, `euicc_http_cleanup` is done there // This is so that Java side can access the last HTTP and/or APDU errors when we return. if (_confirmation_code != NULL)