aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt
diff options
context:
space:
mode:
authorpacien2018-09-26 00:36:40 +0200
committerpacien2018-09-26 00:54:12 +0200
commitb93bf5513a1c43ac11acef409c81dc7238324d69 (patch)
tree4fdd3479173c66022b095bc966d606c24a1d7d53 /app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt
parentc9b813a2c8fcd53543c7aa84a773915d2c7c07d1 (diff)
downloadtincapp-b93bf5513a1c43ac11acef409c81dc7238324d69.tar.gz
Trigger tinc reconnection on network state change
Diffstat (limited to 'app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt')
-rw-r--r--app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt6
1 files changed, 6 insertions, 0 deletions
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
49 */ 49 */
50class TincVpnService : VpnService() { 50class TincVpnService : VpnService() {
51 private val log by lazy { LoggerFactory.getLogger(this.javaClass)!! } 51 private val log by lazy { LoggerFactory.getLogger(this.javaClass)!! }
52 private val connectivityChangeReceiver = ConnectivityChangeReceiver
52 53
53 override fun onDestroy() { 54 override fun onDestroy() {
54 stopVpn() 55 stopVpn()
@@ -150,11 +151,16 @@ class TincVpnService : VpnService() {
150 log.info("tinc daemon started.") 151 log.info("tinc daemon started.")
151 broadcastEvent(Actions.EVENT_CONNECTED) 152 broadcastEvent(Actions.EVENT_CONNECTED)
152 } 153 }
154
155 connectivityChangeReceiver.registerWatcher(this)
153 } 156 }
154 } 157 }
155 158
156 private fun stopVpn(): Unit = synchronized(this) { 159 private fun stopVpn(): Unit = synchronized(this) {
157 log.info("Stopping any running tinc daemon.") 160 log.info("Stopping any running tinc daemon.")
161
162 connectivityChangeReceiver.unregisterWatcher(this)
163
158 getCurrentNetName()?.let { 164 getCurrentNetName()?.let {
159 Tinc.stop(it).thenRun { 165 Tinc.stop(it).thenRun {
160 log.info("All tinc daemons stopped.") 166 log.info("All tinc daemons stopped.")