Bubble android client. Fork of https://git.zx2c4.com/wireguard-android/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

41 rivejä
1.4 KiB

  1. #include <jni.h>
  2. struct go_string { const char *str; long n; };
  3. extern int wgTurnOn(struct go_string ifname, int tun_fd, struct go_string settings);
  4. extern void wgTurnOff(int handle);
  5. extern int wgGetSocketV4(int handle);
  6. extern int wgGetSocketV6(int handle);
  7. JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOn(JNIEnv *env, jclass c, jstring ifname, jint tun_fd, jstring settings)
  8. {
  9. const char *ifname_str = (*env)->GetStringUTFChars(env, ifname, 0);
  10. size_t ifname_len = (*env)->GetStringUTFLength(env, ifname);
  11. const char *settings_str = (*env)->GetStringUTFChars(env, settings, 0);
  12. size_t settings_len = (*env)->GetStringUTFLength(env, settings);
  13. int ret = wgTurnOn((struct go_string){
  14. .str = ifname_str,
  15. .n = ifname_len
  16. }, tun_fd, (struct go_string){
  17. .str = settings_str,
  18. .n = settings_len
  19. });
  20. (*env)->ReleaseStringUTFChars(env, ifname, ifname_str);
  21. (*env)->ReleaseStringUTFChars(env, settings, settings_str);
  22. return ret;
  23. }
  24. JNIEXPORT void JNICALL Java_com_wireguard_android_backend_GoBackend_wgTurnOff(JNIEnv *env, jclass c, jint handle)
  25. {
  26. wgTurnOff(handle);
  27. }
  28. JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgGetSocketV4(JNIEnv *env, jclass c, jint handle)
  29. {
  30. return wgGetSocketV4(handle);
  31. }
  32. JNIEXPORT jint JNICALL Java_com_wireguard_android_backend_GoBackend_wgGetSocketV6(JNIEnv *env, jclass c, jint handle)
  33. {
  34. return wgGetSocketV6(handle);
  35. }