diff options
| author | Odd Stranne <odd@mullvad.net> | 2020-03-02 17:38:52 +0100 |
|---|---|---|
| committer | Odd Stranne <odd@mullvad.net> | 2020-03-03 15:28:22 +0100 |
| commit | d7f334d1c842ccc7b92f3a021068fe6935d87c11 (patch) | |
| tree | f361ff6a29b2bfcad9a429ee3b398ce040955a67 | |
| parent | 2311d206951012483503ae142372109c8d6b85bb (diff) | |
| download | mullvadvpn-d7f334d1c842ccc7b92f3a021068fe6935d87c11.tar.xz mullvadvpn-d7f334d1c842ccc7b92f3a021068fe6935d87c11.zip | |
Update talpid-core to correctly deinitialize winfw
| -rw-r--r-- | talpid-core/src/firewall/windows.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/talpid-core/src/firewall/windows.rs b/talpid-core/src/firewall/windows.rs index 89e880da7e..807bcd1167 100644 --- a/talpid-core/src/firewall/windows.rs +++ b/talpid-core/src/firewall/windows.rs @@ -113,7 +113,11 @@ impl FirewallT for Firewall { impl Drop for Firewall { fn drop(&mut self) { - if unsafe { WinFw_Deinitialize().into_result().is_ok() } { + if unsafe { + WinFw_Deinitialize(WinFwCleanupPolicy::ContinueBlocking) + .into_result() + .is_ok() + } { trace!("Successfully deinitialized windows firewall module"); } else { error!("Failed to deinitialize windows firewall module"); @@ -280,6 +284,14 @@ mod winfw { pub num_addresses: usize, } + #[allow(dead_code)] + #[repr(u8)] + #[derive(Clone, Copy)] + pub enum WinFwCleanupPolicy { + ContinueBlocking = 0u8, + ResetFirewall = 1u8, + } + ffi_error!(InitializationResult, Error::Initialization); ffi_error!(DeinitializationResult, Error::Deinitialization); ffi_error!(ApplyConnectingResult, Error::ApplyingConnectingPolicy); @@ -304,7 +316,7 @@ mod winfw { ) -> InitializationResult; #[link_name = "WinFw_Deinitialize"] - pub fn WinFw_Deinitialize() -> DeinitializationResult; + pub fn WinFw_Deinitialize(cleanupPolicy: WinFwCleanupPolicy) -> DeinitializationResult; #[link_name = "WinFw_ApplyPolicyConnecting"] pub fn WinFw_ApplyPolicyConnecting( |
