From 96d9e4977b7fb3b4689ee0a587d749a05589cce2 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 7 Mar 2016 14:37:01 -0800 Subject: [PATCH] Update to ENet API to support IPv6 --- app/libs/limelight-common.jar | Bin 1012992 -> 1012993 bytes app/src/main/jni/jnienet/enet | 2 +- app/src/main/jni/jnienet/jnienet.c | 22 +++++++++++++++++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/libs/limelight-common.jar b/app/libs/limelight-common.jar index 9b6aa290bf80134fda2850c756fc1955f1f99747..7a5a3f6705f702cbfcd8532c04b47272d71e1287 100644 GIT binary patch delta 2318 zcmYk7X*iT^8^_%@Ge(ws%2HV>!lSW;6cs8v$=+))mPeMcjAitAOc+ZS=d)luQ_P@G$Ye5IGr(qM)=MHXxe49m>=hVN=@ zOETud%qzdU{R#X&tMm4G@lT7V50j-CF|U|!o-!Y)&k%TeeL8ATeRbC;DU?#-+)ZIW zQ2e>bP&_(vWG$~q7Oeigu z5gH!I?PG`savehHEi(&a(gV)ezU9TUSH!mZ+c>R0&%JN3M#2qc3JcT23bS1#{jmCi z@}0ByUCT(UKgyVMdBI`*+`um`_5oRcS>vy zJ!2y<^dRg8w<|`m+ST!1mz&oO;wU5Kop7<8tm$fr{AZ!EjyXJ`W)VpnxYEpQcc zEjaU|b%E$NA7grulmT|1`%$>iR;4of4N{Fs2zBFQ##LEE9 zrYLQ%&a_bV{yRh-el0O3P=BG*JISFkP-vqC_aS)mfOZ_*LFi^NaX&j}OrkheI|%HW z3tavA`s|4%ul=*$chA|kKdDZP!-TkvlS3Lt3Ow!=T|##rxRQ+auUB5IU_F*K8s%7M z_k1s%|IxMd*e!YMb0#8+F(efK*NI;`ZyO(Yrc4D){Vtsab zJED4{`KIwHQc-q6WXfADV!cMl;PJey{glB!MTVDeuYVDpA!s|0i`=Hw zi=6X_2}*jH&uKM_#`DP+?c*o1hYY*9lvmwY)EBAMlNIt!%{nqx4biDv`qa%2>)NVc zi6}>!NH(coMmeG1@HW&lSlsg!lVcTk`b!W#*V5p}L^xcii~5!(>w5|N`6f2E#Va&C zvskbrfz~Aw>a5AFL2Dh7c&+28*3WN_wQFp{e5ilNZ=y%19qoCLaGtTCIy`N7LwP-o zx_WKdTs2vDQ#d#__V3lH&-(2TKKlo?@#c|u_F`$5o56#D z*HiK~`4?gr=i6qVq*EQvcjcrFOY5XLQpJUu1`f4PN+rcothY2%#w;io=h)^gPqE&Q z7^bYr-jsd$%yvpvWPq=FQCTaxq)fQ9#F8>*OZgcHM)bbo?7#l5-tgh40dlrVZu&of zaDQH;sY=CsUIM9tF+^y9+lMxV_0tvZ%;kMSM}3l1LJi-Z=V`OGw|PICX>I>`{q$nm z)L%5Sqi%A~Zm#2cj%$f5ztIYzOhp&!JA_j<>=P4K66-ALHbu;gIWgsy;Pw$T8ym6Ad zNN+zM@+leozdsDQLnIKzq5~%m@64cUvc%wOcL)bkmVP;y!vj(Sx4-XY`<+~}_AAq; z*ZAO8TL=sHdO*V9$j@H|n1=|R2HVA8B`@d*{3j7o1-r#}14aUnfIkqCIUSOF1`Dfr zB5N}K*fp`9kQS&Qw;QHCAp_tue9{YY2d9*FoE+TZ1)T)Bb$7yH80!rgfR8Wl1tB=j z8!21b?HVU{fEyn3hR%ac4toX-Z#n=1u$d2X4&cu{%?W4tKstaNJmCX5gVUaS1#Z}b z1f2zKNxKFaiG?4K0DgF!gmkD5_)TvG06cJ}FS5Yg7rB&#pxqiH2spT-aiB6~uPqw( zrXYHIN1KG~YLY*60KV!6odGAPznSVC6A}HJIpU98*%WQh7=g#=dw~lk&;dSp)*tDt znX;=D1E7n*ci2AwB7n!A?Yfx&NE@83g2Ty>5G+y+V0Yj18W|D>9AGLLG6e$QZZfj* kG`v3$x&$b|R)Nq3fD^tK2x$UjxIYk*MweJaY;0`*0&OG;g8%>k delta 2396 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 HCZ>M?V)`Q3 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);