Skip to content

Commit a5898d4

Browse files
committed
fix: make sure ping shuts down
1 parent 48c01aa commit a5898d4

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

app/src/main/java/com/zaneschepke/wireguardautotunnel/service/tunnel/WireGuardTunnel.kt

+9-5
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ constructor(
193193
onTunnelStop(tunnelConfig)
194194
updateTunnelState(it, null)
195195
}.onFailure {
196+
clearJobsAndStats()
196197
Timber.e(it)
197198
}
198199
}
@@ -313,8 +314,7 @@ constructor(
313314
override fun cancelActiveTunnelJobs() {
314315
statsJob?.cancelWithMessage("Tunnel stats job cancelled")
315316
tunnelChangesJob?.cancelWithMessage("Tunnel changes job cancelled")
316-
pingJob?.cancelWithMessage("Ping job cancelled")
317-
networkJob?.cancelWithMessage("Network job cancelled")
317+
cancelPingJobs()
318318
}
319319

320320
override fun startActiveTunnelJobs() {
@@ -326,6 +326,7 @@ constructor(
326326
}
327327

328328
private fun startPingJobs() {
329+
cancelPingJobs()
329330
pingJob = startPingJob()
330331
networkJob = startNetworkJob()
331332
}
@@ -373,18 +374,21 @@ constructor(
373374
with(_vpnState.value.tunnelConfig) {
374375
if (this == null) return
375376
if (!isPingEnabled && pingJob?.isActive == true) {
376-
pingJob?.cancelWithMessage("Ping job cancelled")
377-
networkJob?.cancelWithMessage("Network job cancelled")
377+
cancelPingJobs()
378378
return
379379
}
380380
restartPingJob()
381381
}
382382
}
383383

384384
private fun restartPingJob() {
385+
cancelPingJobs()
386+
startPingJobs()
387+
}
388+
389+
private fun cancelPingJobs() {
385390
pingJob?.cancelWithMessage("Ping job cancelled")
386391
networkJob?.cancelWithMessage("Network job cancelled")
387-
startPingJobs()
388392
}
389393

390394
private fun startTunnelConfigChangesJob() = applicationScope.launch(ioDispatcher) {

0 commit comments

Comments
 (0)