diff options
| -rw-r--r-- | talpid-core/src/tunnel/openvpn/mod.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/talpid-core/src/tunnel/openvpn/mod.rs b/talpid-core/src/tunnel/openvpn/mod.rs index cbb89f912e..8d1aa03607 100644 --- a/talpid-core/src/tunnel/openvpn/mod.rs +++ b/talpid-core/src/tunnel/openvpn/mod.rs @@ -146,6 +146,11 @@ pub enum Error { #[error(display = "Failed to delete existing Wintun adapter")] WintunDeleteExistingError(#[error(source)] io::Error), + /// Error while waiting for IP interfaces to become available + #[cfg(windows)] + #[error(display = "Failed while waiting for IP interfaces")] + IpInterfacesError(#[error(source)] io::Error), + /// Error returned from `ConvertInterfaceAliasToLuid` #[cfg(windows)] #[error(display = "Cannot find LUID for virtual adapter")] @@ -394,6 +399,14 @@ impl OpenVpnMonitor<OpenVpnCommand> { log::warn!("You may need to restart Windows to complete the install of Wintun"); } + log::debug!("Wait for IP interfaces"); + windows::wait_for_interfaces( + &adapter.adapter().luid(), + true, + params.generic_options.enable_ipv6, + ) + .map_err(Error::IpInterfacesError)?; + let assigned_guid = adapter.adapter().guid(); let assigned_guid = assigned_guid.as_ref().unwrap_or_else(|error| { log::error!( |
