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
aResponsenie 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
aResponsezostanie znaleziony pasujący rekord SRV, wartośćaServiceInfozostanie zaktualizowana i zwrócona zostanieOT_ERROR_NONE. - Jeśli w
aResponsenie znaleziono pasującego rekordu TXT, wartośćmTxtDataSizewaServiceInfojest ustawiona na 0. - Jeśli długość danych TXT jest większa niż
mTxtDataSize, są one odczytywane tylko częściowo, amTxtDataTruncatedma wartość Prawda. - Jeśli w
aResponsenie 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 usingotDnsBrowseResponseGetHostAddress()`.
| 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
aResponsezostanie 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_TXTdlamServiceMode(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
aResponsenie znaleziono pasującego rekordu TXT, wartośćmTxtDataSizewaServiceInfojest ustawiona na 0. - Jeśli długość danych TXT jest większa niż
mTxtDataSize, są one odczytywane tylko częściowo, amTxtDataTruncatedma wartość Prawda. - Jeśli w
aResponsenie 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 usingotDnsServiceResponseGetHostAddress()`.
| 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.