Provided by: manpages-de-dev_0.5-2ubuntu1_all bug

BEZEICHNUNG

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

Ü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).