2009-06-11 13 views

Antwort

2

nicht wirklich eine Antwort, aber getaddrinfo(3) statt
Wie :) verwenden weit nscd betrifft, ist hier von der nscd.conf(5) Handbuch Seite:

 
enable-cache service <yes|no> 
    Enables or disables the specified service cache. 

Sie werden, was die für DNS richtig service finden müssen aus ist.

+1

der Dienst wäre "Hosts" – hayalci

+0

Danke, es ist eine Weile her, seit ich mit denen spielte :) –

+0

Danke für die getaddrinfo() - es sieht aus wie es nicht im Cache von nscd in der Tat (zumindest in man-Seite)? Ich möchte den Cache überhaupt nicht deaktivieren, da er nur für bestimmte Apps benötigt wird. – SyBer

1

nscd nicht verwenden? :)

Ernsthaft, wenn Sie sich auf gethostbyname() verlassen möchten, können Sie libresolv verwenden und stattdessen res_gethostbyname() anrufen.

Obwohl, dass eine Sicherheitslücke durch djb zumindest in Betracht gezogen wird :)

Betrachten Sie die djbdns client library verwenden. Sehr sicher, schnell und solide.

+0

Danke für den Tipp, aber es sieht etwas alt aus (2001)? Auch eine Idee, ob es Header-Level-Bibliothek oder die Bibliotheken können statisch verknüpft sein? – SyBer

+0

Ja, es ist alt, aber sehr solide. Ich weiß zwar nicht über Header-Ebene/statische Verknüpfung, aber die Quelle ist in der Public Domain, so dass Sie damit experimentieren können. –

+0

Und es ist nicht älter als gethostbyname() :) –

0

Ich glaube nicht, dass gethostbyname Einträge wirklich zwischenspeichert. Es ist höchstwahrscheinlich Ihr DNS-Cache selbst.

+0

Tatsächlich verwendet es Nscd-Cache. Das Problem damit verursacht, wenn die IP-Änderungen - es dauert A LOT (10 min standardmäßig) Zeit der Nscd den Cache aktualisieren und versuchen, es erneut zu lösen. – SyBer

1

Rufen Sie res_init() vor gethostbyname() auf. Es scheint in Ordnung zu sein.

Verwandte Themen