DNS
Ten moduł obejmuje funkcje sterujące komunikacją DNS.
Podsumowanie
Funkcje w tym module są dostępne tylko wtedy, gdy jest włączona funkcja OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
.
Wyliczenia |
|
---|---|
otDnsNat64Mode{
|
enum | typ wyliczeniowy Typ reprezentuje tryb NAT64 w otDnsQueryConfig . |
otDnsRecursionFlag{
|
enum | typ wyliczeniowy Typ reprezentuje flagę „Recursion Desired” (RD) w elemencie otDnsQueryConfig . |
otDnsServiceMode{
|
enum | typ wyliczeniowy Typ reprezentuje tryb rozstrzygania usług w otDnsQueryConfig . |
otDnsTransportProto{
|
enum | typ wyliczeniowy Typ reprezentuje protokół transportu DNS w otDnsQueryConfig . |
Definicje typów |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
Wskaźnik jest wywoływany po otrzymaniu odpowiedzi DNS dla zapytania dotyczącego rozpoznawania adresów. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Nieprzejrzysta reprezentacja odpowiedzi na zapytanie DNS dotyczące rozpoznawania adresów. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Wskaźnik jest wywoływany po otrzymaniu odpowiedzi DNS dla zapytania przeglądania (wyliczenia instancji usługi). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Nieprzejrzysta reprezentacja odpowiedzi na zapytanie DNS przeglądania (wyliczenie instancji usługi). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Reprezentuje konfigurację zapytania DNS. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
Wskaźnik jest wywoływany po otrzymaniu odpowiedzi DNS dla zapytania dotyczącego rozpoznawania instancji usługi. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Udostępnia informacje o instancji usługi DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Nieprzejrzysta reprezentacja odpowiedzi na zapytanie DNS rozpoznawania instancji usługi. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Reprezentuje wpis w rekordzie TXT reprezentujący parę klucz/wartość (RFC 6763 – sekcja 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
Reprezentuje iterator wpisów z rekordami TXT (par klucz/wartość). |
Funkcje |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Pobiera adres IPv6 powiązany z odpowiedzią DNS związaną z rozpoznawaniem adresów.
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Pobiera pełną nazwę hosta powiązaną z odpowiedzią DNS rozpoznawania adresów.
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Pobiera adres IPv6 hosta z odpowiedzi Przeglądaj DNS (wyliczenie instancji usługi).
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
Pobiera informacje o instancji usługi z odpowiedzi Przeglądaj DNS (wyliczenie instancji usługi).
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
Pobiera instancję usługi powiązaną z odpowiedzią „przeglądaj DNS” (wyliczenie instancji usługi).
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Pobiera nazwę usługi powiązaną z odpowiedzią „przeglądaj DNS” (wyliczenie instancji usługi).
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Wysyła zapytanie przeglądania DNS (wyliczenie instancji usługi) dla podanej nazwy usługi.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
Pobiera bieżącą domyślną konfigurację zapytania używaną przez klienta DNS.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Wysyła zapytanie DNS dotyczące rozpoznawania adresów dla rekordów AAAA (IPv6) dla danej nazwy hosta.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Wysyła zapytanie DNS dotyczące rozpoznawania adresów dla rekordów A (IPv4) dla danej nazwy hosta.
|
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Uruchamia rozpoznawanie instancji usługi DNS dla danej instancji usługi.
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Uruchamia rozpoznawanie instancji usługi DNS dla danej instancji usługi z możliwością dalszego rozpoznania adresu dla nazwy hosta wykrytej dla instancji usługi.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
Ustawia domyślną konfigurację zapytania w kliencie DNS.
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
Koduje podaną listę wpisów w rekordzie TXT (pary klucz/wartość) w dane TXT (zgodnie z formatem określonym w RFC 6763).
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
Analizuje dane TXT z iteratora i pobiera następny wpis TXT (para klucz/wartość).
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Inicjuje iterator rekordów TXT.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Wskazuje, czy tryb „kompresji nazwy DNS” jest włączony.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Pobiera adres IPv6 hosta z odpowiedzi rozpoznawania instancji usługi DNS.
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
Pobiera informacje o instancji usługi z odpowiedzi rozpoznawania instancji usługi DNS.
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
Pobiera nazwę instancji usługi powiązaną z odpowiedzią dotyczącą rozpoznawania instancji usługi DNS.
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
Włącza lub wyłącza tryb „kompresji nazwy DNS”.
|
Konstrukcja |
|
---|---|
otDnsQueryConfig |
Reprezentuje konfigurację zapytania DNS. |
otDnsServiceInfo |
Udostępnia informacje o instancji usługi DNS. |
otDnsTxtEntry |
Reprezentuje wpis w rekordzie TXT reprezentujący parę klucz/wartość (RFC 6763 – sekcja 6.3). |
otDnsTxtEntryIterator |
Reprezentuje iterator wpisów z rekordami TXT (par klucz/wartość). |
Wyliczenia
otDnsNat64Mode
otDnsNat64Mode
Typ reprezentuje tryb NAT64 w otDnsQueryConfig
.
Tryb NAT64 wskazuje, czy zezwolić na translację adresów NAT64 podczas rozpoznawania adresów klientów DNS, czy nie. Ten tryb jest używany tylko wtedy, gdy włączona jest OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
.
Właściwości | |
---|---|
OT_DNS_NAT64_ALLOW
|
Zezwalaj na translację adresów NAT64 podczas rozpoznawania adresów klientów DNS. |
OT_DNS_NAT64_DISALLOW
|
Nie zezwalaj na translację adresów NAT64 podczas rozpoznawania adresów klientów DNS. |
OT_DNS_NAT64_UNSPECIFIED
|
Nie określono trybu NAT64. Użyj domyślnego trybu NAT64. |
otDnsRecursionFlag
otDnsRecursionFlag
Typ reprezentuje flagę „Recursion Desired” (RD) w elemencie otDnsQueryConfig
.
Właściwości | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
Wskazuje, że serwer nazw DNS nie może rekurencyjnie zrealizować zapytania. |
OT_DNS_FLAG_RECURSION_DESIRED
|
Wskazuje, że serwer nazw DNS może rozwiązywać zapytanie rekurencyjnie. |
OT_DNS_FLAG_UNSPECIFIED
|
Wskazuje, że flaga nie została określona. |
otDnsServiceMode
otDnsServiceMode
Typ reprezentuje tryb rozstrzygania usług w otDnsQueryConfig
.
Jest używana tylko podczas rozpoznawania otDnsClientResolveService()
usługi klienta DNS. Określa on typy rekordów, których dotyczy zapytanie.
Właściwości | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Zapytanie tylko o rekord SRV. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Zapytanie obejmujące rekordy SRV i TXT w tej samej wiadomości. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Najpierw wyślij zapytanie o TXT/SRV, a jeśli się nie uda, wyślij zapytanie oddzielnie. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Równoległe zapytania dotyczące SRV i TXT przy użyciu osobnych wiadomości. |
OT_DNS_SERVICE_MODE_TXT
|
Zapytanie tylko o rekord TXT. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
Nie określono trybu. Użyj domyślnego trybu usługi. |
otDnsTransportProto
otDnsTransportProto
Typ reprezentuje protokół transportu DNS w otDnsQueryConfig
.
Ta właściwość OT_DNS_TRANSPORT_TCP
jest obsługiwana tylko wtedy, gdy włączona jest zasada OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
.
Właściwości | |
---|---|
OT_DNS_TRANSPORT_TCP
|
Zapytanie DNS należy wysłać przez UDP. |
OT_DNS_TRANSPORT_UDP
|
Transport DNS nie jest określony. |
Definicje typów
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Wskaźnik jest wywoływany po otrzymaniu odpowiedzi DNS dla zapytania dotyczącego rozpoznawania adresów.
W ramach tego wywołania zwrotnego użytkownik może użyć funkcji otDnsAddressResponseGet{Item}()
w połączeniu ze wskaźnikiem aResponse
, aby uzyskać więcej informacji o odpowiedzi.
Wskaźnika aResponse
można użyć tylko w ramach tego wywołania zwrotnego, a po powrocie z tej funkcji nie zachowa on ważności, więc użytkownik NIE MOŻE zachować wskaźnika aResponse
do późniejszego użycia.
aError
może zawierać:
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
- OT_ERROR_NONE Odpowiedź została odebrana.
- OT_ERROR_ABORT Transakcja DNS została przerwana przez stos.
- OT_ERROR_odpowiedź_TIMEOUT Nie otrzymano odpowiedzi DNS w przeciągu czasu oczekiwania.
Jeśli serwer odrzuci żądanie rozwiązania adresu, kod błędu z serwera zostanie zmapowany w ten sposób:
- (0) NOERROR Udało się (brak warunku błędu) -> OT_ERROR_NONE
- (1) Serwer FORMERR nie może zinterpretować z powodu błędu formatu -> OT_ERROR_PARSE
- (2) Serwer SERVFAIL napotkał błąd wewnętrzny -> OT_ERROR_FAILED
- (3) Nazwa NXDOMAIN, która powinna istnieć, nie istnieje -> OT_ERROR_NOT_FOUND
- (4) Serwer NOTIMP nie obsługuje typu zapytania (kod OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) Odrzucenie serwera REFUSE z powodu naruszenia zasad/bezpieczeństwa -> OT_ERROR_ERROR
- (6) YXDOMAIN Jedna nazwa, która nie powinna istnieć, istnieje -> OT_ERROR_DUPLICATED
- (7) YXRRSET Jakiś parametr RRset, który nie powinien istnieć, jednak istnieje -> OT_ERROR_DUPLICATED
- (8) NXRRSET Jakiś RRset, który powinien istnieć, nie istnieje -> OT_ERROR_NOT_FOUND
- (9) Usługa NOTAUTH nie jest autorytatywna w przypadku strefy -> OT_ERROR_BEZPIECZEŃSTWO
- (10) NOTZONE Nazwa nie znajduje się w strefie -> OT_ERROR_PARSE
- (20) BADNAME Niewłaściwa nazwa -> OT_ERROR_PARSE
- (21) BADALG Nieprawidłowy algorytm -> OT_ERROR_ERROR
- (22) BADTRUN Nieprawidłowe obcięcie -> OT_ERROR_PARSE
- Inne kody odpowiedzi -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Nieprzejrzysta reprezentacja odpowiedzi na zapytanie DNS dotyczące rozpoznawania adresów.
Wskaźniki do instancji tego typu są dostarczane z wywołania zwrotnego otDnsAddressCallback
.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
Wskaźnik jest wywoływany po otrzymaniu odpowiedzi DNS dla zapytania przeglądania (wyliczenia instancji usługi).
W ramach tego wywołania zwrotnego użytkownik może użyć funkcji otDnsBrowseResponseGet{Item}()
w połączeniu ze wskaźnikiem aResponse
, aby uzyskać więcej informacji o odpowiedzi.
Wskaźnika aResponse
można użyć tylko w ramach tego wywołania zwrotnego, a po powrocie z tej funkcji nie zachowa on ważności, więc użytkownik NIE MOŻE zachować wskaźnika aResponse
do późniejszego użycia.
Pełną listę możliwych wartości parametru aError
znajdziesz tutaj: otDnsAddressCallback()
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Nieprzejrzysta reprezentacja odpowiedzi na zapytanie DNS przeglądania (wyliczenie instancji usługi).
Wskaźniki do instancji tego typu są dostarczane z wywołania zwrotnego otDnsBrowseCallback
.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Reprezentuje konfigurację zapytania DNS.
Możesz ustawić dowolne z pól w tej strukturze na 0, aby wskazać, że nie jest ono określone. Sposób traktowania nieokreślonych pól zależy od funkcji, która używa wystąpienia otDnsQueryConfig
.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
Wskaźnik jest wywoływany po otrzymaniu odpowiedzi DNS dla zapytania dotyczącego rozpoznawania instancji usługi.
W ramach tego wywołania zwrotnego użytkownik może użyć funkcji otDnsServiceResponseGet{Item}()
w połączeniu ze wskaźnikiem aResponse
, aby uzyskać więcej informacji o odpowiedzi.
Wskaźnika aResponse
można użyć tylko w ramach tego wywołania zwrotnego, a po powrocie z tej funkcji nie zachowa on ważności, więc użytkownik NIE MOŻE zachować wskaźnika aResponse
do późniejszego użycia.
Pełną listę możliwych wartości parametru aError
znajdziesz tutaj: otDnsAddressCallback()
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Udostępnia informacje o instancji usługi DNS.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Nieprzejrzysta reprezentacja odpowiedzi na zapytanie DNS rozpoznawania instancji usługi.
Wskaźniki do instancji tego typu są dostarczane z wywołania zwrotnego otDnsAddressCallback
.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
Reprezentuje wpis w rekordzie TXT reprezentujący parę klucz/wartość (RFC 6763 – sekcja 6.3).
Bufory ciągu znaków, na które wskazuje mKey
i mValue
, MUSZĄ zostać zachowane i niezmienione po przekazaniu wystąpienia takiej struktury do OpenThread (w ramach instancji otSrpClientService
).
Tablica wpisów otDnsTxtEntry
jest używana w otSrpClientService
do określenia pełnego rekordu TXT (listy wpisów).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Reprezentuje iterator wpisów z rekordami TXT (par klucz/wartość).
Pola danych w tej strukturze są przeznaczone do użytku przez rdzeni OpenThread, a element wywołujący nie powinien ich odczytywać ani zmieniać.
Funkcje
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Pobiera adres IPv6 powiązany z odpowiedzią DNS związaną z rozpoznawaniem adresów.
MOŻNA używać tylko od otDnsAddressCallback
.
Odpowiedź może zawierać wiele rekordów adresów IPv6. aIndex
może posłużyć do iteracji listy adresów. Indeks 0 otrzymuje pierwszy adres i tak dalej. Gdy dotrzemy do końca listy, zwracany jest kod OT_ERROR_NOT_FOUND
.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Pobiera pełną nazwę hosta powiązaną z odpowiedzią DNS rozpoznawania adresów.
MOŻNA używać tylko od otDnsAddressCallback
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Pobiera adres IPv6 hosta z odpowiedzi Przeglądaj DNS (wyliczenie instancji usługi).
MOŻNA używać tylko od otDnsBrowseCallback
.
Odpowiedź może zawierać zero lub więcej rekordów adresów IPv6. aIndex
może posłużyć do iteracji listy adresów. Indeks 0 otrzymuje pierwszy adres i tak dalej. Gdy dotrzemy do końca listy, zwracany jest kod OT_ERROR_NOT_FOUND
.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
Pobiera informacje o instancji usługi z odpowiedzi Przeglądaj DNS (wyliczenie instancji usługi).
MOŻNA używać tylko od otDnsBrowseCallback
.
Odpowiedź DNS przeglądania może zawierać rekordy SRV, TXT i AAAA dla wyliczonych instancji usługi. Nie jest to wymagane, a serwery/rozwiązania nie są wymagane. Ta funkcja próbuje pobrać te informacje o danej instancji usługi, gdy są dostępne.
- Jeśli w metodzie
aResponse
nie znaleziono pasującego rekordu SRV, zwracana jest wartośćOT_ERROR_NOT_FOUND
. W takim przypadku nie są odczytywane żadne dodatkowe rekordy (żadne z rekordów TXT ani AAAA). - Jeśli w
aResponse
zostanie znaleziony pasujący rekord SRV, wartośćaServiceInfo
zostanie zaktualizowana i zwrócona zostanieOT_ERROR_NONE
. - Jeśli w
aResponse
nie znaleziono pasującego rekordu TXT, wartośćmTxtDataSize
waServiceInfo
jest ustawiona na 0. - Jeśli długość danych TXT jest większa niż
mTxtDataSize
, są one odczytywane tylko częściowo, amTxtDataTruncated
ma wartość Prawda. - Jeśli w
aResponse
nie znaleziono pasującego rekordu AAAA,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()`.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
Pobiera instancję usługi powiązaną z odpowiedzią „przeglądaj DNS” (wyliczenie instancji usługi).
MOŻNA używać tylko od otDnsBrowseCallback
.
Odpowiedź może zawierać wiele rekordów instancji usługi. Do iteracji listy można użyć funkcji aIndex
. Indeks 0 oznacza pierwszy rekord. Gdy dotrzemy do końca listy, zwracany jest kod OT_ERROR_NOT_FOUND
.
Zwróć uwagę, że ta funkcja otrzymuje etykietę instancji usługi, a nie pełną nazwę instancji usługi, która ma postać
.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Pobiera nazwę usługi powiązaną z odpowiedzią „przeglądaj DNS” (wyliczenie instancji usługi).
MOŻNA używać tylko od otDnsBrowseCallback
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Wysyła zapytanie przeglądania DNS (wyliczenie instancji usługi) dla podanej nazwy usługi.
Dostępne, gdy włączona jest opcja OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
.
aConfig
może zawierać wartość NULL. W tym przypadku jako konfiguracja dla tego zapytania zostanie użyta konfiguracja domyślna (z otDnsClientGetDefaultConfig()
). W polu aConfig
bez wartości NULL niektóre pola mogą być nieokreślone (wartość 0). Nieokreślone pola są następnie zastępowane wartościami z konfiguracji domyślnej.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
Pobiera bieżącą domyślną konfigurację zapytania używaną przez klienta DNS.
Po uruchomieniu stosu OpenThread domyślna konfiguracja zapytania DNS jest określana na podstawie zestawu opcji konfiguracji OT, takich jak OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
itp. (wszystkie powiązane opcje konfiguracji znajdziesz na config/dns_client.h
).
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
Wskaźnik do bieżącej domyślnej konfiguracji używanej przez klienta DNS.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Wysyła zapytanie DNS dotyczące rozpoznawania adresów dla rekordów AAAA (IPv6) dla danej nazwy hosta.
aConfig
może zawierać wartość NULL. W tym przypadku jako konfiguracja dla tego zapytania zostanie użyta konfiguracja domyślna (z otDnsClientGetDefaultConfig()
). W polu aConfig
bez wartości NULL niektóre pola mogą być nieokreślone (wartość 0). Nieokreślone pola są następnie zastępowane wartościami z konfiguracji domyślnej.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Wysyła zapytanie DNS dotyczące rozpoznawania adresów dla rekordów A (IPv4) dla danej nazwy hosta.
Wymaga i jest dostępna, gdy włączona jest OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
.
Po otrzymaniu odpowiedzi na żądanie adresy są zwracane z aCallback
jako wersje adresów IPv4 przetłumaczone przez NAT64 z odpowiedzi na zapytanie.
aConfig
może zawierać wartość NULL. W tym przypadku jako konfiguracja dla tego zapytania zostanie użyta konfiguracja domyślna (z otDnsClientGetDefaultConfig()
). W polu aConfig
bez wartości NULL niektóre pola mogą być nieokreślone (wartość 0). Nieokreślone pola są następnie zastępowane wartościami z konfiguracji domyślnej.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Uruchamia rozpoznawanie instancji usługi DNS dla danej instancji usługi.
Dostępne, gdy włączona jest opcja OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
.
aConfig
może zawierać wartość NULL. W tym przypadku jako konfiguracja dla tego zapytania zostanie użyta konfiguracja domyślna (z otDnsClientGetDefaultConfig()
). W polu aConfig
bez wartości NULL niektóre pola mogą być nieokreślone (wartość 0). Nieokreślone pola są następnie zastępowane wartościami z konfiguracji domyślnej.
Funkcja wysyła zapytania dotyczące rekordów SRV lub TXT dla danej instancji usługi. Pole mServiceMode
w tabeli otDnsQueryConfig
określa, do których rekordów należy wysyłać zapytanie (tylko SRV, tylko TXT lub zarówno SRV, jak i TXT) oraz sposób wykonywania zapytania (w tej samej wiadomości, oddzielnie, równolegle lub w trybie zoptymalizowanym, w którym klient najpierw spróbuje użyć tej samej wiadomości, a potem oddzielnie, jeśli nie otrzyma odpowiedzi).
Rekord SRV zawiera informacje o porcie usługi, priorytecie i wadze wraz z nazwą hosta powiązaną z instancją usługi. Ta funkcja NIE wykonuje rozpoznawania adresów dla nazwy hosta wykrytej w rekordzie SRV. Serwer/narzędzie do rozpoznawania nazw może udostępnić rekordy AAAA/A dla nazwy hosta w sekcji Dodatkowe dane odpowiedzi na zapytanie SRV/TXT. Te informacje można pobrać przy użyciu otDnsServiceResponseGetServiceInfo()
w otDnsServiceCallback
. Użytkownicy tego interfejsu API NIE MOGĄ zakładać, że adres hosta będzie zawsze dostępny z otDnsServiceResponseGetServiceInfo()
.
Szczegóły | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||||
Zwracane wartości |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Uruchamia rozpoznawanie instancji usługi DNS dla danej instancji usługi z możliwością dalszego rozpoznania adresu dla nazwy hosta wykrytej dla instancji usługi.
Dostępne, gdy włączona jest opcja OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
.
aConfig
może zawierać wartość NULL. W tym przypadku jako konfiguracja dla tego zapytania zostanie użyta konfiguracja domyślna (z otDnsClientGetDefaultConfig()
). W polu aConfig
bez wartości NULL niektóre pola mogą być nieokreślone (wartość 0). Nieokreślone pola są następnie zastępowane wartościami z konfiguracji domyślnej. Tej funkcji nie można używać z zasadą mServiceMode
w konfiguracji DNS ustawionej na OT_DNS_SERVICE_MODE_TXT
(tzn. z zapytaniem tylko o rekord TXT) i zwraca OT_ERROR_INVALID_ARGS
.
Działa podobnie do usługi otDnsClientResolveService()
wysyłającej zapytania dotyczące rekordów SRV i TXT. Jeśli jednak serwer/narzędzie do rozpoznawania nazw nie udostępnia rekordów AAAA/A dla nazwy hosta w odpowiedzi na zapytanie SRV (w sekcji Dodatkowe dane), wykona rozpoznawanie nazw hostów (wysyłając zapytanie AAAA) dla wykrytej nazwy hosta z rekordu SRV. Wywołanie zwrotne aCallback
jest wywoływane po otrzymaniu odpowiedzi na wszystkie zapytania (tj. rozpoznawanie adresów usług i hosta zostało zakończone).
Szczegóły | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||||
Zwracane wartości |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Ustawia domyślną konfigurację zapytania w kliencie DNS.
aConfig
może zawierać wartość NULL. W tym przypadku domyślna konfiguracja zostanie ustawiona na domyślne z opcji konfiguracji OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
. Spowoduje to przywrócenie domyślnej konfiguracji zapytania do konfiguracji po uruchomieniu stosu OpenThread.
W polu aConfig
bez wartości NULL wywołujący może pozostawić niektóre pola w instancji otDnsQueryConfig
nieokreślone (wartość 0). Pola nieokreślone są zastępowane odpowiednimi definicjami opcji konfiguracji dogrywek OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
, aby utworzyć domyślną konfigurację zapytania.
Gdy zasada OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
jest włączona, klient DNS automatycznie ustawia i aktualizuje adres IPv6 serwera w konfiguracji domyślnej. Dzieje się tak tylko wtedy, gdy użytkownik nie ustawi ani nie określi takiej aktywności. To zachowanie wymaga włączenia klienta SRP i jego funkcji automatycznego uruchamiania. Klient SRP będzie następnie monitorował dane sieci Thread pod kątem wpisów usługi DNS/SRP, aby wybrać serwer SRP. Wybrany adres serwera SRP jest też ustawiony jako adres serwera DNS w domyślnej konfiguracji.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
Koduje podaną listę wpisów w rekordzie TXT (pary klucz/wartość) w dane TXT (zgodnie z formatem określonym w RFC 6763).
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
Analizuje dane TXT z iteratora i pobiera następny wpis TXT (para klucz/wartość).
Przed wywołaniem tej funkcji aIterator
MUSI zostać zainicjowana przy użyciu otDnsInitTxtEntryIterator()
, a bufor danych TXT użyty do zainicjowania iteratora MUSI zostać zachowany i pozostanie niezmieniony. W przeciwnym razie działanie tej funkcji będzie nieokreślone.
Jeśli długość przeanalizowanego ciągu klucza jest mniejsza lub równa OT_DNS_TXT_KEY_ITER_MAX_LENGTH
, ciąg znaków jest zwracany w funkcji mKey
w funkcji aEntry
. Jeśli jednak klucz jest dłuższy, mKey
ma wartość NULL, a cały zakodowany ciąg tekstowy TXT jest zwracany w mValue
i mValueLength
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Inicjuje iterator rekordów TXT.
Wskaźnik bufora aTxtData
i jego zawartość MUSZĄ pozostawać niezmienione podczas używania obiektu aIterator
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
Wskazuje, czy tryb „kompresji nazwy DNS” jest włączony.
Służy ona tylko do testowania i jest dostępna tylko wtedy, gdy włączona jest konfiguracja OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Szczegóły | |
---|---|
Zwroty |
Wartość TRUE, jeśli włączony jest tryb „kompresja nazwy DNS”, w przeciwnym razie ma wartość FALSE.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Pobiera adres IPv6 hosta z odpowiedzi rozpoznawania instancji usługi DNS.
MOŻNA używać tylko od otDnsServiceCallback
.
Odpowiedź może zawierać zero lub więcej rekordów adresów IPv6. aIndex
może posłużyć do iteracji listy adresów. Indeks 0 otrzymuje pierwszy adres i tak dalej. Gdy dotrzemy do końca listy, zwracany jest kod OT_ERROR_NOT_FOUND
.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
Pobiera informacje o instancji usługi z odpowiedzi rozpoznawania instancji usługi DNS.
MUSI być używana tylko w przypadku otDnsServiceCallback
wywołanych z metody otDnsClientResolveService()
lub otDnsClientResolveServiceAndHostAddress()
.
Jeśli zostanie ono użyte z wywołania zwrotnego otDnsClientResolveService()
, odpowiedź DNS z serwera/mechanizmu rozstrzygającego może zawierać rekordy AAAA w sekcji „Dodatkowe dane” dla nazwy hosta powiązanej z instancją usługi, która została rozpoznana. Jest to wymagane, a nie MUSI to wymagać, więc serwery/rozwiązania nie muszą tego robić. Ta funkcja próbuje przeanalizować rekordy AAAA, jeśli znajduje się w odpowiedzi. Jeśli go nie ma, w polu mHostAddress
używane są wszystkie zera (nieokreślony adres). Aby też rozpoznać adres hosta, użytkownik może użyć funkcji otDnsClientResolveServiceAndHostAddress()
interfejsu API klienta DNS, która wykona rozpoznawanie usług, a następnie zapytanie o rozpoznawanie adresów nazw hosta (gdy rekordy AAAA nie są podane przez serwer/rozstrzygający w odpowiedzi na zapytanie SRV).
- Jeśli w
aResponse
zostanie znaleziony pasujący rekord SRV, zaktualizowany zostanieaServiceInfo
. - Jeśli nie znaleziono pasującego rekordu SRV, zwracany jest
OT_ERROR_NOT_FOUND
, chyba że konfiguracja zapytania dla tego zapytania użyłaOT_DNS_SERVICE_MODE_TXT
dlamServiceMode
(co oznacza, że żądanie dotyczyło tylko rekordu TXT). W takim przypadku nadal staramy się przeanalizować rekord SRV z sekcji danych dodatkowych odpowiedzi (na wypadek, gdyby serwer przekazał te informacje). - Jeśli w
aResponse
nie znaleziono pasującego rekordu TXT, wartośćmTxtDataSize
waServiceInfo
jest ustawiona na 0. - Jeśli długość danych TXT jest większa niż
mTxtDataSize
, są one odczytywane tylko częściowo, amTxtDataTruncated
ma wartość Prawda. - Jeśli w
aResponse
nie znaleziono pasującego rekordu AAAA,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()`.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
Pobiera nazwę instancji usługi powiązaną z odpowiedzią dotyczącą rozpoznawania instancji usługi DNS.
MOŻNA używać tylko od otDnsServiceCallback
.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Włącza lub wyłącza tryb „kompresji nazwy DNS”.
Domyślnie kompresja nazw DNS jest włączona. Gdy ta opcja jest wyłączona, nazwy DNS są dołączane jako pełne i nigdy nie są skompresowane. Dotyczy to modułów klienta/serwera DNS i SRP w OpenThread.
Służy ona tylko do testowania i jest dostępna tylko wtedy, gdy włączona jest konfiguracja OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Pamiętaj, że w przypadku użycia funkcji OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
ten tryb ma zastosowanie do wszystkich instancji OpenThread (tzn. wywołanie tej funkcji powoduje włączenie lub wyłączenie trybu kompresji we wszystkich instancjach OpenThread).
Szczegóły | |||
---|---|---|---|
Parametry |
|
Makra
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
Maksymalny rozmiar ciągu etykiety (uwzględnij znak null na końcu ciągu).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Maksymalny rozmiar ciągu nazwy (zawiera znak null na końcu ciągu).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
Maksymalna długość ciągu znaków klucza TXT obsługiwana przez plik otDnsTxtEntryIterator
.
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
Zalecana maksymalna długość ciągu klucza rekordu TXT (RFC 6763 – sekcja 6.4).
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
Minimalna długość ciągu klucza rekordu TXT (RFC 6763 – sekcja 6.4).
Zasoby
Tematy referencyjne interfejsu OpenThread API pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dołączyć do naszej dokumentacji, skorzystaj z sekcji Zasoby.