Compare commits
1 commit
69dacb8024
...
fc3d3fe3b2
Author | SHA1 | Date | |
---|---|---|---|
fc3d3fe3b2 |
6 changed files with 16 additions and 13 deletions
|
@ -26,7 +26,7 @@ interface HttpInterface {
|
|||
}
|
||||
}
|
||||
|
||||
fun transmit(url: String, tx: ByteArray, headers: List<String>): HttpResponse
|
||||
fun transmit(url: String, tx: ByteArray, headers: Array<String>): HttpResponse
|
||||
// The LPA is supposed to pass in a list of pkIds supported by the eUICC.
|
||||
// HttpInterface is responsible for providing TrustManager implementations that
|
||||
// validate based on certificates corresponding to these pkIds
|
||||
|
|
|
@ -26,7 +26,7 @@ class HttpInterfaceImpl(
|
|||
override fun transmit(
|
||||
url: String,
|
||||
tx: ByteArray,
|
||||
headers: List<String>
|
||||
headers: Array<String>
|
||||
): HttpInterface.HttpResponse {
|
||||
Log.d(TAG, "transmit(url = $url)")
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ class LocalProfileAssistantImpl(
|
|||
*/
|
||||
var lastHttpException: Exception? = null
|
||||
|
||||
override fun transmit(url: String, tx: ByteArray, headers: List<String>): HttpResponse =
|
||||
override fun transmit(url: String, tx: ByteArray, headers: Array<String>): HttpResponse =
|
||||
try {
|
||||
httpInterface.transmit(url, tx, headers).also {
|
||||
lastHttpException = null
|
||||
|
|
|
@ -26,7 +26,7 @@ void interface_wrapper_init(JNIEnv *env) {
|
|||
|
||||
jclass http_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/HttpInterface");
|
||||
method_http_transmit = (*env)->GetMethodID(env, http_class, "transmit",
|
||||
"(Ljava/lang/String;[BLjava/util/List;)Lnet/typeblog/lpac_jni/HttpInterface$HttpResponse;");
|
||||
"(Ljava/lang/String;[B[Ljava/lang/String;)Lnet/typeblog/lpac_jni/HttpInterface$HttpResponse;");
|
||||
|
||||
jclass resp_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/HttpInterface$HttpResponse");
|
||||
field_resp_rcode = (*env)->GetFieldID(env, resp_class, "rcode", "I");
|
||||
|
@ -95,18 +95,19 @@ http_interface_transmit(struct euicc_ctx *ctx, const char *url, uint32_t *rcode,
|
|||
jbyteArray txArr = (*env)->NewByteArray(env, (jsize) tx_len);
|
||||
(*env)->SetByteArrayRegion(env, txArr, 0, (jsize) tx_len, (const jbyte *) tx);
|
||||
|
||||
jobject header_list = new_array_list(env);
|
||||
jclass header_list_class = (*env)->GetObjectClass(env, header_list);
|
||||
jmethodID add_header = (*env)->GetMethodID(env, header_list_class, "add", "(Ljava/lang/Object;)Z");
|
||||
|
||||
for (int i = 0; headers[i] != NULL; i++) {
|
||||
int num_headers = 0;
|
||||
while (headers[num_headers] != NULL) {
|
||||
num_headers++;
|
||||
}
|
||||
jobjectArray headersArr = (*env)->NewObjectArray(env, num_headers, string_class, NULL);
|
||||
for (int i = 0; i < num_headers; i++) {
|
||||
jstring header = toJString(env, headers[i]);
|
||||
(*env)->CallBooleanMethod(env, header_list, add_header, header);
|
||||
(*env)->SetObjectArrayElement(env, headersArr, i, header);
|
||||
(*env)->DeleteLocalRef(env, header);
|
||||
}
|
||||
|
||||
jobject ret = (*env)->CallObjectMethod(env, LPAC_JNI_CTX(ctx)->http_interface,
|
||||
method_http_transmit, jurl, txArr, header_list);
|
||||
method_http_transmit, jurl, txArr, headersArr);
|
||||
LPAC_JNI_EXCEPTION_RETURN;
|
||||
*rcode = (*env)->GetIntField(env, ret, field_resp_rcode);
|
||||
jbyteArray rxArr = (jbyteArray) (*env)->GetObjectField(env, ret, field_resp_data);
|
||||
|
@ -115,7 +116,7 @@ http_interface_transmit(struct euicc_ctx *ctx, const char *url, uint32_t *rcode,
|
|||
(*env)->GetByteArrayRegion(env, rxArr, 0, (jsize) *rx_len, (jbyte *) *rx);
|
||||
(*env)->DeleteLocalRef(env, txArr);
|
||||
(*env)->DeleteLocalRef(env, rxArr);
|
||||
(*env)->DeleteLocalRef(env, header_list);
|
||||
(*env)->DeleteLocalRef(env, headersArr);
|
||||
(*env)->DeleteLocalRef(env, ret);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ static jclass version_class;
|
|||
static jmethodID version_constructor;
|
||||
|
||||
static jstring empty_string;
|
||||
static jclass string_class;
|
||||
jclass string_class;
|
||||
static jmethodID string_constructor;
|
||||
|
||||
jobject bind_static_field(JNIEnv *env, jclass clazz, const char *name, const char *sig) {
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#define HASH_SET_CLASS "java/util/HashSet"
|
||||
#define ARRAY_LIST_CLASS "java/util/ArrayList"
|
||||
|
||||
jclass string_class;
|
||||
|
||||
void lpac_convertor_init(JNIEnv *env);
|
||||
|
||||
jstring toJString(JNIEnv *env, const char *pat);
|
||||
|
|
Loading…
Add table
Reference in a new issue