2015-05-12 19 views
5

Czy obsługa C-Ares obsługuje IOS? Potrzebuję użyć c-ares w aplikacji mojej firmy działającej na IOS. Ale nie może działać poprawnie przy użyciu "ares_gethostbyname()", a kod statusu w funkcji wywołania zwrotnego zwraca 11 (ARES_ECONNREFUSED) przez cały czas. Ten sam kod działa poprawnie w innym systemie operacyjnym, takim jak Win32, Android.Czy c-ares obsługuje IOS?

Przeglądając kod źródłowy, znalazłem przyczynę, to znaczy, że c-ares nie może uzyskać serwerów dns na IOS. Ponieważ c-ares odczytuje plik /etc/resolv.conf, aby uzyskać informacje o serwerach dns, ale ten plik nie istnieje na IOS.

A więc czy obsługa C-Ares obsługuje IOS? Lub jaka jest metoda na IOS, aby uzyskać informacje o serwerach dns?

Odpowiedz

1

Znalazłem a patch dla tego, który nigdy nie został połączony z master repo, posted in December 2014.

Byłoby wspaniale, gdyby można było wypróbować i złożyć raport na liście mailingowej c-ares, abyśmy mogli pracować nad scaleniem i wsparciem "oficjalnie".

/okropne c-arów opiekun :-(

+0

Thx! Próbowałem również uzyskać informacje dzwoniąc serwerów DNS „res_ninit()”. Ale ja znajduję dziwny problem. Mogę IP serwera DNS poprawnie podczas podłączania Internet, ale nie działa w przypadku rozłączenia Internetu, więc chcę wiedzieć, dlaczego "res_ninit()" musi połączyć się z siecią, aby uzyskać informacje o serwerach dns? – wanghongyun

+0

Jeśli "res_ninit()" musi połączyć się z siecią, będzie Być może zajmie to dużo czasu, aby uzyskać informacje dns, więc myślę, że jeśli scalanie tego kodu w "ares_init", niedopuszczalne jest zainicjowanie długiego czasu – wanghongyun

+0

Miksujesz obiekty res_init lub res_ninit nie mają nic w ogóle zrobić z c-ares lub jak to działa. –