summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java2
-rw-r--r--tunnel/tools/libwg-go/api-android.go10
-rw-r--r--tunnel/tools/libwg-go/jni.c5
3 files changed, 16 insertions, 1 deletions
diff --git a/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java b/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java
index 3d0886cf..b7f9d098 100644
--- a/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java
+++ b/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java
@@ -70,6 +70,8 @@ public final class GoBackend implements Backend {
alwaysOnCallback = cb;
}
+ private static native void wgDHCP(int handle);
+
@Nullable private static native String wgGetConfig(int handle);
private static native int wgGetSocketV4(int handle);
diff --git a/tunnel/tools/libwg-go/api-android.go b/tunnel/tools/libwg-go/api-android.go
index 8e9b1545..3c946471 100644
--- a/tunnel/tools/libwg-go/api-android.go
+++ b/tunnel/tools/libwg-go/api-android.go
@@ -178,11 +178,19 @@ func wgTurnOn(interfaceName string, tunFd int32, settings string) int32 {
handle.uapi = uapi
tunnelHandles[i] = handle
- go handle.startDHCPv6()
+// go handle.startDHCPv6()
return i
}
+func wgDHCP(tunnelHandles int32) {
+ handle, ok := tunnelHandles[tunnelHandle]
+ if !ok {
+ return
+ }
+ handle.startDHCPv6()
+}
+
//export wgTurnOff
func wgTurnOff(tunnelHandle int32) {
handle, ok := tunnelHandles[tunnelHandle]
diff --git a/tunnel/tools/libwg-go/jni.c b/tunnel/tools/libwg-go/jni.c
index 7ad94d35..26a4b8e2 100644
--- a/tunnel/tools/libwg-go/jni.c
+++ b/tunnel/tools/libwg-go/jni.c
@@ -33,6 +33,11 @@ JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOn(JNI
return ret;
}
+JNIEXPORT void JNICALL Java_com_wireguard_android_backend_GoBackend_wgDHCP(JNIEnv *env, jclass c, jint handle)
+{
+ wgDHCP(handle);
+}
+
JNIEXPORT void JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOff(JNIEnv *env, jclass c, jint handle)
{
wgTurnOff(handle);