diff --git a/app/libs/limelight-common.jar b/app/libs/limelight-common.jar index 9b6aa290..7a5a3f67 100644 Binary files a/app/libs/limelight-common.jar and b/app/libs/limelight-common.jar differ diff --git a/app/src/main/jni/jnienet/enet b/app/src/main/jni/jnienet/enet index 4f7ef11c..8b24595d 160000 --- a/app/src/main/jni/jnienet/enet +++ b/app/src/main/jni/jnienet/enet @@ -1 +1 @@ -Subproject commit 4f7ef11c2352dc53539d1ff93887ef637a6c2e2f +Subproject commit 8b24595dbd9ad0a026edf2047b4d1eaceaf09123 diff --git a/app/src/main/jni/jnienet/jnienet.c b/app/src/main/jni/jnienet/jnienet.c index 55d91423..d6d72d22 100644 --- a/app/src/main/jni/jnienet/jnienet.c +++ b/app/src/main/jni/jnienet/jnienet.c @@ -15,9 +15,21 @@ Java_com_limelight_nvstream_enet_EnetConnection_initializeEnet(JNIEnv *env, jobj } JNIEXPORT jlong JNICALL -Java_com_limelight_nvstream_enet_EnetConnection_createClient(JNIEnv *env, jobject class) { +Java_com_limelight_nvstream_enet_EnetConnection_createClient(JNIEnv *env, jobject class, jstring address) { + ENetAddress enetAddress; + const char *addrStr; + int err; + + // Perform a lookup on the address to determine the address family + addrStr = (*env)->GetStringUTFChars(env, address, 0); + err = enet_address_set_host(&enetAddress, addrStr); + (*env)->ReleaseStringUTFChars(env, address, addrStr); + if (err < 0) { + return CLIENT_TO_LONG(NULL); + } + // Create a client that can use 1 outgoing connection and 1 channel - return CLIENT_TO_LONG(enet_host_create(NULL, 1, 1, 0, 0)); + return CLIENT_TO_LONG(enet_host_create(enetAddress.address.ss_family, NULL, 1, 1, 0, 0)); } JNIEXPORT jlong JNICALL @@ -26,12 +38,16 @@ Java_com_limelight_nvstream_enet_EnetConnection_connectToPeer(JNIEnv *env, jobje ENetAddress enetAddress; ENetEvent event; const char *addrStr; + int err; // Initialize the ENet address addrStr = (*env)->GetStringUTFChars(env, address, 0); - enet_address_set_host(&enetAddress, addrStr); + err = enet_address_set_host(&enetAddress, addrStr); enet_address_set_port(&enetAddress, port); (*env)->ReleaseStringUTFChars(env, address, addrStr); + if (err < 0) { + return PEER_TO_LONG(NULL); + } // Start the connection peer = enet_host_connect(LONG_TO_CLIENT(client), &enetAddress, 1, 0);