summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs33
1 files changed, 13 insertions, 20 deletions
diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs
index 1c80dfe31a..1dc057a7e5 100644
--- a/talpid-core/src/tunnel_state_machine/connecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs
@@ -68,21 +68,22 @@ impl ConnectingState {
}
fn start_tunnel(
- parameters: &TunnelParameters,
+ parameters: TunnelParameters,
log_dir: &Option<PathBuf>,
resource_dir: &Path,
- ) -> Result<(
- mpsc::UnboundedReceiver<TunnelEvent>,
- oneshot::Receiver<()>,
- CloseHandle,
- )> {
+ ) -> Result<Self> {
let (event_tx, event_rx) = mpsc::unbounded();
let monitor =
Self::spawn_tunnel_monitor(&parameters, log_dir, resource_dir, event_tx.wait())?;
let close_handle = monitor.close_handle();
let tunnel_close_event = Self::spawn_tunnel_monitor_wait_thread(monitor);
- Ok((event_rx, tunnel_close_event, close_handle))
+ Ok(ConnectingState {
+ tunnel_events: event_rx,
+ tunnel_parameters: parameters,
+ tunnel_close_event,
+ close_handle,
+ })
}
fn spawn_tunnel_monitor(
@@ -307,22 +308,14 @@ impl TunnelState for ConnectingState {
}
match Self::start_tunnel(
- &parameters,
+ parameters,
&shared_values.log_dir,
&shared_values.resource_dir,
) {
- Ok((tunnel_events, tunnel_close_event, close_handle)) => {
- let connecting_state = ConnectingState {
- tunnel_events,
- tunnel_parameters: parameters,
- tunnel_close_event,
- close_handle,
- };
- (
- TunnelStateWrapper::from(connecting_state),
- TunnelStateTransition::Connecting,
- )
- }
+ Ok(connecting_state) => (
+ TunnelStateWrapper::from(connecting_state),
+ TunnelStateTransition::Connecting,
+ ),
Err(error) => {
let block_reason = match *error.kind() {
ErrorKind::TunnelMonitorError(tunnel::ErrorKind::EnableIpv6Error) => {