diff options
| author | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2025-07-02 13:52:15 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-07-04 15:31:41 +0200 |
| commit | 1bdd1be3a3c07a5c4fc49489597de0f582085fed (patch) | |
| tree | 8ac72010caaeb9f09225eb0bb175ede5444cba78 | |
| parent | 5fe3aa99935b49e83d0a7ad13ac13d8f2c47d38d (diff) | |
| download | mullvadvpn-1bdd1be3a3c07a5c4fc49489597de0f582085fed.tar.xz mullvadvpn-1bdd1be3a3c07a5c4fc49489597de0f582085fed.zip | |
Add GetRemovePersistentFunctor
| -rw-r--r-- | windows/winfw/src/winfw/objectpurger.cpp | 16 | ||||
| -rw-r--r-- | windows/winfw/src/winfw/objectpurger.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/windows/winfw/src/winfw/objectpurger.cpp b/windows/winfw/src/winfw/objectpurger.cpp index dce36c99c8..52adaac187 100644 --- a/windows/winfw/src/winfw/objectpurger.cpp +++ b/windows/winfw/src/winfw/objectpurger.cpp @@ -71,6 +71,22 @@ ObjectPurger::RemovalFunctor ObjectPurger::GetRemoveNonPersistentFunctor() } //static +ObjectPurger::RemovalFunctor ObjectPurger::GetRemovePersistentFunctor() +{ + return [](wfp::FilterEngine &engine) + { + const auto registry = MullvadGuids::DetailedRegistry(MullvadGuids::IdentityQualifier::IncludePersistent); + + // Resolve correct overload. + void(*deleter)(wfp::FilterEngine &, const GUID &) = wfp::ObjectDeleter::DeleteFilter; + + RemoveRange(engine, deleter, registry.equal_range(WfpObjectType::Filter)); + RemoveRange(engine, wfp::ObjectDeleter::DeleteSublayer, registry.equal_range(WfpObjectType::Sublayer)); + RemoveRange(engine, wfp::ObjectDeleter::DeleteProvider, registry.equal_range(WfpObjectType::Provider)); + }; +} + +//static bool ObjectPurger::Execute(RemovalFunctor f) { auto engine = wfp::FilterEngine::StandardSession(); diff --git a/windows/winfw/src/winfw/objectpurger.h b/windows/winfw/src/winfw/objectpurger.h index 7728aac694..9d3ca0146e 100644 --- a/windows/winfw/src/winfw/objectpurger.h +++ b/windows/winfw/src/winfw/objectpurger.h @@ -16,6 +16,7 @@ public: static RemovalFunctor GetRemoveFiltersFunctor(); static RemovalFunctor GetRemoveAllFunctor(); static RemovalFunctor GetRemoveNonPersistentFunctor(); + static RemovalFunctor GetRemovePersistentFunctor(); static bool Execute(RemovalFunctor f); }; |
