Skip to content

Commit b3ece8f

Browse files
committed
fixup
1 parent efe2d26 commit b3ece8f

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

Diff for: mullvad-api/src/rest.rs

+8-12
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ pub(crate) struct RequestService<T: ConnectionModeProvider> {
125125
connector_handle: HttpsConnectorWithSniHandle,
126126
client: hyper::Client<HttpsConnectorWithSni, hyper::Body>,
127127
connection_mode_provider: T,
128-
connection_mode_generation: usize,
128+
allow_new_mode: bool,
129129
api_availability: ApiAvailabilityHandle,
130130
}
131131

@@ -158,7 +158,7 @@ impl<T: ConnectionModeProvider + 'static> RequestService<T> {
158158
connector_handle,
159159
client,
160160
connection_mode_provider,
161-
connection_mode_generation: 0,
161+
allow_new_mode: true,
162162
api_availability,
163163
};
164164
let handle = RequestServiceHandle { tx: command_tx };
@@ -190,15 +190,15 @@ impl<T: ConnectionModeProvider + 'static> RequestService<T> {
190190
async fn process_command(&mut self, command: RequestCommand) {
191191
match command {
192192
RequestCommand::NewRequest(request, completion_tx) => {
193+
self.allow_new_mode = true;
193194
self.handle_new_request(request, completion_tx);
194195
}
195196
RequestCommand::Reset => {
196197
self.connector_handle.reset();
197198
}
198-
RequestCommand::NextApiConfig(generation) => {
199-
if generation == self.connection_mode_generation {
200-
self.connection_mode_generation =
201-
self.connection_mode_generation.wrapping_add(1);
199+
RequestCommand::NextApiConfig => {
200+
if self.allow_new_mode {
201+
self.allow_new_mode = false;
202202
self.connection_mode_provider.rotate().await;
203203
}
204204
}
@@ -215,8 +215,6 @@ impl<T: ConnectionModeProvider + 'static> RequestService<T> {
215215
let api_availability = self.api_availability.clone();
216216
let request_future = request.into_future(self.client.clone(), api_availability.clone());
217217

218-
let connection_mode_generation = self.connection_mode_generation;
219-
220218
tokio::spawn(async move {
221219
let response = request_future.await.map_err(|error| error.map_aborted());
222220

@@ -225,9 +223,7 @@ impl<T: ConnectionModeProvider + 'static> RequestService<T> {
225223
if err.is_network_error() && !api_availability.get_state().is_offline() {
226224
log::error!("{}", err.display_chain_with_msg("HTTP request failed"));
227225
if let Some(tx) = tx {
228-
let _ = tx.unbounded_send(RequestCommand::NextApiConfig(
229-
connection_mode_generation,
230-
));
226+
let _ = tx.unbounded_send(RequestCommand::NextApiConfig);
231227
}
232228
}
233229
}
@@ -266,7 +262,7 @@ pub(crate) enum RequestCommand {
266262
oneshot::Sender<std::result::Result<Response, Error>>,
267263
),
268264
Reset,
269-
NextApiConfig(usize),
265+
NextApiConfig,
270266
}
271267

272268
/// A REST request that is sent to the RequestService to be executed.

0 commit comments

Comments
 (0)