BEZEICHNUNG¶
res_init, res_query, res_search, res_querydomain, res_mkquery, res_send,
  dn_comp, dn_expand - Resolver-Routinen
Ü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 dn_comp(unsigned char *exp_dn, unsigned char *comp_dn,
int length, unsigned char **dnptrs, unsigned char **lastdnptr);
 
 
int dn_expand(unsigned char *msg, unsigned char *eomorig,
unsigned char *comp_dn, char *exp_dn,
int length);
 
 
Linken Sie mit der Option 
-lresolv.
BESCHREIBUNG¶
Diese Funktionen stellen Anfragen an Internet Domain Nameserver und
  interpretieren die Rückmeldungen.
Die Funktion 
res_init() liest die Konfigurationsdateien (siehe
  
resolv.conf(5)), 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 dem lokalen Host zugeordnet ist. Dies kann mit der
  Umgebungsvariablen 
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
  Domain-Namen 
name des spezifizierten Typs 
type und der Klasse
  
class. Die Antwort verbleibt im Puffer 
answer der Länge
  
anslen, der vom Aufrufenden bereitgestellt wurde.
Die Funktion 
res_search() stellt eine Anfrage und wartet wie
  
res_query() auf die Antwort, implementiert jedoch zusätzlich die
  Vorgabe- und Such-Regeln, die durch 
RES_DEFNAMES und 
RES_DNSRCH
  gesteuert werden (siehe im Folgenden die Beschreibung der
  
_res-Optionen).
Die Funktion 
res_querydomain() macht mittels 
res_query() eine
  Anfrage 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 Anfragenachricht für den
  Domain-Namen 
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 wird
  momentan nicht benutzt.
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, falls sie noch nicht aufgerufen wurde.
Die Funktion 
dn_comp() komprimiert den Domain-Namen 
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
  Domain-Namen nicht komprimiert. Wenn 
lastdnptr NULL ist, dann wird die
  Liste der Namen nicht aktualisiert.
Die Funktion 
dn_expand() expandiert den komprimierten Domain-Namen
  
comp_dn zu einem vollen Domain-Namen, welcher in dem Puffer
  
exp_dn der Größe 
length platziert ist. Der
  komprimierte Name ist in einer Anfrage- oder Antwortnachricht enthalten und
  
msg zeigt auf den Anfang der Nachricht.
Die Resolver-Routinen 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, falls res_init() aufgerufen wurde.
 
  - RES_DEBUG
 
  - Drucke Debug-Nachrichten.
 
  - 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
 
  - TCP-Verbindungen statt UDP-Datagramme für Anfragen
      benutzen.
 
  - RES_PRIMARY
 
  - Nur primäre Domainnameserver abfragen.
 
  - 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().
      [Standardmäßig eingeschaltet]
 
  - RES_DEFNAMES
 
  - Falls gesetzt fügt res_search() den
      Vorgabedomainnamen an Einzelkomponentennamen an, d.h. an solchen, die
      keinen Punkt enthalten. [Standardmäßig eingeschaltet]
 
  - RES_STAYOPEN
 
  - Benutzt mit RES_USEVC um die TCP-Verbindung zwischen
      Anfragen geöffnet zu halten.
 
  - RES_DNSRCH
 
  - Falls gesetzt, sucht res_search() nach Hostnamen in
      der aktuellen und in übergeordneten Domains. Diese Option wird von
      gethostbyname(3) benutzt. [Eingeschaltet durch Vorgabe.]
 
Diese Liste ist unvollständig. Sie finden die Beschreibung einiger weiterer
  Schalter in 
resolv.conf(5).
RÜCKGABEWERT¶
Die Funktion 
res_init() gibt 0 bei Erfolg zurück oder -1, falls 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, falls ein Fehler auftritt.
Die Funktionen 
dn_comp() und 
dn_expand() geben die Länge des
  komprimierten Namens zurück oder -1, falls ein Fehler auftritt.
DATEIEN¶
/etc/resolv.conf          Resolver-Konfigurationsdatei
/etc/host.conf            Resolver-Konfigurationsdatei
4.3BSD.
SIEHE AUCH¶
gethostbyname(3), 
resolv.conf(5), 
resolver(5),
  
hostname(7), 
named(8)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
  
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
  gemeldet werden können, finden sich unter
  
http://www.kernel.org/doc/man-pages/.
 
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
  Schauer <Martin.E.Schauer@gmx.de> erstellt.
 
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
  License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird
  KEINE HAFTUNG übernommen.
 
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
  Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.