diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-11-13 13:09:03 +0100 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-11-17 16:37:07 +0100 |
| commit | b441a66572238dee87a8fcf7698524a8d75b416d (patch) | |
| tree | 127033a92e871ced25f06c7683f1ccf8c07811ed /android/service/src | |
| parent | d5fe71a19e58d340c01a713d99393a1389724c4a (diff) | |
| download | mullvadvpn-b441a66572238dee87a8fcf7698524a8d75b416d.tar.xz mullvadvpn-b441a66572238dee87a8fcf7698524a8d75b416d.zip | |
Fix race condition when updating provider and ownership at the same time
Diffstat (limited to 'android/service/src')
| -rw-r--r-- | android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt index 186ac21092..2f18c09064 100644 --- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt +++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/RelayListListener.kt @@ -67,25 +67,20 @@ class RelayListListener( } scope.launch { - endpoint.dispatcher.parsedMessages.filterIsInstance<Request.SetOwnership>().collect { - request -> - val update = getCurrentRelayConstraints().copy(ownership = request.ownership) - daemon.await().setRelaySettings(RelaySettings.Normal(update)) - } - } - - scope.launch { - endpoint.dispatcher.parsedMessages.filterIsInstance<Request.SetProviders>().collect { - request -> - val update = getCurrentRelayConstraints().copy(providers = request.providers) - daemon.await().setRelaySettings(RelaySettings.Normal(update)) + endpoint.dispatcher.parsedMessages.filterIsInstance<Request.FetchRelayList>().collect { + relayList = daemon.await().getRelayLocations() } } scope.launch { - endpoint.dispatcher.parsedMessages.filterIsInstance<Request.FetchRelayList>().collect { - relayList = daemon.await().getRelayLocations() - } + endpoint.dispatcher.parsedMessages + .filterIsInstance<Request.SetOwnershipAndProviders>() + .collect { request -> + val update = + getCurrentRelayConstraints() + .copy(ownership = request.ownership, providers = request.providers) + daemon.await().setRelaySettings(RelaySettings.Normal(update)) + } } } |
