summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
Diffstat (limited to 'talpid-core/src')
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs9
-rw-r--r--talpid-core/src/tunnel_state_machine/mod.rs4
2 files changed, 8 insertions, 5 deletions
diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs
index f79c6ab35d..7e22bd6aa0 100644
--- a/talpid-core/src/tunnel_state_machine/connecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs
@@ -528,10 +528,11 @@ impl TunnelState for ConnectingState {
if shared_values.is_offline {
return ErrorState::enter(shared_values, ErrorStateCause::IsOffline);
}
- match shared_values
- .tunnel_parameters_generator
- .generate(retry_attempt)
- {
+ match shared_values.runtime.block_on(
+ shared_values
+ .tunnel_parameters_generator
+ .generate(retry_attempt),
+ ) {
Err(err) => {
ErrorState::enter(shared_values, ErrorStateCause::TunnelParameterError(err))
}
diff --git a/talpid-core/src/tunnel_state_machine/mod.rs b/talpid-core/src/tunnel_state_machine/mod.rs
index f6fa472983..6c388a4680 100644
--- a/talpid-core/src/tunnel_state_machine/mod.rs
+++ b/talpid-core/src/tunnel_state_machine/mod.rs
@@ -32,9 +32,11 @@ use futures::{
use std::os::unix::io::RawFd;
use std::{
collections::HashSet,
+ future::Future,
io,
net::IpAddr,
path::PathBuf,
+ pin::Pin,
sync::{Arc, Mutex},
time::Duration,
};
@@ -366,7 +368,7 @@ pub trait TunnelParametersGenerator: Send + 'static {
fn generate(
&mut self,
retry_attempt: u32,
- ) -> Result<TunnelParameters, ParameterGenerationError>;
+ ) -> Pin<Box<dyn Future<Output = Result<TunnelParameters, ParameterGenerationError>>>>;
}
/// Values that are common to all tunnel states.