From b93bf5513a1c43ac11acef409c81dc7238324d69 Mon Sep 17 00:00:00 2001 From: pacien Date: Wed, 26 Sep 2018 00:36:40 +0200 Subject: Trigger tinc reconnection on network state change --- app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt') diff --git a/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt b/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt index 45058e2..28f1347 100644 --- a/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt +++ b/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt @@ -49,6 +49,7 @@ import java.io.FileNotFoundException */ class TincVpnService : VpnService() { private val log by lazy { LoggerFactory.getLogger(this.javaClass)!! } + private val connectivityChangeReceiver = ConnectivityChangeReceiver override fun onDestroy() { stopVpn() @@ -150,11 +151,16 @@ class TincVpnService : VpnService() { log.info("tinc daemon started.") broadcastEvent(Actions.EVENT_CONNECTED) } + + connectivityChangeReceiver.registerWatcher(this) } } private fun stopVpn(): Unit = synchronized(this) { log.info("Stopping any running tinc daemon.") + + connectivityChangeReceiver.unregisterWatcher(this) + getCurrentNetName()?.let { Tinc.stop(it).thenRun { log.info("All tinc daemons stopped.") -- cgit v1.2.3