.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\" and (C) Copyright 2015 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" References consulted:
.\"     Linux libc source code
.\"     Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\"     386BSD man pages
.\" Modified 1993-07-25 by Rik Faith (faith@cs.unc.edu)
.\" Modified 2004-10-31 by aeb
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH resolver 3 "5. Februar 2023" "Linux man\-pages 6.03" 
.SH BEZEICHNUNG
res_ninit, res_nquery, res_nsearch, res_nquerydomain, res_nmkquery,
res_nsend, res_nclose, res_init, res_query, res_search, res_querydomain,
res_mkquery, res_send, dn_comp, dn_expand \- Resolver\-Routinen
.SH BIBLIOTHEK
Resolver\-Bibliothek (\fIlibresolv\fP, \fI\-lresolv\fP)
.SH ÜBERSICHT
.nf
\fB#include <netinet/in.h>\fP
\fB#include <arpa/nameser.h>\fP
\fB#include <resolv.h>\fP
.PP
\fBstruct __res_state;\fP
\fBtypedef struct __res_state *res_state;\fP
.PP
\fBint res_ninit(res_state \fP\fIstatep\fP\fB);\fP
.PP
\fBvoid res_nclose(res_state \fP\fIstatep\fP\fB);\fP
.PP
\fBint res_nquery(res_state \fP\fIstatep\fP\fB,\fP
\fB           const char *\fP\fIdname\fP\fB, int \fP\fIclass\fP\fB, int \fP\fItype\fP\fB,\fP
\fB           unsigned char \fP\fIanswer\fP\fB[.\fP\fIanslen\fP\fB], int \fP\fIanslen\fP\fB);\fP
.PP
\fBint res_nsearch(res_state \fP\fIstatep\fP\fB,\fP
\fB           const char *\fP\fIdname\fP\fB, int \fP\fIclass\fP\fB, int \fP\fItype\fP\fB,\fP
\fB           unsigned char \fP\fIanswer\fP\fB[.\fP\fIanslen\fP\fB], int \fP\fIanslen\fP\fB);\fP
.PP
\fBint res_nquerydomain(res_state \fP\fIstatep\fP\fB,\fP
\fB           const char *\fP\fIname\fP\fB, const char *\fP\fIdomain\fP\fB,\fP
\fB           int \fP\fIclass\fP\fB, int \fP\fItype\fP\fB, unsigned char \fP\fIanswer\fP\fB[.\fP\fIanslen\fP\fB],\fP
\fB           int \fP\fIanslen\fP\fB);\fP
.PP
\fBint res_nmkquery(res_state \fP\fIstatep\fP\fB,\fP
\fB           int \fP\fIop\fP\fB, const char *\fP\fIdname\fP\fB, int \fP\fIclass\fP\fB,\fP
\fB           int \fP\fItype\fP\fB, const unsigned char \fP\fIdata\fP\fB[.\fP\fIdatalen\fP\fB], int \fP\fIdatalen\fP\fB,\fP
\fB           const unsigned char *\fP\fInewrr\fP\fB,\fP
\fB           unsigned char \fP\fIbuf\fP\fB[.\fP\fIbuflen\fP\fB], int \fP\fIbuflen\fP\fB);\fP
.PP
\fBint res_nsend(res_state \fP\fIstatep\fP\fB,\fP
\fB           const unsigned char \fP\fImsg\fP\fB[.\fP\fImsglen\fP\fB], int \fP\fImsglen\fP\fB,\fP
\fB           unsigned char \fP\fIanswer\fP\fB[.\fP\fIanslen\fP\fB], int \fP\fIanslen\fP\fB);\fP
.PP
\fBint dn_comp(const char *\fP\fIexp_dn\fP\fB, unsigned char \fP\fIcomp_dn\fP\fB[.\fP\fIlength\fP\fB],\fP
\fB           int \fP\fIlength\fP\fB, unsigned char **\fP\fIdnptrs\fP\fB,\fP
\fB           unsigned char **\fP\fIlastdnptr\fP\fB);\fP
.PP
\fBint dn_expand(const unsigned char *\fP\fImsg\fP\fB,\fP
\fB           const unsigned char *\fP\fIeomorig\fP\fB,\fP
\fB           const unsigned char *\fP\fIcomp_dn\fP\fB, char \fP\fIexp_dn\fP\fB[.\fP\fIlength\fP\fB],\fP
\fB           int \fP\fIlength\fP\fB);\fP
.PP
\fB[[veraltet]] extern struct __res_state _res;\fP
.PP
\fB[[veraltet]] int res_init(void);\fP
.PP
\fB[[veraltet]]\fP
\fBint res_query(const char *\fP\fIdname\fP\fB, int \fP\fIclass\fP\fB, int \fP\fItype\fP\fB,\fP
\fB           unsigned char \fP\fIanswer\fP\fB[.\fP\fIanslen\fP\fB], int \fP\fIanslen\fP\fB);\fP
.PP
\fB[[veraltet]]\fP
\fBint res_search(const char *\fP\fIdname\fP\fB, int \fP\fIclass\fP\fB, int \fP\fItype\fP\fB,\fP
\fB           unsigned char \fP\fIanswer\fP\fB[.\fP\fIanslen\fP\fB], int \fP\fIanslen\fP\fB);\fP
.PP
\fB[[veraltet]]\fP
\fBint res_querydomain(const char *\fP\fIname\fP\fB, const char *\fP\fIdomain\fP\fB,\fP
\fB           int \fP\fIclass\fP\fB, int \fP\fItype\fP\fB, unsigned char \fP\fIanswer\fP\fB[.\fP\fIanslen\fP\fB],\fP
\fB           int \fP\fIanslen\fP\fB);\fP
.PP
\fB[[veraltet]]\fP
\fBint res_mkquery(int \fP\fIop\fP\fB, const char *\fP\fIdname\fP\fB, int \fP\fIclass\fP\fB,\fP
\fB           int \fP\fItype\fP\fB, const unsigned char \fP\fIdata\fP\fB[.\fP\fIdatalen\fP\fB], int \fP\fIdatalen\fP\fB,\fP
\fB           const unsigned char *\fP\fInewrr\fP\fB,\fP
\fB           unsigned char \fP\fIbuf\fP\fB[.\fP\fIbuflen\fP\fB], int \fP\fIbuflen\fP\fB);\fP
.PP
\fB[[veraltet]]\fP
\fBint res_send(const unsigned char \fP\fImsg\fP\fB[.\fP\fImsglen\fP\fB], int \fP\fImsglen\fP\fB,\fP
\fB           unsigned char \fP\fIanswer\fP\fB[.\fP\fIanslen\fP\fB], int \fP\fIanslen\fP\fB);\fP
.fi
.SH BESCHREIBUNG
\fBHinweis\fP: Diese Seite ist unvollständig (verschiedene durch Glibc
bereitgestellte Resolver\-Funktionen sind nicht beschrieben) und ist
wahrscheinlich veraltet.
.PP
Diese unten beschriebenen Funktionen stellen Anfragen an Internet Domain
Nameserver und interpretieren die Rückmeldungen.
.PP
Das API besteht aus einer Gruppe von moderneren, wiedereintrittsfähigen
Funktionen und einer älteren Gruppe von überholten, nicht
wiedereintrittsfähigen Funktionen. Die traditionellen
Resolver\-Schnittstellen wie \fBres_init\fP() und \fBres_query\fP() verwenden
einigen statischen (globalen) Zustand, der in der Struktur \fI_res\fP
gespeichert ist, womit die Funktionen nicht Thread\-sicher werden. BIND 8.2
führte eine Gruppe von neuen Schnittstellen \fBres_ninit\fP(), \fBres_nquery\fP()
und so weiter ein, die \fIres_state\fP als erstes Argument übernehmen, so dass
Sie pro Thread einen Resolver\-Zustand verwenden können.
.PP
Die Funktionen \fBres_ninit\fP() und \fBres_init\fP() lesen die
Konfigurationsdateien (siehe \fBresolv.conf\fP(5)), um den vorgegebenen
Domainnamen 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 \fBLOCALDOMAIN\fP überschrieben werden. \fBres_ninit\fP() oder
\fBres_init\fP() werden normalerweise durch den ersten Aufruf von einer der
anderen Funktionen ausgeführt. Jeder Aufruf an \fBres_ninit\fP() benötigt einen
entsprechenden Aufruf an \fBres_nclose\fP(), um den durch \fBres_ninit\fP() und
nachfolgende Aufrufe von \fBres_nquery\fP() reservierten Speicher freizugeben.
.PP
Die Funktionen \fBres_nquery\fP() und \fBres_query\fP() fragen den Nameserver nach
dem vollständigen Domain\-Namen \fIname\fP des spezifizierten Typs \fItype\fP und
der Klasse \fIclass\fP. Die Antwort verbleibt im Puffer \fIanswer\fP der Länge
\fIanslen\fP, der vom Aufrufenden bereitgestellt wurde.
.PP
Die Funktionen \fBres_nsearch\fP() und \fBres_search\fP() stellen eine Anfrage und
wartet wie \fBres_nquery\fP() und \fBres_query\fP() auf die Antwort,
implementieren jedoch zusätzlich die Vorgabe\- und Such\-Regeln, die durch
\fBRES_DEFNAMES\fP und \fBRES_DNSRCH\fP gesteuert werden (siehe im Folgenden die
Beschreibung der \fI_res\fP\-Optionen).
.PP
Die Funktionen \fBres_nquerydomain\fP() und \fBres_querydomain\fP() stellen
mittels \fBres_nquery\fP()/\fBres_query\fP() eine Anfrage auf die Verkettung von
\fIname\fP und \fIdomain\fP.
.PP
Die folgenden Funktionen sind Routinen tieferer Ebene, die von
\fBres_nquery\fP()/\fBres_query\fP() benutzt werden.
.PP
Die Funktionen \fBres_nmkquery\fP() und \fBres_mkquery\fP() konstruieren eine
Anfragenachricht für den Domain\-Namen \fIdname\fP in \fIbuf\fP der Länge
\fIbuflen\fP. Der Anfragetyp \fIop\fP ist einer der folgenden (typischerweise
\fBQUERY\fP):
.TP 
\fBQUERY\fP
Standardanfrage
.TP 
\fBIQUERY\fP
.\" commit e4e794841e3140875f2aa86b90e2ada3d61e1244
Inverse Anfrage. Diese Option wurde in Glibc 2.26 entfernt, da sie schon
seit sehr langer Zeit nicht mehr von DNS\-Servern unterstützt wurde.
.TP 
\fBNS_NOTIFY_OP\fP
Sekundäre über Änderungen an der SOA (Start der Authorität) benachrichtigen.
.PP
\fInewrr\fP wird derzeit nicht verwandt.
.PP
Die Funktionen \fBres_nsend\fP() und \fBres_send\fP() senden eine vorformatierte
Anfrage, die in \fImsg\fP gegeben ist und die Länge \fImsglen\fP hat und gibt die
Antwort in \fIanswer\fP zurück, die die Länge \fIanslen\fP hat. Sie rufen
\fBres_ninit\fP()/\fBres_init\fP() auf, falls sie noch nicht aufgerufen wurde.
.PP
Die Funktion \fBdn_comp\fP() komprimiert den Domain\-Namen \fIexp_dn\fP und
speichert ihn in dem Puffer \fIcomp_dn\fP der Länge \fIlength\fP. Die
Komprimierung benutzt ein Feld von Zeigern \fIdnptrs\fP 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 \fIlastdnptr\fP. Wenn \fIdnptr\fP NULL ist, dann sind
Domain\-Namen nicht komprimiert. Wenn \fIlastdnptr\fP NULL ist, dann wird die
Liste der Namen nicht aktualisiert.
.PP
Die Funktion \fBdn_expand\fP() expandiert den komprimierten Domain\-Namen
\fIcomp_dn\fP zu einem vollen Domain\-Namen, welcher in dem Puffer \fIexp_dn\fP der
Größe \fIlength\fP platziert ist. Der komprimierte Name ist in einer Anfrage\-
oder Antwortnachricht enthalten und \fImsg\fP zeigt auf den Anfang der
Nachricht.
.PP
Die Resolver\-Routinen benutzen in einer Struktur \fI__res_state\fP (entweder
als Argument \fIstatep\fP übergeben oder im Falle der älteren, nicht
wiedereintrittsfähigen Funktion als globale Variable \fI_res\fP) enthaltende
Konfigurations\- und Zustandsinformationen. Das einzige Feld in dieser
Struktur, das normalerweise vom Benutzer manipuliert wird, ist das Feld
\fIoptions\fP. Dieses Feld kann bitweise Oder\-Verknüpfungen der folgenden
Optionen enthalten:
.TP 
\fBRES_INIT\fP
Wahr, falls \fBres_ninit\fP() oder \fBres_init\fP() aufgerufen wurde.
.TP 
\fBRES_DEBUG\fP
.\" See resolv/README.
.\" Support for RES_DEBUG was made conditional in glibc 2.2.
Gibt Debugging\-Meldungen aus. Diese Option ist nur dann verfügbar, wenn
glibc mit Debugging\-Unterstützung kompiliert wurde, was allerdings nicht die
Vorgabe ist.
.TP 
\fBRES_AAONLY\fP (nicht implementiert; in Glibc 2.25 veraltet)
Akzeptiere nur autoritative Antworten. \fBres_send\fP() fährt fort, bis es eine
autoritative Antwort findet oder gibt einen Fehler zurück. Diese Option war
bis Glibc 2.24 vorhanden, aber nicht implementiert; seit Glibc 2.25 ist sie
veraltet und ihre Verwendung führt zu einer Fehlermeldung.
.TP 
\fBRES_USEVC\fP
TCP\-Verbindungen statt UDP\-Datagramme für Anfragen benutzen.
.TP 
\fBRES_PRIMARY\fP (nicht implementiert; in Glibc 2.25 veraltet)
Nur primäre Domain\-Name\-Server abfragen. Diese Option war bis Glibc 2.24
vorhanden, aber nicht implementiert; seit Glibc 2.25 ist sie veraltet und
ihre Verwendung führt zu einer Fehlermeldung.
.TP 
\fBRES_IGNTC\fP
Ignoriere Fehler bei verstümmelten Antworten. Versuche es nicht erneut mit
TCP.
.TP 
\fBRES_RECURSE\fP
Setze das Rekursionswunsch\-Bit in Anfragen. Rekursion wird von dem
Domainnameserver ausgeführt, nicht von \fBres_send\fP(). [Standardmäßig
eingeschaltet]
.TP 
\fBRES_DEFNAMES\fP
Falls gesetzt, fügt \fBres_search\fP() den Vorgabedomainnamen an
Einzelkomponentennamen an, d.h. an solchen, die keinen Punkt
enthalten. [Standardmäßig eingeschaltet]
.TP 
\fBRES_STAYOPEN\fP
Benutzt mit \fBRES_USEVC\fP, um die TCP\-Verbindung zwischen Anfragen geöffnet
zu halten.
.TP 
\fBRES_DNSRCH\fP
Falls gesetzt, sucht \fBres_search\fP() nach Hostnamen in der aktuellen und in
übergeordneten Domains. Diese Option wird von \fBgethostbyname\fP(3)
benutzt. [Eingeschaltet durch Vorgabe.]
.TP 
\fBRES_INSECURE1\fP
Akzeptiert eine Antwort von einem falschen Server. Dies kann zur Erkennung
möglicher Sicherheitsrisiken verwandt werden. Sie müssen dafür aber Glibc
mit aktivierter Fehlersuche übersetzen und die (nur zur Fehlersuche
gedachte) Option \fBRES_DEBUG\fP verwenden.
.TP 
\fBRES_INSECURE2\fP
Akzeptiert eine Antwort, die eine falsche Anfrage enthält. Dies kann zur
Erkennung möglicher Sicherheitsrisiken verwandt werden. Sie müssen dafür
aber Glibc mit aktivierter Fehlersuche übersetzen und die (nur zur
Fehlersuche gedachte) Option \fBRES_DEBUG\fP verwenden.
.TP 
\fBRES_NOALIASES\fP
Deaktiviert die Verwendung der Umgebungsvariablen \fBHOSTALIASES\fP.
.TP 
\fBRES_USE_INET6\fP
Versucht innerhalb der Funktion \fBgethostbyname\fP(3) zuerst eine AAAA\-Anfrage
vor einer A\-Anfrage und bildet IPv4\-Antworten in eine IPv6 »getunnelte Form«
ab, falls keine AAAA\-Datensätze aber eine A\-Datensatzgruppe existiert. Seit
Glibc 2.25 ist diese Option veraltet und ihre Verwendung führt zu einer
Warnung. Anwendungen sollten \fBgetaddrinfo\fP(3) statt \fBgethostbyname\fP(3)
verwenden.
.TP 
\fBRES_ROTATE\fP
Führt zur Ringauswahl der Name\-Server aus den aufgeführten. Damit wird die
Abfragelast unter allen Servern verteilt, statt dass alle Clients immer
zuerst den zuerst aufgeführten Server ausprobieren.
.TP 
\fBRES_NOCHECKNAME\fP (nicht implementiert; in Glibc 2.25 veraltet)
Deaktiviert die moderne Prüfung von BIND der eingehenden Rechner\- und
Mailnamen auf ungültige Zeichen wie Unterstrich (_), Zeichen außerhalb von
ASCII oder Steuerzeichen. Diese Option war bis Glibc 2.24 vorhanden, aber
nicht implementiert; seit Glibc 2.25 ist sie veraltet und ihre Verwendung
führt zu einer Fehlermeldung.
.TP 
\fBRES_KEEPTSIG\fP (nicht implementiert; in Glibc 2.25 veraltet)
TSIG\-Datensätze nicht entfernen. Diese Option war bis Glibc 2.24 vorhanden,
aber nicht implementiert; seit Glibc 2.25 ist sie veraltet und ihre
Verwendung führt zu einer Fehlermeldung.
.TP 
\fBRES_BLAST\fP (nicht implementiert; in Glibc 2.25 veraltet)
Sendet jede Anfrage simultan und rekursiv an alle Server. Diese Option war
bis Glibc 2.24 vorhanden, aber nicht implementiert; seit Glibc 2.25 ist sie
veraltet und ihre Verwendung führt zu einer Fehlermeldung.
.TP 
\fBRES_USEBSTRING\fP (Glibc 2.3.4 bis 2.24)
Erzeugt IPv6\-Rückwärtssuchen mit dem in RFC 2673 beschriebenen
Bitlabel\-Format. Falls diese Option nicht gesetzt ist (was die Vorgabe ist),
wird das Nibble\-Format verwendet. Diese Option wurde in Glibc 2.25 entfernt,
da sie eine nicht abwärtskompatible DNS\-Erweiterung benötigt, die im
Internet niemals zur Verfügung stand.
.TP 
\fBRES_NOIP6DOTINT\fP (Glibc 2.24 und ältere)
Verwendet die Zone \fIip6.arpa\fP statt \fIip6.int\fP in inversen
IPv6\-Ermittlungen. Dies wird seit Glibc 2.3.4 misbilligt. Diese Option ist
bis einschließlich Glibc 2.24, in denen sie standardmäßig aktiviert ist,
enthalten. In Glibc 2.25 wurde diese Option entfernt.
.TP 
\fBRES_USE_EDNS0\fP (seit Glibc 2.6)
Aktiviert die Unterstützung für in RFC 2671 beschriebene DNS\-Erweiterungen
(EDNS0).
.TP 
\fBRES_SNGLKUP\fP (seit Glibc 2.10)
Standardmäßig führt Glibc IPv4\- und IPv6\-Ermittlungen seit Glibc 2.9
parallel durch. Einige DNS\-Servergeräte können diese Anfragen nicht korrekt
handhaben und führen zu Zeitüberschreitungen bei den Anfragen. Diese Option
deaktiviert das Verhalten und lässt Glibc die IPv6\- und IPv4\-Anfragen
sequenziell durchführen (allerdings verlangsamt sich der Auflösungsprozess
dadurch etwas).
.TP 
\fBRES_SNGLKUPREOP\fP
Wenn die Option \fBRES_SNGLKUP\fP aktiviert ist, wird für jede Anfrage ein
neuer Socket geöffnet.
.TP 
\fBRES_USE_DNSSEC\fP
DNSSEC mit Bit OK im OPT\-Datensatz verwenden. Diese Option impliziert
\fBRES_USE_EDNS0\fP.
.TP 
\fBRES_NOTLDQUERY\fP
Nicht qualifizierte Namen nicht als Domain oberster Ebene (TLD)
nachschlagen.
.TP 
\fBRES_DEFAULT\fP
.\"
Standardoption, impliziert: \fBRES_RECURSE\fP, \fBRES_DEFNAMES\fP, \fBRES_DNSRCH\fP
und \fBRES_NOIP6DOTINT\fP.
.SH RÜCKGABEWERT
Die Funktionen \fBres_ninit\fP() und \fBres_init\fP() geben 0 bei Erfolg zurück
oder \-1, falls ein Fehler auftritt.
.PP
Die Funktionen \fBres_nquery\fP(), \fBres_query\fP(), \fBres_nsearch\fP(),
\fBres_search\fP(), \fBres_nquerydomain\fP(), \fBres_querydomain\fP(),
\fBres_nmkquery\fP(), \fBres_mkquery\fP(), \fBres_nsend\fP() und \fBres_send\fP() geben
die Länge der Antwort zurück oder \-1, falls ein Fehler auftritt.
.PP
Die Funktionen \fBdn_comp\fP() und \fBdn_expand\fP() geben die Länge des
komprimierten Namens zurück oder \-1, falls ein Fehler auftritt.
.PP
Falls mit einem Fehler von \fBres_nquery\fP(), \fBres_query\fP(),
\fBres_nsearch\fP(), \fBres_search\fP(), \fBres_nquerydomain\fP() oder
\fBres_querydomain\fP() zurückgekehrt wird, kann die globale Variable
\fIh_errno\fP (siehe \fBgethostbyname\fP(3)) zur Bestimmung der Fehlerursache
herangezogen werden.
.SH DATEIEN
.TP 
\fI/etc/resolv.conf\fP
Konfigurationsdatei des Resolvers (Namensauflöser)
.TP 
\fI/etc/host.conf\fP
Konfigurationsdatei des Resolvers (Namensauflöser)
.SH ATTRIBUTE
Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt
verwandten Ausdrücke.
.ad l
.nh
.TS
allbox;
lbx lb lb
l l l.
Schnittstelle	Attribut	Wert
T{
\fBres_ninit\fP(),
\fBres_nclose\fP(),
\fBres_nquery\fP(),
\fBres_nsearch\fP(),
\fBres_nquerydomain\fP(),
\fBres_nsend\fP()
T}	Multithread\-Fähigkeit	MT\-Safe locale
T{
\fBres_nmkquery\fP(),
\fBdn_comp\fP(),
\fBdn_expand\fP()
T}	Multithread\-Fähigkeit	MT\-Safe
.TE
.hy
.ad
.sp 1
.SH STANDARDS
4.3BSD.
.SH "SIEHE AUCH"
\fBgethostbyname\fP(3), \fBresolv.conf\fP(5), \fBresolver\fP(5), \fBhostname\fP(7),
\fBnamed\fP(8)
.PP
Die Quelldatei der GNU\-C\-Bibliothek \fIresolv/README\fP.
.PP
.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>,
Dr. Tobias Quathamer <toddy@debian.org>,
Helge Kreutzmann <debian@helgefjell.de>
und
Mario Blättermann <mario.blaettermann@gmail.com>
erstellt.
.PP
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
.PP
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an die
.MT debian-l10n-german@lists.debian.org
Mailingliste der Übersetzer
.ME .