kernel-wfp: Manually create a ProviderContext to attach individual filters

This gives us more flexibility than using the intransparent FwpmIPsecTunnelAdd,
and fixes the issues we have seen with trap policies. Forward filters are
still missing, but required for site-to-site tunnels.
This commit is contained in:
Martin Willi
2014-06-04 16:32:10 +02:00
parent 1ca2b1615a
commit 1678f0a999
4 changed files with 73 additions and 79 deletions
@@ -76,6 +76,16 @@ enum {
FWPM_NET_EVENT_FLAG_REAUTH_REASON_SET = (1<<9),
};
/* missing in MinGW */
enum {
FWPM_FILTER_FLAG_PERSISTENT = (1<<0),
FWPM_FILTER_FLAG_BOOTTIME = (1<<1),
FWPM_FILTER_FLAG_HAS_PROVIDER_CONTEXT = (1<<2),
FWPM_FILTER_FLAG_CLEAR_ACTION_RIGHT = (1<<3),
FWPM_FILTER_FLAG_PERMIT_IF_CALLOUT_UNREGISTERED = (1<<4),
FWPM_FILTER_FLAG_DISABLED = (1<<5),
};
DWORD WINAPI FwpmIPsecTunnelAdd0(HANDLE, UINT32,
const FWPM_PROVIDER_CONTEXT0*, const FWPM_PROVIDER_CONTEXT0*, UINT32,
const FWPM_FILTER_CONDITION0*, PSECURITY_DESCRIPTOR);