diff options
-rw-r--r-- | openvpn/Android.mk | 22 | ||||
-rw-r--r-- | openvpn/src/openvpn/jniglue.c | 4 | ||||
-rw-r--r-- | src/de/blinkt/openvpn/OpenVpnManagementThread.java | 13 |
3 files changed, 36 insertions, 3 deletions
diff --git a/openvpn/Android.mk b/openvpn/Android.mk index 7884970..ca15c71 100644 --- a/openvpn/Android.mk +++ b/openvpn/Android.mk @@ -88,5 +88,25 @@ LOCAL_SRC_FILES:= src/openvpn/jniglue.c \ src/openvpn/status.c \ src/openvpn/tun.c -#include $(BUILD_SHARED_LIBRARY) +include $(BUILD_SHARED_LIBRARY) +#include $(BUILD_EXECUTABLE) + + +include $(CLEAR_VARS) + +LOCAL_LDLIBS := -llog +LOCAL_SRC_FILES:= src/openvpn/jniglue.c +LOCAL_MODULE = opvpnutil +include $(BUILD_SHARED_LIBRARY) + + +include $(CLEAR_VARS) + + +LOCAL_LDLIBS := -llog +LOCAL_SRC_FILES:= src/openvpn/testmain.c +LOCAL_MODULE = minivpn +LOCAL_SHARED_LIBRARIES=openvpn include $(BUILD_EXECUTABLE) + + diff --git a/openvpn/src/openvpn/jniglue.c b/openvpn/src/openvpn/jniglue.c index c79272d..b28acba 100644 --- a/openvpn/src/openvpn/jniglue.c +++ b/openvpn/src/openvpn/jniglue.c @@ -16,3 +16,7 @@ void android_openvpn_log(int level,const char* prefix,const char* prefix_sep,con __android_log_print(ANDROID_LOG_DEBUG,"openvpn","%s%s%s",prefix,prefix_sep,m1); } +void Java_de_blinkt_openvpn_OpenVpnManagementThread_jniclose(JNIEnv *env,jobject jo, jint fd) { + int ret = close(fd); + __android_log_print(ANDROID_LOG_DEBUG,"openvpn","fd close %d %d",fd,ret); +} diff --git a/src/de/blinkt/openvpn/OpenVpnManagementThread.java b/src/de/blinkt/openvpn/OpenVpnManagementThread.java index 31ea49e..fb08898 100644 --- a/src/de/blinkt/openvpn/OpenVpnManagementThread.java +++ b/src/de/blinkt/openvpn/OpenVpnManagementThread.java @@ -28,6 +28,9 @@ public class OpenVpnManagementThread implements Runnable { mOpenVPNService = openVpnService;
}
+ static {
+ System.loadLibrary("opvpnutil");
+ }
public void managmentCommand(String cmd) {
Log.d("openvpn", "mgmt cmd" + mSocket + " " +cmd + " " );
@@ -100,10 +103,11 @@ public class OpenVpnManagementThread implements Runnable { Log.d("Openvpn", "Got FD from socket: " + fd + " " + fdint);
- mOpenVPNService.protect(fdint);
+ //mOpenVPNService.protect(fdint);
//ParcelFileDescriptor pfd = ParcelFileDescriptor.fromFd(fdint);
//pfd.close();
+ jniclose(fdint);
return;
} catch (NoSuchMethodException e) {
e.printStackTrace();
@@ -237,7 +241,8 @@ public class OpenVpnManagementThread implements Runnable { // Set the FileDescriptor to null to stop this mad behavior
mSocket.setFileDescriptorsForSend(null);
- pfd.close();
+
+ pfd.close();
return true;
} catch (NoSuchMethodException e) {
@@ -255,6 +260,10 @@ public class OpenVpnManagementThread implements Runnable { }
+ private native void jniclose(int fdint);
+
+
+
private void processPWCommand(String argument) {
//argument has the form Need 'Private Key' password
int p1 =argument.indexOf('\'');
|