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.

ÜBERSICHT

       #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 Rückmeldungen.

       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 überschrieben
       werden . res_init() wird normalerweise  durch  den  ersten  Aufruf  von
       einer der anderen Funktionen ausgeführt.

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

       Die Funktion res_search() macht eine Anfrage und wartet auf die Antwort
       wie res_query(), implementiert jedoch zusätzlich 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 über 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 für den
       Domainnamen dname in buf  der  Länge  buflen.  Der  Anfragetyp  op  ist
       gewöhnlich  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 Länge msglen hat, und gibt die Antwort in answer
       zurück, die die Länge 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 Länge 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
       Größe 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-Verknüpfungen der folgenden Optionen enthalten:

       RES_INIT
              Wahr wenn res_init() aufgerufen wurde.

       RES_DEBUG
              Drucke Debugnachrichten.

       RES_AAONLY
              Akzeptiere nur autoritative Antworten. res_send() fährt fort bis
              es  eine  autoritative  Antwort  findet,  oder gibt einen Fehler
              zurück. [Noch nicht implementiert.]

       RES_USEVC
              Benutze TCP-Verbindungen für Anfragen, nicht UDP-Datagramme.

       RES_PRIMARY
              Frage nur primäre Domainnameserver.

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

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

       RES_DEFNAMES
              Wenn   gesetzt,  fügt  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
              geöffnet zu halten.

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

RÜCKGABEWERT

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

       Die    Funktionen    res_query(),    res_search(),   res_querydomain(),
       res_mkquery() und res_send() geben die Länge der Antwort  zurück,  oder
       -1 wenn ein Fehler auftritt.

       Die   Funktionen   dn_comp()   und  dn_expand()  geben  die  Länge  des
       komprimierten Namens zurück, 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).