summaryrefslogtreecommitdiff
path: root/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java')
-rw-r--r--main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java
index ec38b7ce..16f7abcf 100644
--- a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java
+++ b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java
@@ -20,9 +20,11 @@ import android.os.Build;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
+import android.os.ParcelFileDescriptor;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
+import java.io.FileDescriptor;
import java.io.IOException;
import java.io.StringReader;
import java.lang.ref.WeakReference;
@@ -209,6 +211,18 @@ public class ExternalOpenVPNService extends Service implements StateListener {
pm.removeProfile(ExternalOpenVPNService.this, vp);
}
+ @Override
+ public boolean protectSocket(ParcelFileDescriptor pfd) throws RemoteException {
+ checkOpenVPNPermission();
+ try {
+ boolean success= mService.protect(pfd.getFd());
+ pfd.close();
+ return success;
+ } catch (IOException e) {
+ throw new RemoteException(e.getMessage());
+ }
+ }
+
@Override
public Intent prepare(String packagename) {