Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80979409 authored by takuo's avatar takuo
Browse files

OpenVPN device(tun/tap) can be selectable.

parent 4bc3cef7
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -66,7 +66,11 @@ class OpenvpnService extends VpnService<OpenvpnProfile> {

        args.add(OPENVPN_DAEMON);
        args.add("--dev");
        if (p.getDevice() != null) {
            args.add(p.getDevice());
        } else {
            args.add("tun");
        }
        args.add("--remote");
        args.add(serverIp);
        args.add("--nobind");
+26 −0
Original line number Diff line number Diff line
@@ -29,6 +29,10 @@ public class OpenvpnProfile extends VpnProfile {

    private static final String PROTO_TCP = "tcp";

    private static final String DEVICE_TUN = "tun";

    private static final String DEVICE_TAP = "tap";

    // Standard Settings
    private boolean mUserAuth = false;

@@ -51,6 +55,8 @@ public class OpenvpnProfile extends VpnProfile {

    private String mRemoteAddr;

    private String mDevice = DEVICE_TUN;

    @Override
    public VpnType getType() {
        return VpnType.OPENVPN;
@@ -86,6 +92,24 @@ public class OpenvpnProfile extends VpnProfile {
            mProto = PROTO_UDP;
    }

    public String getDevice() {
        return mDevice;
    }

    public CharSequence[] getDeviceList() {
        String[] s = new String[2];
        s[0] = DEVICE_TUN;
        s[1] = DEVICE_TAP;
        return s;
    }

    public void setDevice(String p) {
        if (p.contains(DEVICE_TAP))
            mDevice = DEVICE_TAP;
        else if (p.contains(DEVICE_TUN))
            mDevice = DEVICE_TUN;
    }

    public boolean getUserAuth() {
        return mUserAuth;
    }
@@ -163,6 +187,7 @@ public class OpenvpnProfile extends VpnProfile {
        mSupplyAddr = in.readInt() == 1;
        mLocalAddr = in.readString();
        mRemoteAddr = in.readString();
        mDevice = in.readString();
    }

    @Override
@@ -178,5 +203,6 @@ public class OpenvpnProfile extends VpnProfile {
        parcel.writeInt(mSupplyAddr ? 1 : 0);
        parcel.writeString(mLocalAddr);
        parcel.writeString(mRemoteAddr);
        parcel.writeString(mDevice);
    }
}