On the filter Data provider, based on certain conditions I either allow or drop the packets. I've set the "shouldReport" field to true.
On the filter control provider, I do override the handleReport function.
When I drop the packet in handleInboundComplete, with the following line :
result = NEFilterDataVerdict.drop()
return result
The flow is getting dropped as expected. I also expect that handleReport, inside FilterControlProvider to get called with the report stating whether the flow was dropped or allowed. But this does not happen.
Any ideas, why?
Is there a better way for Filter Control provider to know about the verdict made by Filter Data Provider, about a flow?
Is there a better way for Filter Control provider to know about the verdict made by Filter Data Provider, about a flow?
You can try setting the shouldReport
flag for either NEFilterControlVerdict
or for NEFilterDataVerdict
and then adding an override for handle(_ report: NEFilterReport)
in either provider. This should allow you to get the filter report for each provider.
Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com