Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       res_init,    res_query,   res_search,   res_querydomain,   res_mkquery,
       res_send, dn_comp, dn_expand - Resolverroutinen

       Diese Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen  Sie
       die englischsprachige Handbuchseite zu Rate, indem Sie

              man -LC 3 resolver

       eingeben.

"UBERSICHT

       #include <netinet/in.h>
       #include <arpa/nameser.h>
       #include <resolv.h>
       extern struct state _res;

       int res_init(void);

       int res_query(const char *dname, int class, int type,
              unsigned char *answer, int anslen);

       int res_search(const char *dname, int class, int type,
              unsigned char *answer, int anslen);

       int res_querydomain(const char *name, const char *domain,
              int class, int type, unsigned char *answer, int anslen);

       int res_mkquery(int op, const char *dname, int class, int type,
              char *data, int datalen, struct rrec *newrr, char *buf,
              int buflen);

       int res_send(const char *msg, int msglen, char *answer,
              int anslen);

       int dn_comp(unsigned char *exp_dn, unsigned char *comp_dn,
              int length, unsigned char **dnptrs, unsigned char *exp_dn,
              unsigned char **lastdnptr);

       int dn_expand(unsigned char *msg, unsigned char *eomorig,
              unsigned char *comp_dn, unsigned char *exp_dn, int length);

BESCHREIBUNG

       Diese  Funktionen  machen  Anfragen  an  Internet Domain Nameserver und
       interpretieren die Ruckmeldungen.

       Die  Funktion  res_init()  liest   die   Konfigurationsdateien   (siehe
       resolv+(8)),  um  den vorgegebenen Domainnamen, die Suchreihenfolge und
       Nameserveradresse(n) zu erhalten.  Wenn kein Server angegeben ist, wird
       der  lokale  Host  verwendet.   Wenn  keine  Domain angegeben ist, wird
       diejenige benutzt, die mit dem  lokalen  Host  in  Verbindung  gebracht
       wird.   Dies  kann  mit der Umgebungsvariable LOCALDOMAIN uberschrieben
       werden .  res_init() wird normalerweise durch  den  ersten  Aufruf  von
       einer der anderen Funktionen ausgefuhrt.

       Die  Funktion  res_query()  fragt den Nameserver nach dem vollstandigen
       Host- und Domainnamen von name vom spezifizierten type und class.   Die
       Antwort  verbleibt  im Puffer answer der Lange anslen, der von Aufrufer
       angegeben ist.

       Die Funktion res_search() macht eine Anfrage und wartet auf die Antwort
       wie res_query(), implementiert jedoch zusatzlich die Vorgabe- und Such-
       Regeln, die  durch  RES_DEFNAMES  und  RES_DNSRCH  kontrolliert  werden
       (siehe Beschreibung von _res-Optionen unten).

       Die  Funktion res_querydomain() macht eine Anfrage uber res_query() auf
       die Verkettung von name und domain.

       Die  folgenden  Funktionen  sind  Routinen  tieferer  Ebene,  die   von
       res_query() benutzt werden.

       Die  Funktion  res_mkquery() konstruiert eine Anfrage-Nachricht fur den
       Domainnamen dname in buf der  Lange  buflen.   Der  Anfragetyp  op  ist
       gewohnlich  QUERY,  kann aber jeder der in <arpa/nameser.h> definierten
       Typen sein.  newrr ist momentan unbenutzt.

       Die Funktion res_send() sendet eine vorformatierte Anfrage, die in  msg
       gegeben  ist  und  die Lange msglen hat, und gibt die Antwort in answer
       zuruck, die die Lange anslen hat.  Sie ruft  res_init()  auf,  wenn  es
       noch nicht aufgerufen wurde.

       Die Funktion dn_comp() komprimiert den Domainnamen exp_dn und speichert
       ihn in dem Puffer comp_dn der Lange length.  Die Komprimierung  benutzt
       ein  Feld  von  Zeigern  dnptrs  auf  bereits komprimierte Namen in der
       aktuellen Nachricht.   Der  erste  Zeiger  zeigt  auf  den  Anfang  der
       Nachricht  und  die  Liste  endet  mit NULL.  Die Grenze des Feldes ist
       angegeben durch lastdnptr.  Wenn dnptr NULL ist, dann sind  Domainnamen
       nicht  komprimiert.   Wenn  lastdnptr  NULL ist, dann ist die Liste der
       Namen nicht aktualisiert.

       Die  Funktion  dn_expand()  expandiert  den  komprimierten  Domainnamen
       comp_dn  zu  einem vollen Domainnamen, welcher in dem Puffer exp_dn der
       GroBe length platziert ist.  Der komprimierte  Name  ist  enthalten  in
       einer  Anfrage- oder Antwortnachricht, und msg zeigt auf den Anfang der
       Nachricht.

       Die   Resolverroutinen    benutzen    globale    Konfigurations-    und
       Statusinformationen, die in der Struktur _res enthalten sind, welche in
       <resolv.h> definiert ist.  Das  einzige  Feld,  das  normalerweise  vom
       Benutzer manipuliert wird, ist _res.options.  Dieses Feld kann bitweise
       oder-Verknupfungen der folgenden Optionen enthalten:

       RES_INIT
              Wahr wenn res_init() aufgerufen wurde.

       RES_DEBUG
              Drucke Debugnachrichten.

       RES_AAONLY
              Akzeptiere nur autoritative Antworten.   res_send()  fahrt  fort
              bis  es eine autoritative Antwort findet, oder gibt einen Fehler
              zuruck.  [Noch nicht implementiert.]

       RES_USEVC
              Benutze TCP-Verbindungen fur Anfragen, nicht UDP-Datagramme.

       RES_PRIMARY
              Frage nur primare Domainnameserver.

       RES_IGNTC
              Ignoriere Fehler bei verstummelten Antworten.  Versuche es nicht
              erneut mit TCP.  [Noch nicht implementiert.]

       RES_RECURSE
              Setze  das Rekursionswunsch-Bit in Anfragen.  Rekursion wird von
              dem   Domainnameserver   ausgefuhrt,   nicht   von   res_send().
              [Eingeschaltet durch Vorgabe.]

       RES_DEFNAMES
              Wenn   gesetzt,  fugt  res_search()  den  Vorgabedomainnamen  an
              Einzelnamen an, d.h. an  solche,  die  keinen  Punkt  enthalten.
              [Eingeschaltet durch Vorgabe.]

       RES_STAYOPEN
              Benutzt  mit  RES_USEVC  um die TCP-Verbindung zwischen Anfragen
              geoffnet zu halten.

       RES_DNSRCH
              Wenn gesetzt, sucht res_search() nach Hostnamen in der aktuellen
              und   in   ubergeordneten   Domains.    Diese  Option  wird  von
              gethostbyname(3) benutzt.  [Eingeschaltet durch Vorgabe.]

R"UCKGABEWERT

       Die Funktion res_init() gibt 0 zuruck  be  Erfolg,  oder  -1  wenn  ein
       Fehler auftritt.

       Die    Funktionen    res_query(),    res_search(),   res_querydomain(),
       res_mkquery() und res_send() geben die Lange der Antwort  zuruck,  oder
       -1 wenn ein Fehler auftritt.

       Die   Funktionen   dn_comp()   und  dn_expand()  geben  die  Lange  des
       komprimierten Namens zuruck, oder -1 wenn ein Fehler auftritt.

DATEIEN

       /etc/resolv.conf
              Resolverkonfigurationsdatei

       /etc/host.conf
              Resolverkonfigurationsdatei

KONFORM ZU

       BSD 4.3

SIEHE AUCH

       gethostbyname(3), hostname(7), named(8), resolv+(8).