Hi, I am not able to see the localhost(127.0.0.1) connection request capture by the content filter network extension but all other connection is being intercepted by the NE. Is there any specific way to add in filter setting even after using following filter setting.
override func startFilter(completionHandler: @escaping (Error?) -> Void) {
let filterRules = ["0.0.0.0", "::"].map { address -> NEFilterRule in
let bothNetworkRule = NENetworkRule(remoteNetwork: nil,
remotePrefix: 0,
localNetwork: nil,
localPrefix: 0,
protocol: .any,
direction: .any )
return NEFilterRule(networkRule: bothNetworkRule, action: .filterData)
}
let filterSettings = NEFilterSettings(rules: filterRules, defaultAction: .allow)
apply(filterSettings) { error in
if let applyError = error {
os_log("Failed to apply filter settings: %@", applyError.localizedDescription)
}
completionHandler(error)
}
Post
Replies
Boosts
Views
Activity
We have a scenario where a daemon process is generating lot of network operations which is nearly 250+ requests per seconds. Due to this the handleNewFlow() is not able to process the real browser/Application network operations in realtime and browser is getting timed out. This is resulting in all user network operations to be in waiting and finally timed out.
Filter setting (We are capturing all the network operations):
let filterRules = ["0.0.0.0", "::"].map { address -> NEFilterRule in
let bothNetworkRule = NENetworkRule(remoteNetwork: nil,
remotePrefix: 0,
localNetwork: nil,
localPrefix: 0,
protocol: .any,
direction: .any )
return NEFilterRule(networkRule: bothNetworkRule, action: .filterData)
}
override func handleNewFlow(_ flow: NEFilterFlow) -> NEFilterNewFlowVerdict {
return .allow();
}
As we are not doing any processing in handleNewFlow() function and just returning allow verdict. But this is also resulting in same behaviour and not able to handle when some process is doing lot of network operations.
Please let us know if we are missing something here.