disconnection fix

This commit is contained in:
Розов Никита Валерьевич 2021-10-14 11:22:59 +03:00
parent 6a9cc9bf37
commit 88d5e9cbc3
2 changed files with 11 additions and 15 deletions

View file

@ -32,12 +32,12 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
private var mService: VPNService = service
override fun run() {
val config: ClientAPI_Config = ClientAPI_Config()
config.content = mService.getVpnConfig().getString("openvpn_config_data")
eval_config(config)
val status = connect()
if (status.getError()) {
Log.i(tag, "connect() error: " + status.getError() + ": " + status.getMessage())
}
@ -109,12 +109,6 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
return true
}
fun stopVPN(): Boolean {
stop()
return false
}
override fun stop() {
super.stop()
}

View file

@ -108,7 +108,7 @@ class VPNService : android.net.VpnService() {
get() {
return currentTunnelHandle >= 0
}
private set(value) {
set(value) {
if (value) {
mBinder.dispatchEvent(VPNServiceBinder.EVENTS.connected, "")
mConnectionTime = System.currentTimeMillis()
@ -189,7 +189,7 @@ class VPNService : android.net.VpnService() {
Log.v(tag, "Try to disable tunnel")
when(mProtocol){
"wireguard" -> wgTurnOff(currentTunnelHandle)
"openvpn" -> mOpenVPNThreadv3?.stopVPN()
"openvpn" -> ovpnTurnOff()
else -> {
Log.e(tag, "No protocol")
}
@ -201,6 +201,12 @@ class VPNService : android.net.VpnService() {
stopSelf();
}
private fun ovpnTurnOff() {
mOpenVPNThreadv3?.stop()
mOpenVPNThreadv3 = null
Log.e(tag, "mOpenVPNThreadv3?.stop()")
}
/**
* Configures an Android VPN Service Tunnel
* with a given Wireguard Config
@ -299,16 +305,12 @@ class VPNService : android.net.VpnService() {
}
private fun startOpenVpn() {
mOpenVPNThreadv3 = OpenVPNThreadv3 (this)
Thread ({
mOpenVPNThreadv3?.run()
}).start()
}
fun openvpnConnected(){
isUp = true;
}
private fun startWireGuard(){
val wireguard_conf = buildWireugardConfig(mConfig!!)
if (currentTunnelHandle != -1) {