![]() We use these two implementations to fulfil the FilterDataProvider. HandleInboundDataComplete and handleOutboundDataComplete. We pause the flow and perform the analysis in an async queue, only then we return the verdict. ![]() HandleInboundData and handleOutboundData, both are called with the available data and only if we previously (handleNewFlow) requested more data. HandleNewFlow -> if the data available in NEFilterFlow does not satisfy the requirements to perform the analysis, we ask for more data through FilterNewFlowVerdict.init(passBytes: passBytesCount, peekBytes: Int.max)) otherwise we return the result of the analysis, either .allow or .deny. To achieve this our app implements FilterDataProvider and does the following steep: ![]() ![]() The objective is simple, grab a new flow, perform some analysis on the data content and then emit a verdict based on that analysis. In past days we have done many tests on a product based on the SimpleFirewall example. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |