diff options
| author | Odd Stranne <odd@mullvad.net> | 2018-09-04 14:51:00 +0200 |
|---|---|---|
| committer | Odd Stranne <odd@mullvad.net> | 2018-09-04 14:51:00 +0200 |
| commit | 268bab1aef021178b33d9190fa0b3c5c00fbe250 (patch) | |
| tree | e17cb5ab3d0584a725ed509617955e05c9754850 | |
| parent | 09cf70c318a697e360c91c8d2fd2dca5a9520f7d (diff) | |
| download | mullvadvpn-268bab1aef021178b33d9190fa0b3c5c00fbe250.tar.xz mullvadvpn-268bab1aef021178b33d9190fa0b3c5c00fbe250.zip | |
Rename 'ApplyPolicyNetBlocked' into 'ApplyPolicyBlocked' and extend with args
| -rw-r--r-- | windows/winfw/src/extras/cli/commands/winfw/policy.cpp | 14 | ||||
| -rw-r--r-- | windows/winfw/src/extras/cli/commands/winfw/policy.h | 2 | ||||
| -rw-r--r-- | windows/winfw/src/winfw/fwcontext.cpp | 3 | ||||
| -rw-r--r-- | windows/winfw/src/winfw/fwcontext.h | 2 | ||||
| -rw-r--r-- | windows/winfw/src/winfw/winfw.cpp | 5 | ||||
| -rw-r--r-- | windows/winfw/src/winfw/winfw.def | 2 | ||||
| -rw-r--r-- | windows/winfw/src/winfw/winfw.h | 8 |
7 files changed, 23 insertions, 13 deletions
diff --git a/windows/winfw/src/extras/cli/commands/winfw/policy.cpp b/windows/winfw/src/extras/cli/commands/winfw/policy.cpp index 04906332aa..decead0596 100644 --- a/windows/winfw/src/extras/cli/commands/winfw/policy.cpp +++ b/windows/winfw/src/extras/cli/commands/winfw/policy.cpp @@ -55,8 +55,8 @@ Policy::Policy(MessageSink messageSink) m_dispatcher.addSubcommand ( - L"netblocked", - std::bind(&Policy::processNetBlocked, this) + L"blocked", + std::bind(&Policy::processBlocked, this, std::placeholders::_1) ); m_dispatcher.addSubcommand @@ -149,9 +149,15 @@ void Policy::processConnected(const KeyValuePairs &arguments) : L"Failed to apply policy.")); } -void Policy::processNetBlocked() +void Policy::processBlocked(const KeyValuePairs &arguments) { - auto success = WinFw_ApplyPolicyNetBlocked(); + auto settings = detail::CreateSettings + ( + GetArgumentValue(arguments, L"dhcp"), + GetArgumentValue(arguments, L"lan") + ); + + auto success = WinFw_ApplyPolicyBlocked(settings); m_messageSink((success ? L"Successfully applied policy." diff --git a/windows/winfw/src/extras/cli/commands/winfw/policy.h b/windows/winfw/src/extras/cli/commands/winfw/policy.h index 5d4d15e6b1..54d354a6d5 100644 --- a/windows/winfw/src/extras/cli/commands/winfw/policy.h +++ b/windows/winfw/src/extras/cli/commands/winfw/policy.h @@ -28,7 +28,7 @@ private: void processConnecting(const KeyValuePairs &arguments); void processConnected(const KeyValuePairs &arguments); - void processNetBlocked(); + void processBlocked(const KeyValuePairs &arguments); void processReset(); }; diff --git a/windows/winfw/src/winfw/fwcontext.cpp b/windows/winfw/src/winfw/fwcontext.cpp index c20e70b37b..c25dbbbe0c 100644 --- a/windows/winfw/src/winfw/fwcontext.cpp +++ b/windows/winfw/src/winfw/fwcontext.cpp @@ -118,11 +118,12 @@ bool FwContext::applyPolicyConnected(const WinFwSettings &settings, const WinFwR return applyRuleset(ruleset); } -bool FwContext::applyPolicyNetBlocked() +bool FwContext::applyPolicyBlocked(const WinFwSettings &settings) { Ruleset ruleset; AppendNetBlockedRules(ruleset); + AppendSettingsRules(ruleset, settings); return applyRuleset(ruleset); } diff --git a/windows/winfw/src/winfw/fwcontext.h b/windows/winfw/src/winfw/fwcontext.h index 00f952441e..d4198be9e4 100644 --- a/windows/winfw/src/winfw/fwcontext.h +++ b/windows/winfw/src/winfw/fwcontext.h @@ -15,7 +15,7 @@ public: bool applyPolicyConnecting(const WinFwSettings &settings, const WinFwRelay &relay); bool applyPolicyConnected(const WinFwSettings &settings, const WinFwRelay &relay, const wchar_t *tunnelInterfaceAlias, const wchar_t *primaryDns); - bool applyPolicyNetBlocked(); + bool applyPolicyBlocked(const WinFwSettings &settings); bool reset(); diff --git a/windows/winfw/src/winfw/winfw.cpp b/windows/winfw/src/winfw/winfw.cpp index 8071669b7d..233423d1cd 100644 --- a/windows/winfw/src/winfw/winfw.cpp +++ b/windows/winfw/src/winfw/winfw.cpp @@ -147,7 +147,8 @@ WinFw_ApplyPolicyConnected( WINFW_LINKAGE bool WINFW_API -WinFw_ApplyPolicyNetBlocked( +WinFw_ApplyPolicyBlocked( + const WinFwSettings &settings ) { if (nullptr == g_fwContext) @@ -157,7 +158,7 @@ WinFw_ApplyPolicyNetBlocked( try { - return g_fwContext->applyPolicyNetBlocked(); + return g_fwContext->applyPolicyBlocked(settings); } catch (std::exception &err) { diff --git a/windows/winfw/src/winfw/winfw.def b/windows/winfw/src/winfw/winfw.def index ff028b76d0..e8ef663dae 100644 --- a/windows/winfw/src/winfw/winfw.def +++ b/windows/winfw/src/winfw/winfw.def @@ -5,5 +5,5 @@ WinFw_Initialize WinFw_Deinitialize WinFw_ApplyPolicyConnecting WinFw_ApplyPolicyConnected -WinFw_ApplyPolicyNetBlocked +WinFw_ApplyPolicyBlocked WinFw_Reset diff --git a/windows/winfw/src/winfw/winfw.h b/windows/winfw/src/winfw/winfw.h index 4a7b0d5730..38f92aacf2 100644 --- a/windows/winfw/src/winfw/winfw.h +++ b/windows/winfw/src/winfw/winfw.h @@ -127,15 +127,17 @@ WinFw_ApplyPolicyConnected( ); // -// ApplyPolicyNetBlocked: +// ApplyPolicyBlocked: // -// Apply restrictions in the firewall that block all traffic. +// Apply restrictions in the firewall that block all traffic, except: +// - What is specified by settings // extern "C" WINFW_LINKAGE bool WINFW_API -WinFw_ApplyPolicyNetBlocked( +WinFw_ApplyPolicyBlocked( + const WinFwSettings &settings ); // |
