@@ -193,6 +193,7 @@ constructor(
193
193
onTunnelStop(tunnelConfig)
194
194
updateTunnelState(it, null )
195
195
}.onFailure {
196
+ clearJobsAndStats()
196
197
Timber .e(it)
197
198
}
198
199
}
@@ -313,8 +314,7 @@ constructor(
313
314
override fun cancelActiveTunnelJobs () {
314
315
statsJob?.cancelWithMessage(" Tunnel stats job cancelled" )
315
316
tunnelChangesJob?.cancelWithMessage(" Tunnel changes job cancelled" )
316
- pingJob?.cancelWithMessage(" Ping job cancelled" )
317
- networkJob?.cancelWithMessage(" Network job cancelled" )
317
+ cancelPingJobs()
318
318
}
319
319
320
320
override fun startActiveTunnelJobs () {
@@ -326,6 +326,7 @@ constructor(
326
326
}
327
327
328
328
private fun startPingJobs () {
329
+ cancelPingJobs()
329
330
pingJob = startPingJob()
330
331
networkJob = startNetworkJob()
331
332
}
@@ -373,18 +374,21 @@ constructor(
373
374
with (_vpnState .value.tunnelConfig) {
374
375
if (this == null ) return
375
376
if (! isPingEnabled && pingJob?.isActive == true ) {
376
- pingJob?.cancelWithMessage(" Ping job cancelled" )
377
- networkJob?.cancelWithMessage(" Network job cancelled" )
377
+ cancelPingJobs()
378
378
return
379
379
}
380
380
restartPingJob()
381
381
}
382
382
}
383
383
384
384
private fun restartPingJob () {
385
+ cancelPingJobs()
386
+ startPingJobs()
387
+ }
388
+
389
+ private fun cancelPingJobs () {
385
390
pingJob?.cancelWithMessage(" Ping job cancelled" )
386
391
networkJob?.cancelWithMessage(" Network job cancelled" )
387
- startPingJobs()
388
392
}
389
393
390
394
private fun startTunnelConfigChangesJob () = applicationScope.launch(ioDispatcher) {
0 commit comments