From 62dbeca7323e74d4e08a08a878f429ad0a050616 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 23 May 2018 03:52:26 +0200 Subject: libwg-go: use gopath Signed-off-by: Jason A. Donenfeld --- .../libwg-go/src/git.zx2c4.com/wireguard-go/jni.c | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 app/tools/libwg-go/src/git.zx2c4.com/wireguard-go/jni.c (limited to 'app/tools/libwg-go/src/git.zx2c4.com/wireguard-go/jni.c') diff --git a/app/tools/libwg-go/src/git.zx2c4.com/wireguard-go/jni.c b/app/tools/libwg-go/src/git.zx2c4.com/wireguard-go/jni.c new file mode 100644 index 00000000..a0f3d0ba --- /dev/null +++ b/app/tools/libwg-go/src/git.zx2c4.com/wireguard-go/jni.c @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later + * + * Copyright © 2017-2018 Jason A. Donenfeld . All Rights Reserved. + */ + +#include + +struct go_string { const char *str; long n; }; +extern int wgTurnOn(struct go_string ifname, int tun_fd, struct go_string settings); +extern void wgTurnOff(int handle); +extern int wgGetSocketV4(int handle); +extern int wgGetSocketV6(int handle); + +JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOn(JNIEnv *env, jclass c, jstring ifname, jint tun_fd, jstring settings) +{ + const char *ifname_str = (*env)->GetStringUTFChars(env, ifname, 0); + size_t ifname_len = (*env)->GetStringUTFLength(env, ifname); + const char *settings_str = (*env)->GetStringUTFChars(env, settings, 0); + size_t settings_len = (*env)->GetStringUTFLength(env, settings); + int ret = wgTurnOn((struct go_string){ + .str = ifname_str, + .n = ifname_len + }, tun_fd, (struct go_string){ + .str = settings_str, + .n = settings_len + }); + (*env)->ReleaseStringUTFChars(env, ifname, ifname_str); + (*env)->ReleaseStringUTFChars(env, settings, settings_str); + return ret; +} + +JNIEXPORT void JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOff(JNIEnv *env, jclass c, jint handle) +{ + wgTurnOff(handle); +} + +JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgGetSocketV4(JNIEnv *env, jclass c, jint handle) +{ + return wgGetSocketV4(handle); +} + +JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgGetSocketV6(JNIEnv *env, jclass c, jint handle) +{ + return wgGetSocketV6(handle); +} -- cgit v1.2.3-59-g8ed1b