NEDNSProxyProvider iOS Не может просматривать какой-либо сайт

** Привет, я настроил NEDNSProxyProvider. Я получаю правильные вызовы в следующей функции, но на устройстве не открывается ни один веб-сайт. **

func handleNewFlow(_ flow: NEAppProxyFlow) -> Bool {

       var host = ""
       var port = ""
       var blocked:Bool = false
       var endpoint = NWHostEndpoint.init()
       NSLog("DNSProxyProvider handleNewFlow : ")
       if let tcpFlow = flow as? NEAppProxyTCPFlow {
           host = (tcpFlow.remoteEndpoint as! NWHostEndpoint).hostname
           port = (tcpFlow.remoteEndpoint as! NWHostEndpoint).port
           NSLog("DNSProxyProvider TCP HOST : \(host)")
           NSLog("DNSProxyProvider TCP PORT : \(port)")
           NSLog("DNSProxyProvider TCP debugDescription : \(tcpFlow.debugDescription)")
           if let ep = tcpFlow.remoteEndpoint as? NWHostEndpoint{
               endpoint = ep
           }
       } else if let udpFlow = flow as? NEAppProxyUDPFlow {
           host = (udpFlow.localEndpoint as! NWHostEndpoint).hostname
           port = (udpFlow.localEndpoint as! NWHostEndpoint).port

           NSLog("DNSProxyProvider UDP HOST : \(host)")
           NSLog("DNSProxyProvider UDP PORT : \(port)")
           NSLog("DNSProxyProvider UDP debugDescription : \(String(describing: udpFlow.localEndpoint))")
           if let ep = udpFlow.localEndpoint as? NWHostEndpoint{
               endpoint = ep
           }

       }

  //*


       flow.open(withLocalEndpoint: endpoint, completionHandler: { (error) in
       if error != nil  {
           NSLog("DNSProxyProvider: open error: \(error.debugDescription)")

           }

       });

// */
       return true
   }

1 ответ

Я смог решить эту проблему, потому что мне пришлось предоставить IP-адреса для пакетов DNS, для которых я возвращаю true из функции handleNewFlow. вот основной поток

вызовите openon flow; ошибка проверки ссылки, если ошибка равна нулю; вызовите readDatagrams; отправьте датаграммы на ваш сервер, чтобы получить их разрешенные; вызовите writeDatagrams с перенастроенными измененными датаграммами с сервера, затем проверьте, существует ли больше датаграмм, снова вызвав readDatagrams или закройте дескриптор

Другие вопросы по тегам