summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOdd Stranne <odd@mullvad.net>2020-03-02 17:38:52 +0100
committerOdd Stranne <odd@mullvad.net>2020-03-03 15:28:22 +0100
commitd7f334d1c842ccc7b92f3a021068fe6935d87c11 (patch)
treef361ff6a29b2bfcad9a429ee3b398ce040955a67
parent2311d206951012483503ae142372109c8d6b85bb (diff)
downloadmullvadvpn-d7f334d1c842ccc7b92f3a021068fe6935d87c11.tar.xz
mullvadvpn-d7f334d1c842ccc7b92f3a021068fe6935d87c11.zip
Update talpid-core to correctly deinitialize winfw
-rw-r--r--talpid-core/src/firewall/windows.rs16
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(