DNS
Dieses Modul enthält Funktionen zur Steuerung der DNS-Kommunikation.
Zusammenfassung
Die Funktionen in diesem Modul sind nur verfügbar, wenn die Funktion OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
aktiviert ist.
Aufzählungen |
|
---|---|
otDnsNat64Mode{
|
enum Der Typ stellt den NAT64-Modus in einem otDnsQueryConfig dar. |
otDnsRecursionFlag{
|
enum „Type“ steht für das Flag „Recursion Desired“ (RD) in einem otDnsQueryConfig . |
otDnsServiceMode{
|
enum Der Typ stellt den Dienstauflösungsmodus in otDnsQueryConfig dar. |
otDnsTransportProto{
|
enum „Type“ steht für das DNS-Transportprotokoll in einem otDnsQueryConfig . |
Typedefs |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
Pointer wird aufgerufen, wenn eine DNS-Antwort für eine Abfrage zur Adressauflösung empfangen wird. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Eine intransparente Darstellung einer Antwort auf eine DNS-Abfrage zur Adressauflösung. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Pointer wird aufgerufen, wenn eine DNS-Antwort für eine Suchabfrage (Serviceinstanz-Enumeration) empfangen wird. |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Eine intransparente Darstellung einer Antwort auf eine Browser-DNS-Abfrage (Dienstinstanzaufzählung). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Stellt eine DNS-Abfragekonfiguration dar. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
Pointer wird aufgerufen, wenn eine DNS-Antwort auf eine Anfrage zur Auflösung einer Dienstinstanz eingeht. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Stellt Informationen zu einer DNS-Dienstinstanz bereit. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Eine intransparente Darstellung einer Antwort auf eine DNS-Abfrage zur Auflösung einer Dienstinstanz. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Stellt einen TXT-Eintrageintrag dar, der ein Schlüssel/Wert-Paar darstellt (RFC 6763 – Abschnitt 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
Stellt einen iterator für TXT-Eintragseinträge (Schlüssel/Wert-Paare) dar. |
Funktionen |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Ruft eine IPv6-Adresse ab, die mit einer DNS-Antwort mit einer Adressauflösung verknüpft ist.
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Ruft den vollständigen Hostnamen ab, der einer DNS-Antwort mit einer Adressauflösung zugeordnet ist.
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Ruft die IPv6-Adresse des Hosts aus einer Antwort des DNS-Durchsuchens (Serviceinstanz-Enumeration) ab.
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
Ruft Informationen zu einer Dienstinstanz aus einer Antwort des DNS-Browsers (Dienstinstanzaufzählung) ab.
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
Ruft eine Dienstinstanz ab, die mit einer Antwort des DNS-Browsers (Dienstinstanzauflistung) verknüpft ist.
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Ruft den Dienstnamen ab, der mit einer Antwort des DNS-Browsers (Dienstinstanzaufzählung) verknüpft ist.
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Sendet eine DNS-Suchanfrage (Dienstinstanzaufzählung) für einen bestimmten Dienstnamen.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
Ruft die aktuelle Standardabfragekonfiguration ab, die vom DNS-Client verwendet wird.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Sendet eine DNS-Abfrage zur Adressauflösung für AAAA-Einträge (IPv6) für einen bestimmten Hostnamen.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Sendet eine DNS-Abfrage zur Adressauflösung für A-Einträge (IPv4) für einen bestimmten Hostnamen.
|
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Startet die Auflösung einer DNS-Dienstinstanz für eine bestimmte Dienstinstanz.
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Startet eine Auflösung der DNS-Dienstinstanz für eine bestimmte Dienstinstanz mit einer möglichen Folgeadressenauflösung für den Hostnamen, der für die Dienstinstanz erkannt wurde.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
Legt die Standardabfragekonfiguration auf dem DNS-Client fest.
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
Codiert eine bestimmte Liste von TXT-Eintragseinträgen (Schlüssel/Wert-Paare) in TXT-Daten im durch RFC 6763 angegebenen Format.
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
Parst die TXT-Daten von einem Iteration und ruft den nächsten TXT-Eintrageintrag (Schlüssel/Wert-Paar) ab.
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Initialisiert einen TXT-Datensatziterator.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Gibt an, ob der Modus „DNS-Namenskomprimierung“ aktiviert ist oder nicht.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Ruft die IPv6-Hostadresse aus der Antwort zur Auflösung einer DNS-Dienstinstanz ab.
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
Ruft Informationen zu einer Dienstinstanz aus der Antwort zur Auflösung einer DNS-Dienstinstanz ab.
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
Ruft den Namen der Dienstinstanz ab, der mit einer Antwort zur Auflösung einer DNS-Dienstinstanz verknüpft ist.
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
Aktiviert/deaktiviert den Modus "DNS-Namenskomprimierung".
|
Strukturen |
|
---|---|
otDnsQueryConfig |
Stellt eine DNS-Abfragekonfiguration dar. |
otDnsServiceInfo |
Stellt Informationen zu einer DNS-Dienstinstanz bereit. |
otDnsTxtEntry |
Stellt einen TXT-Eintrageintrag dar, der ein Schlüssel/Wert-Paar darstellt (RFC 6763 – Abschnitt 6.3). |
otDnsTxtEntryIterator |
Stellt einen iterator für TXT-Eintragseinträge (Schlüssel/Wert-Paare) dar. |
Aufzählungen
otDnsNat64Mode
otDnsNat64Mode
Der Typ stellt den NAT64-Modus in einem otDnsQueryConfig
dar.
Der NAT64-Modus gibt an, ob die NAT64-Adressübersetzung während der DNS-Client-Adressauflösung zugelassen oder nicht zugelassen wird. Dieser Modus wird nur verwendet, wenn OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
aktiviert ist.
Attribute | |
---|---|
OT_DNS_NAT64_ALLOW
|
NAT64-Adressübersetzung während der Auflösung von DNS-Clientadressen zulassen. |
OT_DNS_NAT64_DISALLOW
|
NAT64-Adressübersetzung während der DNS-Client-Adressauflösung nicht zulassen. |
OT_DNS_NAT64_UNSPECIFIED
|
NAT64-Modus ist nicht angegeben. Standard-NAT64-Modus verwenden. |
otDnsRecursionFlag
otDnsRecursionFlag
„Type“ steht für das Flag „Recursion Desired“ (RD) in einem otDnsQueryConfig
.
Attribute | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
Gibt an, dass der DNS-Nameserver die Abfrage nicht rekursiv auflösen kann. |
OT_DNS_FLAG_RECURSION_DESIRED
|
Gibt an, dass der DNS-Nameserver die Abfrage rekursiv auflösen kann. |
OT_DNS_FLAG_UNSPECIFIED
|
Gibt an, dass das Flag nicht angegeben ist. |
otDnsServiceMode
otDnsServiceMode
Der Typ stellt den Dienstauflösungsmodus in otDnsQueryConfig
dar.
Wird nur während der DNS-Clientdienstauflösung otDnsClientResolveService()
verwendet. Damit wird festgelegt, welche Datensatztypen abgefragt werden.
Attribute | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Abfrage nur nach SRV-Eintrag. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Abfrage von SRV- und TXT-Einträgen in derselben Nachricht. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Führen Sie zuerst eine gemeinsame Abfrage von TXT/SRV durch. Wenn Fehler auftreten, führen Sie eine separate Abfrage durch. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Parallele Abfrage von SRV und TXT mit separaten Nachrichten. |
OT_DNS_SERVICE_MODE_TXT
|
Abfrage nur für TXT-Eintrag. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
Der Modus ist nicht angegeben. Standarddienstmodus verwenden. |
otDnsTransportProto
otDnsTransportProto
„Type“ steht für das DNS-Transportprotokoll in einem otDnsQueryConfig
.
Dieses OT_DNS_TRANSPORT_TCP
wird nur unterstützt, wenn OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
aktiviert ist.
Attribute | |
---|---|
OT_DNS_TRANSPORT_TCP
|
Die DNS-Abfrage sollte über UDP gesendet werden. |
OT_DNS_TRANSPORT_UDP
|
DNS-Transport ist nicht angegeben. |
Typedefs
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Pointer wird aufgerufen, wenn eine DNS-Antwort für eine Abfrage zur Adressauflösung empfangen wird.
Innerhalb dieses Callbacks kann der Nutzer otDnsAddressResponseGet{Item}()
-Funktionen zusammen mit dem aResponse
-Zeiger verwenden, um weitere Informationen zur Antwort zu erhalten.
Der aResponse
-Zeiger kann nur innerhalb dieses Callbacks verwendet werden und bleibt nach der Rückkehr von dieser Funktion nicht mehr gültig, sodass der Nutzer den aResponse
-Zeiger NICHT für die spätere Verwendung beibehalten DARF.
Das aError
kann Folgendes haben:
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
- OT_ERROR_NONE Eine Antwort wurde empfangen.
- OT_ERROR_ABORT Eine DNS-Transaktion wurde vom Stack abgebrochen.
- OT_ERROR_ANSWER_TIMEOUT Es wurde keine DNS-Antwort innerhalb des Zeitlimits empfangen.
Wenn der Server die Anfrage zur Adressauflösung ablehnt, wird der Fehlercode des Servers wie folgt zugeordnet:
- (0) NOERROR Erfolgreich (keine Fehlerbedingung) -> OT_ERROR_NONE
- (1) FORMERR Server kann aufgrund eines Formatfehlers nicht interpretiert werden -> OT_ERROR_PARSE
- (2) SERVFAIL-Server hat einen internen Fehler festgestellt -> OT_ERROR_FAILED
- (3) NXDOMAIN-Name, der vorhanden sein sollte, existiert jedoch nicht -> OT_ERROR_NOT_FOUND
- (4) NOTIMP Server unterstützt nicht den Abfragetyp (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) REFUSED Server abgelehnt aus Richtlinien-/Sicherheitsgründen -> OT_ERROR_SECURITY
- (6) YXDOMAIN Ein Name, der nicht vorhanden sein sollte, ist vorhanden -> OT_ERROR_DUPLICATED
- (7) YXRRSET Einige RRset-Werte, die nicht vorhanden sein sollten, ist vorhanden -> OT_ERROR_DUPLICATED
- (8) NXRRSET Einige RRset-Werte, die vorhanden sein sollten, ist nicht vorhanden -> OT_ERROR_NOT_FOUND
- (9) NOTAUTH-Dienst ist nicht autoritativ für Zone -> OT_ERROR_SECURITY
- (10) NOTZONE A Name ist nicht in der Zone enthalten -> OT_ERROR_PARSE
- (20) BADNAME Falscher Name -> OT_ERROR_PARSE
- (21) BADALG Schlechter Algorithmus -> OT_ERROR_SECURITY
- (22) BADTRUN Falsche Kürzung -> OT_ERROR_PARSE
- Andere Antwortcodes -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Eine intransparente Darstellung einer Antwort auf eine DNS-Abfrage zur Adressauflösung.
Zeiger auf eine Instanz dieses Typs werden vom Callback otDnsAddressCallback
bereitgestellt.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
Pointer wird aufgerufen, wenn eine DNS-Antwort für eine Suchabfrage (Serviceinstanz-Enumeration) empfangen wird.
Innerhalb dieses Callbacks kann der Nutzer otDnsBrowseResponseGet{Item}()
-Funktionen zusammen mit dem aResponse
-Zeiger verwenden, um weitere Informationen zur Antwort zu erhalten.
Der aResponse
-Zeiger kann nur innerhalb dieses Callbacks verwendet werden und bleibt nach der Rückkehr von dieser Funktion nicht mehr gültig, sodass der Nutzer den aResponse
-Zeiger NICHT für die spätere Verwendung beibehalten DARF.
Die vollständige Liste der möglichen Werte für aError
finden Sie unter otDnsAddressCallback()
.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Eine intransparente Darstellung einer Antwort auf eine Browser-DNS-Abfrage (Dienstinstanzaufzählung).
Zeiger auf eine Instanz dieses Typs werden vom Callback otDnsBrowseCallback
bereitgestellt.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Stellt eine DNS-Abfragekonfiguration dar.
Jedes Feld in dieser Struktur kann auf null gesetzt werden, um anzuzeigen, dass es nicht angegeben ist. Wie die nicht angegebenen Felder behandelt werden, hängt von der Funktion ab, die die Instanz von otDnsQueryConfig
verwendet.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
Pointer wird aufgerufen, wenn eine DNS-Antwort auf eine Anfrage zur Auflösung einer Dienstinstanz eingeht.
Innerhalb dieses Callbacks kann der Nutzer otDnsServiceResponseGet{Item}()
-Funktionen zusammen mit dem aResponse
-Zeiger verwenden, um weitere Informationen zur Antwort zu erhalten.
Der aResponse
-Zeiger kann nur innerhalb dieses Callbacks verwendet werden und bleibt nach der Rückkehr von dieser Funktion nicht mehr gültig, sodass der Nutzer den aResponse
-Zeiger NICHT für die spätere Verwendung beibehalten DARF.
Die vollständige Liste der möglichen Werte für aError
finden Sie unter otDnsAddressCallback()
.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Stellt Informationen zu einer DNS-Dienstinstanz bereit.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Eine intransparente Darstellung einer Antwort auf eine DNS-Abfrage zur Auflösung einer Dienstinstanz.
Zeiger auf eine Instanz dieses Typs werden vom Callback otDnsAddressCallback
bereitgestellt.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
Stellt einen TXT-Eintrageintrag dar, der ein Schlüssel/Wert-Paar darstellt (RFC 6763 – Abschnitt 6.3).
Der Stringzwischenspeicher, auf den mKey
und mValue
verweisen, MÜSSEN beibehalten werden und unverändert bleiben, nachdem eine Instanz dieser Struktur an OpenThread (als Teil der otSrpClientService
-Instanz) übergeben wurde.
In otSrpClientService
wird ein Array mit otDnsTxtEntry
-Einträgen verwendet, um den vollständigen TXT-Eintrag (eine Liste der Einträge) anzugeben.
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Stellt einen iterator für TXT-Eintragseinträge (Schlüssel/Wert-Paare) dar.
Die Datenfelder in dieser Struktur sind für die Verwendung durch den OpenThread-Kern vorgesehen und der Aufrufer sollte sie weder lesen noch ändern.
Funktionen
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Ruft eine IPv6-Adresse ab, die mit einer DNS-Antwort mit einer Adressauflösung verknüpft ist.
DÜRFEN nur ab otDnsAddressCallback
verwendet werden.
Die Antwort kann mehrere IPv6-Adresseinträge enthalten. Mit aIndex
kann die Liste der Adressen iteriert werden. Index Null ruft die erste Adresse ab usw. Wenn wir das Ende der Liste erreichen, wird OT_ERROR_NOT_FOUND
zurückgegeben.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Ruft den vollständigen Hostnamen ab, der einer DNS-Antwort mit einer Adressauflösung zugeordnet ist.
DÜRFEN nur ab otDnsAddressCallback
verwendet werden.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Ruft die IPv6-Adresse des Hosts aus einer Antwort des DNS-Durchsuchens (Serviceinstanz-Enumeration) ab.
DÜRFEN nur ab otDnsBrowseCallback
verwendet werden.
Die Antwort kann null oder mehr IPv6-Adresseinträge enthalten. Mit aIndex
kann die Liste der Adressen iteriert werden. Index Null ruft die erste Adresse ab usw. Wenn wir das Ende der Liste erreichen, wird OT_ERROR_NOT_FOUND
zurückgegeben.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
Ruft Informationen zu einer Dienstinstanz aus einer Antwort des DNS-Browsers (Dienstinstanzaufzählung) ab.
DÜRFEN nur ab otDnsBrowseCallback
verwendet werden.
Eine Antwort auf die DNS-Abfrage kann SRV-, TXT- und AAAA-Einträge für die aufgeführten Dienstinstanzen enthalten. Dies ist ein SOLLTE UND nicht zwingend erforderlich und Server/Resolver sind nicht dazu verpflichtet. Diese Funktion versucht, diese Informationen für eine bestimmte Dienstinstanz abzurufen, sofern verfügbar.
- Wenn in
aResponse
kein übereinstimmender SRV-Eintrag gefunden wird, wirdOT_ERROR_NOT_FOUND
zurückgegeben. In diesem Fall werden keine zusätzlichen Einträge (kein TXT und/oder AAAA) gelesen. - Wenn in
aResponse
ein übereinstimmender SRV-Eintrag gefunden wird, wirdaServiceInfo
aktualisiert undOT_ERROR_NONE
zurückgegeben. - Wenn in
aResponse
kein übereinstimmender TXT-Eintrag gefunden wird, wirdmTxtDataSize
inaServiceInfo
auf null gesetzt. - Wenn die TXT-Daten länger als
mTxtDataSize
sind, wird sie teilweise gelesen undmTxtDataTruncated
wird auf "true" gesetzt. - Wenn in
aResponse
kein übereinstimmender AAAA-Eintrag gefunden wird,mHostAddress is set to all zero or unspecified address.
If there are multiple AAAA records for the host name in @p aResponse,
mHostAddressis set to the first one. The other addresses can be retrieved using
otDnsBrowseResponseGetHostAddress().
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
Ruft eine Dienstinstanz ab, die mit einer Antwort des DNS-Browsers (Dienstinstanzauflistung) verknüpft ist.
DÜRFEN nur ab otDnsBrowseCallback
verwendet werden.
Die Antwort kann mehrere Serviceinstanzeinträge enthalten. Mit aIndex
kann die Liste iteriert werden. Index 0 gibt den ersten Datensatz an. Wenn wir das Ende der Liste erreichen, wird OT_ERROR_NOT_FOUND
zurückgegeben.
Beachten Sie, dass diese Funktion das Serviceinstanzlabel und nicht den vollständigen Serviceinstanznamen im Format
abruft.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Ruft den Dienstnamen ab, der mit einer Antwort des DNS-Browsers (Dienstinstanzaufzählung) verknüpft ist.
DÜRFEN nur ab otDnsBrowseCallback
verwendet werden.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Sendet eine DNS-Suchanfrage (Dienstinstanzaufzählung) für einen bestimmten Dienstnamen.
Ist verfügbar, wenn OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
aktiviert ist.
aConfig
kann NULL sein. In diesem Fall wird die Standardkonfiguration (aus otDnsClientGetDefaultConfig()
) als Konfiguration für diese Abfrage verwendet. In einer Nicht-NULL-aConfig
können einige Felder nicht angegeben werden (Wert null). Die nicht angegebenen Felder werden dann durch die Werte aus der Standardkonfiguration ersetzt.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
Ruft die aktuelle Standardabfragekonfiguration ab, die vom DNS-Client verwendet wird.
Wenn der OpenThread-Stack gestartet wird, wird die Standardkonfiguration für DNS-Abfragen aus einer Reihe von OT-Konfigurationsoptionen wie OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
usw. bestimmt (siehe config/dns_client.h
für alle zugehörigen Konfigurationsoptionen).
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Ein Zeiger auf die aktuelle Standardkonfiguration, die vom DNS-Client verwendet wird.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Sendet eine DNS-Abfrage zur Adressauflösung für AAAA-Einträge (IPv6) für einen bestimmten Hostnamen.
aConfig
kann NULL sein. In diesem Fall wird die Standardkonfiguration (aus otDnsClientGetDefaultConfig()
) als Konfiguration für diese Abfrage verwendet. In einer Nicht-NULL-aConfig
können einige Felder nicht angegeben werden (Wert null). Die nicht angegebenen Felder werden dann durch die Werte aus der Standardkonfiguration ersetzt.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Sendet eine DNS-Abfrage zur Adressauflösung für A-Einträge (IPv4) für einen bestimmten Hostnamen.
Erfordert und ist verfügbar, wenn OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
aktiviert ist.
Wenn eine erfolgreiche Antwort eingeht, werden die Adressen von aCallback
als übersetzte NAT64-IPv6-Versionen der IPv4-Adressen aus der Abfrageantwort zurückgegeben.
aConfig
kann NULL sein. In diesem Fall wird die Standardkonfiguration (aus otDnsClientGetDefaultConfig()
) als Konfiguration für diese Abfrage verwendet. In einer Nicht-NULL-aConfig
können einige Felder nicht angegeben werden (Wert null). Die nicht angegebenen Felder werden dann durch die Werte aus der Standardkonfiguration ersetzt.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Startet die Auflösung einer DNS-Dienstinstanz für eine bestimmte Dienstinstanz.
Ist verfügbar, wenn OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
aktiviert ist.
aConfig
kann NULL sein. In diesem Fall wird die Standardkonfiguration (aus otDnsClientGetDefaultConfig()
) als Konfiguration für diese Abfrage verwendet. In einer Nicht-NULL-aConfig
können einige Felder nicht angegeben werden (Wert null). Die nicht angegebenen Felder werden dann durch die Werte aus der Standardkonfiguration ersetzt.
Die Funktion sendet Abfragen nach SRV- und/oder TXT-Einträgen für die angegebene Dienstinstanz. Mit dem Feld mServiceMode
in otDnsQueryConfig
wird festgelegt, welche Datensätze abgefragt werden (nur SRV, nur TXT oder sowohl SRV als auch TXT) und wie die Abfrage durchgeführt wird (gemeinsam in derselben Nachricht, separat, separat oder im optimierten Modus, wobei der Client zuerst in derselben Nachricht versucht und dann separat, wenn keine Antwort erfolgt).
Der SRV-Eintrag enthält Informationen über Dienstport, Priorität und Gewichtung zusammen mit dem Hostnamen, der der Dienstinstanz zugeordnet ist. Diese Funktion führt keine Adressauflösung für den Hostnamen durch, der aus dem SRV-Eintrag erkannt wurde. Der Server/Resolver kann AAAA/A-Einträge für den Hostnamen im Abschnitt „Zusätzliche Daten“ der Antwort auf die SRV/TXT-Anfrage bereitstellen. Diese Informationen können mit otDnsServiceResponseGetServiceInfo()
in otDnsServiceCallback
abgerufen werden. Nutzer dieser API DÜRFEN NICHT davon ausgehen, dass die Hostadresse immer ab otDnsServiceResponseGetServiceInfo()
verfügbar ist.
Details | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Rückgabewerte |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Startet eine Auflösung der DNS-Dienstinstanz für eine bestimmte Dienstinstanz mit einer möglichen Folgeadressenauflösung für den Hostnamen, der für die Dienstinstanz erkannt wurde.
Ist verfügbar, wenn OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
aktiviert ist.
aConfig
kann NULL sein. In diesem Fall wird die Standardkonfiguration (aus otDnsClientGetDefaultConfig()
) als Konfiguration für diese Abfrage verwendet. In einer Nicht-NULL-aConfig
können einige Felder nicht angegeben werden (Wert null). Die nicht angegebenen Felder werden dann durch die Werte aus der Standardkonfiguration ersetzt. Diese Funktion kann nicht mit mServiceMode
in der DNS-Konfiguration verwendet werden, die auf OT_DNS_SERVICE_MODE_TXT
festgelegt ist (d.h. nur für die Abfrage eines TXT-Eintrags) und gibt OT_ERROR_INVALID_ARGS
zurück.
Verhält sich ähnlich wie otDnsClientResolveService()
-Anfragen nach SRV- und TXT-Einträgen. Wenn der Server/Resolver jedoch im Abschnitt „Zusätzliche Daten“ keine AAAA/A-Einträge für den Hostnamen für den Hostnamen bereitstellt, führt er eine Auflösung des Hostnamens (durch Senden einer AAAA-Abfrage) für den im SRV-Eintrag gefundenen Hostnamen aus. Der Callback aCallback
wird aufgerufen, wenn Antworten für alle Anfragen empfangen werden, d.h. sowohl die Dienst- als auch die Hostadresse-Auflösung abgeschlossen ist.
Details | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Rückgabewerte |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Legt die Standardabfragekonfiguration auf dem DNS-Client fest.
aConfig
kann NULL sein. In diesem Fall wird die Standardkonfiguration auf die Standardwerte der OT-Konfigurationsoptionen (OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
) festgelegt. Dadurch wird die Standardabfragekonfiguration beim Start des OpenThread-Stacks auf die Konfiguration zurückgesetzt.
In einem aConfig
ungleich NULL kann der Aufrufer einige Felder in der otDnsQueryConfig
-Instanz nicht angegeben lassen (Wert null). Die nicht angegebenen Felder werden durch die entsprechenden Optionsdefinitionen der OT-Konfiguration OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
ersetzt, um die Standardabfragekonfiguration zu bilden.
Wenn OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
aktiviert ist, wird die IPv6-Adresse des Servers in der Standardkonfiguration automatisch vom DNS-Client festgelegt und aktualisiert. Dies geschieht nur, wenn der Nutzer dies nicht explizit festlegt oder angibt. Für dieses Verhalten müssen der SRP-Client und die automatische Startfunktion aktiviert sein. Der SRP-Client überwacht dann die Thread-Netzwerkdaten auf DNS-/SRP-Diensteinträge, um einen SRP-Server auszuwählen. Die ausgewählte SRP-Serveradresse wird in der Standardkonfiguration auch als DNS-Serveradresse festgelegt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
Codiert eine bestimmte Liste von TXT-Eintragseinträgen (Schlüssel/Wert-Paare) in TXT-Daten im durch RFC 6763 angegebenen Format.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
Parst die TXT-Daten von einem Iteration und ruft den nächsten TXT-Eintrageintrag (Schlüssel/Wert-Paar) ab.
Die aIterator
MUSS mit otDnsInitTxtEntryIterator()
initialisiert werden, bevor diese Funktion aufgerufen wird. Der TXT-Datenzwischenspeicher, der zur Initialisierung des Iterators verwendet wird, MUSS beibehalten werden und unverändert bleiben. Andernfalls ist das Verhalten dieser Funktion nicht definiert.
Wenn die Länge des geparsten Schlüsselstrings kleiner oder gleich OT_DNS_TXT_KEY_ITER_MAX_LENGTH
ist, wird der Schlüsselstring in mKey
in aEntry
zurückgegeben. Ist der Schlüssel jedoch länger, wird mKey
auf NULL gesetzt und der gesamte codierte TXT-Eintragsstring wird in mValue
und mValueLength
zurückgegeben.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Initialisiert einen TXT-Datensatziterator.
Der Zwischenspeicherzeiger aTxtData
und sein Inhalt MÜSSEN beibehalten werden und unverändert bleiben, während das aIterator
-Objekt verwendet wird.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
Gibt an, ob der Modus „DNS-Namenskomprimierung“ aktiviert ist oder nicht.
Dies ist nur für Tests vorgesehen und verfügbar, wenn die OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
-Konfiguration aktiviert ist.
Details | |
---|---|
Rückgabe |
TRUE, wenn der Modus „DNS-Namenskomprimierung“ aktiviert ist, andernfalls FALSE.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Ruft die IPv6-Hostadresse aus der Antwort zur Auflösung einer DNS-Dienstinstanz ab.
DÜRFEN nur ab otDnsServiceCallback
verwendet werden.
Die Antwort kann null oder mehr IPv6-Adresseinträge enthalten. Mit aIndex
kann die Liste der Adressen iteriert werden. Index Null ruft die erste Adresse ab usw. Wenn wir das Ende der Liste erreichen, wird OT_ERROR_NOT_FOUND
zurückgegeben.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
Ruft Informationen zu einer Dienstinstanz aus der Antwort zur Auflösung einer DNS-Dienstinstanz ab.
DARF nur über ein otDnsServiceCallback
verwendet werden, das von otDnsClientResolveService()
oder otDnsClientResolveServiceAndHostAddress()
ausgelöst wird.
Wenn dies in einem otDnsClientResolveService()
-Callback verwendet wird, kann die DNS-Antwort des Servers/Resolvers im Abschnitt „Zusätzliche Daten“ AAAA-Einträge für den Hostnamen enthalten, der mit der aufgelösten Serviceinstanz verknüpft ist. Dies ist eine SOLLTE und nicht zwingend erforderlich, daher sind keine Server/Resolver erforderlich, um diese Informationen bereitzustellen. Diese Funktion versucht, AAAA-Einträge zu parsen, wenn sie in der Antwort enthalten sind. Wenn er nicht enthalten ist, wird mHostAddress
auf alle Nullen (keine Adresse) gesetzt. Um auch die Hostadresse aufzulösen, kann der Nutzer die DNS-Client-API-Funktion otDnsClientResolveServiceAndHostAddress()
verwenden, die eine Dienstauflösung gefolgt von einer Abfrage zur Auflösung des Hostnamens durchführt (wenn in der SRV-Anfrageantwort keine AAAA-Einträge vom Server/Resolver bereitgestellt werden).
- Wenn in
aResponse
ein übereinstimmender SRV-Eintrag gefunden wird, wirdaServiceInfo
aktualisiert. - Wird kein übereinstimmender SRV-Eintrag gefunden, wird
OT_ERROR_NOT_FOUND
zurückgegeben, es sei denn, in der Abfragekonfiguration für diese Abfrage wurdeOT_DNS_SERVICE_MODE_TXT
fürmServiceMode
verwendet. Die Anfrage betraf also nur den TXT-Eintrag. In diesem Fall versuchen wir immer noch, den SRV-Eintrag aus dem Abschnitt „Additional Data“ (Zusätzliche Daten) der Antwort zu parsen (falls der Server die Informationen bereitgestellt hat). - Wenn in
aResponse
kein übereinstimmender TXT-Eintrag gefunden wird, wirdmTxtDataSize
inaServiceInfo
auf null gesetzt. - Wenn die TXT-Daten länger als
mTxtDataSize
sind, wird sie teilweise gelesen undmTxtDataTruncated
wird auf "true" gesetzt. - Wenn in
aResponse
kein übereinstimmender AAAA-Eintrag gefunden wird,mHostAddress is set to all zero or unspecified address.
If there are multiple AAAA records for the host name in @p aResponse,
mHostAddressis set to the first one. The other addresses can be retrieved using
otDnsServiceResponseGetHostAddress()`.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
Ruft den Namen der Dienstinstanz ab, der mit einer Antwort zur Auflösung einer DNS-Dienstinstanz verknüpft ist.
DÜRFEN nur ab otDnsServiceCallback
verwendet werden.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Aktiviert/deaktiviert den Modus "DNS-Namenskomprimierung".
Die DNS-Namenskomprimierung ist standardmäßig aktiviert. Wenn diese Option deaktiviert ist, werden DNS-Namen als vollständige und nie komprimiert angehängt. Dies gilt für die DNS- und SRP-Client/Server-Module von OpenThread.
Dies ist nur für Tests vorgesehen und verfügbar, wenn die OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
-Konfiguration aktiviert ist.
Im Fall von OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
gilt dieser Modus für alle OpenThread-Instanzen.Wenn Sie diese Funktion aufrufen, wird der Komprimierungsmodus also für alle OpenThread-Instanzen aktiviert bzw. deaktiviert.
Details | |||
---|---|---|---|
Parameter |
|
Makros
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
Maximale Größe des Labelstrings (Null-Zeichen am Ende des Strings einfügen)
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Maximale Größe des Namensstrings (einschließlich Nullzeichen am Ende des Strings).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
Maximale Länge des TXT-Schlüsselstrings, der von otDnsTxtEntryIterator
unterstützt wird.
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
Empfohlene maximale Länge des TXT-Eintragsschlüsselstrings (RFC 6763 – Abschnitt 6.4).
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
Mindestlänge des TXT-Eintragsschlüsselstrings (RFC 6763 – Abschnitt 6.4).
Ressourcen
OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.