diff options
Diffstat (limited to 'tunnel/tools/libwg-go/jni.c')
-rw-r--r-- | tunnel/tools/libwg-go/jni.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/tunnel/tools/libwg-go/jni.c b/tunnel/tools/libwg-go/jni.c index 3897b2b7..3660e96a 100644 --- a/tunnel/tools/libwg-go/jni.c +++ b/tunnel/tools/libwg-go/jni.c @@ -13,7 +13,7 @@ struct go_string { const char *str; long n; }; extern int wgTurnOn(struct go_string ifname, int tun_fd, struct go_string settings, void *eventHandler); -extern int wgTurnOnDhcp(struct go_string ifname, struct go_string settings, void *eventHandler); +extern int wgTurnOnDhcp(struct go_string ifname, struct go_string lladdr, struct go_string settings, void *eventHandler); extern void wgSetFd(int handle, int tun_fd); extern void *wgTurnOff(int handle); extern int wgGetSocketV4(int handle); @@ -72,10 +72,12 @@ JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOn(JNI return ret; } -JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOnDhcp(JNIEnv *env, jclass c, jstring ifname, jstring settings, jobject eventHandler) +JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOnDhcp(JNIEnv *env, jclass c, jstring ifname, jstring lladdr, jstring settings, jobject eventHandler) { const char *ifname_str = (*env)->GetStringUTFChars(env, ifname, 0); size_t ifname_len = (*env)->GetStringUTFLength(env, ifname); + const char *lladdr_str = (*env)->GetStringUTFChars(env, lladdr, 0); + size_t lladdr_len = (*env)->GetStringUTFLength(env, lladdr); const char *settings_str = (*env)->GetStringUTFChars(env, settings, 0); size_t settings_len = (*env)->GetStringUTFLength(env, settings); jobject event_handler = (*env)->NewGlobalRef(env, eventHandler); @@ -83,10 +85,14 @@ JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOnDhcp .str = ifname_str, .n = ifname_len }, (struct go_string){ + .str = lladdr_str, + .n = lladdr_len + }, (struct go_string){ .str = settings_str, .n = settings_len }, event_handler); (*env)->ReleaseStringUTFChars(env, ifname, ifname_str); + (*env)->ReleaseStringUTFChars(env, lladdr, lladdr_str); (*env)->ReleaseStringUTFChars(env, settings, settings_str); return ret; } |