2015-05-12 12 views
5

Unterstützen die c-ares IOS? Ich brauche c-ares in der App meiner Firma, die auf IOS läuft. Aber es kann nicht korrekt arbeiten mit "ares_gethostbyname()" und der Statuscode in der Callback-Funktion gibt 11 (ARES_ECONNREFUSED) die ganze Zeit zurück. Derselbe Code läuft auch auf anderen Betriebssystemen wie Win32, Android.Unterstützt c-ars IOS?

Blick auf den Quellcode, fand ich den Grund, das heißt, c-Ares ist nicht in der Lage, DNS-Server auf IOS zu bekommen. Weil c-ares die Datei /etc/resolv.conf liest, um DNS-Server-Informationen zu erhalten, aber diese Datei existiert nicht auf IOS.

Also, unterstützen die c-ares IOS? Oder Was ist die Methode auf IOS, um DNS-Server-Informationen zu erhalten?

Antwort

1

Ich fand a patch für diese, die nie in den Master-Repo, posted in December 2014 zusammengeführt wurde.

Es wäre großartig, wenn Sie es ausprobieren und auf der c-ares-Mailingliste melden könnten, damit wir daran arbeiten können, es "offiziell" zusammenzuführen und zu unterstützen.

/schrecklich c-ares Maintainer :-(

+0

Thx! Ich habe auch versucht, durch den Aufruf "res_ninit()" DNS-Server Informationen zu erhalten. Aber ich finde ein seltsames Problem. Ich kann dns server ip richtig erhalten, wenn Verbindungs Internet, aber es funktioniert nicht, wenn das Internet getrennt wird So will ich wissen, warum "res_ninit()" mit dem Netzwerk verbinden muss, um DNS-Server-Informationen zu erhalten? – wanghongyun

+0

Wenn "res_ninit()" mit dem Netzwerk verbunden werden muss, wird es unkontrollierbar sein.Vielleicht wird es viel Zeit dauern, um DNS-Informationen zu erhalten.Ich denke, wenn Sie diesen Code in "ares_init", ist es inakzeptabel zu verbringen lange Zeit zu initialisieren. – wanghongyun

+0

Sie mischen Themen.res_init oder res_ninit haben nichts überhaupt mit c-ares zu tun oder wie es funktioniert. –

Verwandte Themen