openvpn connection logic fix
This commit is contained in:
parent
1ceee8901e
commit
ab1e31b2ff
4 changed files with 33 additions and 41 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -8,6 +8,8 @@ deploy/build/*
|
||||||
deploy/build_32/*
|
deploy/build_32/*
|
||||||
deploy/build_64/*
|
deploy/build_64/*
|
||||||
winbuild*.bat
|
winbuild*.bat
|
||||||
|
client/android/src/net/
|
||||||
|
|
||||||
|
|
||||||
# Qt-es
|
# Qt-es
|
||||||
/.qmake.cache
|
/.qmake.cache
|
||||||
|
|
|
@ -37,23 +37,22 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
|
||||||
|
|
||||||
override fun run() {
|
override fun run() {
|
||||||
//TEMP
|
//TEMP
|
||||||
Log.i(tag, "run()")
|
|
||||||
val lConfigData: String = readFileDirectlyAsText("/data/local/tmp/osinit.ovpn")
|
val lConfigData: String = readFileDirectlyAsText("/data/local/tmp/android_conf.ovpn")
|
||||||
val config: ClientAPI_Config = ClientAPI_Config()
|
val config: ClientAPI_Config = ClientAPI_Config()
|
||||||
config.content = lConfigData
|
config.content = lConfigData
|
||||||
|
|
||||||
val lCreds: ClientAPI_ProvideCreds = ClientAPI_ProvideCreds()
|
val lCreds: ClientAPI_ProvideCreds = ClientAPI_ProvideCreds()
|
||||||
//username from config or GUI
|
//username from config or GUI
|
||||||
lCreds.username = "username"
|
lCreds.username = ""
|
||||||
//password from config or GUI
|
//password from config or GUI
|
||||||
lCreds.password = "password"
|
lCreds.password = ""
|
||||||
|
|
||||||
provide_creds(lCreds)
|
provide_creds(lCreds)
|
||||||
|
|
||||||
|
|
||||||
eval_config(config)
|
eval_config(config)
|
||||||
connect()
|
connect()
|
||||||
Log.i(tag, "connect()")
|
Log.i(tag, "Connect succesfully")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun readFileDirectlyAsText(fileName: String): String = File(fileName).readText(Charsets.UTF_8)
|
fun readFileDirectlyAsText(fileName: String): String = File(fileName).readText(Charsets.UTF_8)
|
||||||
|
@ -67,17 +66,13 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// override fun reconnect() {
|
|
||||||
// reconnect(1);
|
|
||||||
// }
|
|
||||||
override fun tun_builder_new(): Boolean {
|
override fun tun_builder_new(): Boolean {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun tun_builder_establish(): Int {
|
override fun tun_builder_establish(): Int {
|
||||||
Log.v(tag, "tun_builder_establish")
|
Log.v(tag, "tun_builder_establish")
|
||||||
return mService.turnOn(null)!!.detachFd()
|
return mService.establish()!!.detachFd()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun tun_builder_add_address(address: String , prefix_length: Int , gateway: String , ipv6:Boolean , net30: Boolean ): Boolean {
|
override fun tun_builder_add_address(address: String , prefix_length: Int , gateway: String , ipv6:Boolean , net30: Boolean ): Boolean {
|
||||||
|
@ -87,6 +82,15 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun tun_builder_add_route(address: String, prefix_length: Int, metric: Int, ipv6: Boolean): Boolean {
|
override fun tun_builder_add_route(address: String, prefix_length: Int, metric: Int, ipv6: Boolean): Boolean {
|
||||||
|
Log.v(tag, "tun_builder_add_route")
|
||||||
|
if (address.equals("remote_host"))
|
||||||
|
return false
|
||||||
|
|
||||||
|
mService.addRoute(address, prefix_length);
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun tun_builder_exclude_route(address: String, prefix_length: Int, metric: Int, ipv6: Boolean): Boolean {
|
||||||
if (address.equals("remote_host"))
|
if (address.equals("remote_host"))
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
@ -100,6 +104,7 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun tun_builder_set_mtu(mtu: Int): Boolean {
|
override fun tun_builder_set_mtu(mtu: Int): Boolean {
|
||||||
|
Log.v(tag, "tun_builder_set_mtu")
|
||||||
mService.setMtu(mtu)
|
mService.setMtu(mtu)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -109,5 +114,9 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun tun_builder_set_session_name(name: String ): Boolean {
|
||||||
|
Log.v(tag, "We should call this session: " + name)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,36 +192,16 @@ class VPNService : android.net.VpnService() {
|
||||||
|
|
||||||
// NotificationUtil.show(this) // Go foreground
|
// NotificationUtil.show(this) // Go foreground
|
||||||
|
|
||||||
// val builder = Builder()
|
|
||||||
// // setupBuilder(wireguard_conf, builder)
|
|
||||||
// builder.addAddress("192.168.194.1", 24)
|
|
||||||
// builder.addDnsServer("8.8.8.8")
|
|
||||||
// builder.addRoute("0.0.0.0", 0)
|
|
||||||
// builder.setSession("mvpn0")
|
|
||||||
// builder.establish()
|
|
||||||
|
|
||||||
|
|
||||||
// Configure a new interface from our VpnService instance. This must be done
|
|
||||||
// from inside a VpnService.
|
|
||||||
|
|
||||||
// val builder = Builder()
|
|
||||||
// Create a local TUN interface using predetermined addresses. In your app,
|
|
||||||
// you typically use values returned from the VPN gateway during handshaking.
|
|
||||||
// val localTunnel = builder
|
|
||||||
// .addAddress("10.0.20.1", 0)
|
|
||||||
// .addRoute("192.168.111.0", 24)
|
|
||||||
// .addDnsServer("192.168.111.1")
|
|
||||||
// .establish()
|
|
||||||
val localTunnel = mbuilder.establish()
|
|
||||||
|
|
||||||
Log.v(tag, "builder.establish()")
|
|
||||||
|
|
||||||
startOpenVpn()
|
startOpenVpn()
|
||||||
|
|
||||||
return localTunnel
|
return 1//localTunnel
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun establish(): ParcelFileDescriptor? {
|
||||||
|
return mbuilder.establish()
|
||||||
|
}
|
||||||
|
|
||||||
fun setMtu(mtu: Int) {
|
fun setMtu(mtu: Int) {
|
||||||
Log.v(tag, "setMtu()" + mtu)
|
Log.v(tag, "setMtu()" + mtu)
|
||||||
|
@ -245,9 +225,9 @@ class VPNService : android.net.VpnService() {
|
||||||
|
|
||||||
fun turnOff() {
|
fun turnOff() {
|
||||||
Log.v(tag, "Try to disable tunnel")
|
Log.v(tag, "Try to disable tunnel")
|
||||||
// wgTurnOff(currentTunnelHandle)
|
wgTurnOff(currentTunnelHandle)
|
||||||
// currentTunnelHandle = -1
|
currentTunnelHandle = -1
|
||||||
// stopForeground(false)
|
stopForeground(false)
|
||||||
isUp = false
|
isUp = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,6 +330,7 @@ class VPNService : android.net.VpnService() {
|
||||||
mOpenVPNThreadv3?.run()
|
mOpenVPNThreadv3?.run()
|
||||||
}).start()
|
}).start()
|
||||||
Log.i(tag, "OpenVPNThreadv3 start")
|
Log.i(tag, "OpenVPNThreadv3 start")
|
||||||
|
isUp = true
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
|
@ -193,10 +193,10 @@ android {
|
||||||
android/gradlew \
|
android/gradlew \
|
||||||
android/gradlew.bat \
|
android/gradlew.bat \
|
||||||
android/res/values/libs.xml \
|
android/res/values/libs.xml \
|
||||||
|
android/src/org/amnezia/vpn/OpenVPNThreadv3.kt \
|
||||||
android/src/org/amnezia/vpn/VpnService.kt \
|
android/src/org/amnezia/vpn/VpnService.kt \
|
||||||
android/src/org/amnezia/vpn/VpnServiceBinder.kt \
|
android/src/org/amnezia/vpn/VpnServiceBinder.kt \
|
||||||
android/src/org/amnezia/vpn/qt/VPNPermissionHelper.kt \
|
android/src/org/amnezia/vpn/qt/VPNPermissionHelper.kt
|
||||||
android/src/org/amnezia/vpn/VPNCli.kt
|
|
||||||
|
|
||||||
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
|
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue