DNS
Bu modülde DNS iletişimini kontrol eden işlevler bulunur.
Özet
Bu modüldeki işlevler yalnızca OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
özelliği etkinse kullanılabilir.
Sıralamalar |
|
---|---|
otDnsNat64Mode{
|
enum Tür, otDnsQueryConfig içindeki NAT64 modunu temsil eder. |
otDnsRecursionFlag{
|
enum Tür, otDnsQueryConfig içindeki "Yineleme İstenilen" (RD) işaretini temsil eder. |
otDnsServiceMode{
|
enum Tür, otDnsQueryConfig öğesinde hizmet çözümleme modunu temsil eder. |
otDnsTransportProto{
|
enum Tür, otDnsQueryConfig içindeki DNS aktarım protokolünü temsil eder. |
Türdefler |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
Adres çözümleme sorgusu için DNS yanıtı alındığında işaretçi çağrılır. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Adres çözümleme DNS sorgusuna verilen yanıtın opak gösterimi. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Göz atma (hizmet örneği numaralandırması) sorgusu için bir DNS yanıtı alındığında işaretçi çağrılır. |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Göz atma (hizmet örneği numaralandırması) DNS sorgusuna verilen yanıtın opak bir temsili. |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
DNS sorgu yapılandırmasını temsil eder. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
Bir hizmet örneği çözümleme sorgusu için DNS yanıtı alındığında işaretçi çağrılır. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
DNS hizmeti örneği için bilgi sağlar. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Hizmet örneği çözümleme DNS sorgusuna verilen yanıtın opak temsili. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Anahtar/değer çiftini temsil eden bir TXT kaydı girişini temsil eder (RFC 6763 - bölüm 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
TXT kayıt girişleri (anahtar/değer çiftleri) için bir yineleyiciyi temsil eder. |
İşlevler |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Adres çözümleme DNS yanıtıyla ilişkili bir IPv6 adresi alır.
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Adres çözümleme DNS yanıtıyla ilişkilendirilmiş tam ana makine adını alır.
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Bir DNS göz atma (hizmet örneği numaralandırması) yanıtından ana makine IPv6 adresini alır.
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
DNS göz atma (hizmet örneği numaralandırması) yanıtından bir hizmet örneğinin bilgilerini alır.
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
DNS göz atma (hizmet örneği numaralandırması) yanıtıyla ilişkili bir hizmet örneği alır.
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
DNS göz atma (hizmet örneği numaralandırması) yanıtıyla ilişkili hizmet adını alır.
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Belirli bir hizmet adı için DNS göz atma (hizmet örneği numaralandırması) sorgusu gönderir.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
DNS istemcisi tarafından kullanılan geçerli varsayılan sorgu yapılandırmasını alır.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Belirli bir ana makine adı için AAAA (IPv6) kayıtları için adres çözümleme DNS sorgusu gönderir.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Belirli bir ana makine adı ile ilgili A (IPv4) kayıtları için adres çözümleme DNS sorgusu gönderir.
|
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Belirli bir hizmet örneği için DNS hizmeti örneği çözümlemesini başlatır.
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Belirli bir hizmet örneği için DNS hizmet örneği çözümlemesini başlatır. Hizmet örneği için bulunan ana makine adının olası takip adresi çözümlemesi.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
DNS istemcisindeki varsayılan sorgu yapılandırmasını ayarlar.
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
Belirli bir TXT kaydı girişi (anahtar/değer çiftleri) listesini TXT verileri (RFC 6763 tarafından belirtilen biçimde) olarak kodlar.
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
TXT verilerini bir yinelemeleyiciden ayrıştırır ve bir sonraki TXT kaydı girişini (anahtar/değer çifti) alır.
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Bir TXT kayıt yineleme aracını başlatır.
|
otDnsIsNameCompressionEnabled(void)
|
bool
"DNS ad sıkıştırma" modunun etkin olup olmadığını belirtir.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
DNS hizmeti örneği çözümleme yanıtından ana makine IPv6 adresini alır.
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
DNS hizmeti örneği çözümleme yanıtından hizmet örneğiyle ilgili bilgileri alır.
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
DNS hizmeti örneği çözümleme yanıtıyla ilişkili hizmet örneği adını alır.
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
"DNS ad sıkıştırma" modunu etkinleştirir/devre dışı bırakır.
|
Yapılar |
|
---|---|
otDnsQueryConfig |
DNS sorgu yapılandırmasını temsil eder. |
otDnsServiceInfo |
DNS hizmeti örneği için bilgi sağlar. |
otDnsTxtEntry |
Anahtar/değer çiftini temsil eden bir TXT kaydı girişini temsil eder (RFC 6763 - bölüm 6.3). |
otDnsTxtEntryIterator |
TXT kayıt girişleri (anahtar/değer çiftleri) için bir yineleyiciyi temsil eder. |
Sıralamalar
otDnsNat64Mode
otDnsNat64Mode
Tür, otDnsQueryConfig
içindeki NAT64 modunu temsil eder.
NAT64 modu, DNS istemci adresi çözümlemesi sırasında NAT64 adres çevirisine izin verilip verilmeyeceğini belirtir. Bu mod yalnızca OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
etkinleştirildiğinde kullanılır.
Özellikler | |
---|---|
OT_DNS_NAT64_ALLOW
|
DNS istemci adres çözümlemesi sırasında NAT64 adres çevirisine izin ver. |
OT_DNS_NAT64_DISALLOW
|
DNS istemci adres çözümlemesi sırasında NAT64 adres çevirisine izin verme. |
OT_DNS_NAT64_UNSPECIFIED
|
NAT64 modu belirtilmemiş. Varsayılan NAT64 modunu kullanın. |
otDnsRecursionFlag
otDnsRecursionFlag
Tür, otDnsQueryConfig
içindeki "Yineleme İstenilen" (RD) işaretini temsil eder.
Özellikler | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
DNS alan adı sunucusunun sorguyu tekrarlı olarak çözümleyemediğini belirtir. |
OT_DNS_FLAG_RECURSION_DESIRED
|
DNS alan adı sunucusunun sorguyu yinelemeli olarak çözümleyebileceğini belirtir. |
OT_DNS_FLAG_UNSPECIFIED
|
İşaretin belirtilmediğini gösterir. |
otDnsServiceMode
otDnsServiceMode
Tür, otDnsQueryConfig
öğesinde hizmet çözümleme modunu temsil eder.
Bu yalnızca otDnsClientResolveService()
DNS istemci hizmeti çözümlemesi sırasında kullanılır. Sorgulanacak kayıt türlerini belirler.
Özellikler | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Yalnızca SRV kaydı için sorgu gönderilir. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Aynı iletideki hem SRV hem de TXT kayıtlarını sorgulayın. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Önce TXT/SRV için birlikte sorgu yapın, başarısız olursa ayrı olarak sorgulayın. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Ayrı mesajlar kullanarak SRV ve TXT için paralel sorgu oluşturun. |
OT_DNS_SERVICE_MODE_TXT
|
Yalnızca TXT kaydı için sorgu gönderin. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
Mod belirtilmedi. Varsayılan hizmet modunu kullanın. |
otDnsTransportProto
otDnsTransportProto
Tür, otDnsQueryConfig
içindeki DNS aktarım protokolünü temsil eder.
Bu OT_DNS_TRANSPORT_TCP
yalnızca OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
etkinken desteklenir.
Özellikler | |
---|---|
OT_DNS_TRANSPORT_TCP
|
DNS sorgusu UDP üzerinden gönderilmelidir. |
OT_DNS_TRANSPORT_UDP
|
DNS aktarımı belirtilmedi. |
Türdefler
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Adres çözümleme sorgusu için DNS yanıtı alındığında işaretçi çağrılır.
Bu geri çağırma işleminde kullanıcı, yanıt hakkında daha fazla bilgi almak için aResponse
işaretçisiyle birlikte otDnsAddressResponseGet{Item}()
işlevlerini kullanabilir.
aResponse
işaretçisi yalnızca bu geri çağırma içinde kullanılabilir ve bu işlevden döndükten sonra geçerli kalmaz. Bu nedenle, kullanıcı aResponse
işaretçisini daha sonra kullanmak üzere SAKLAMAMALIDIR.
aError
şunlara sahip olabilir:
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
- OT_ERROR_NONE Başarıyla bir yanıt alındı.
- OT_ERROR_ABORT Bir DNS işlemi yığın tarafından iptal edildi.
- OT_ERROR_RESPONSE_TIMEOUT Zaman aşımı süresi içinde hiçbir DNS yanıtı alınmadı.
Sunucu, adres çözümleme isteğini reddederse sunucudan gelen hata kodu aşağıdaki şekilde eşlenir:
- (0) NOERROR Başarılı (hata durumu yok) -> OT_ERROR_NONE
- (1) FORMERR Sunucusu biçim hatası nedeniyle yorumlanamıyor -> OT_ERROR_PARSE
- (2) SERVFAIL Sunucusu dahili bir hatayla karşılaştı -> OT_ERROR_FAILED
- (3) Var olması gereken NXDOMAIN Adı mevcut değil -> OT_ERROR_NOT_FOUND
- (4) NOTIMP Sunucusu şu sorgu türünü desteklemiyor (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) REFUSED Sunucu, politika/güvenlik nedeniyle reddedildi -> OT_ERROR_SECURITY
- (6) YXDOMAIN Mevcut olmaması gereken bir ad mevcut. -> OT_ERROR_DUPLICATED
- (7) YXRRSET Mevcut olmaması gereken bazı RRset'ler var -> OT_ERROR_DUPLICATED
- (8) NXRRSET Mevcut olması gereken bazı RRset'ler mevcut değil -> OT_ERROR_NOT_FOUND
- (9) NOTAUTH Hizmeti alt bölge için yetkili değil -> OT_ERROR_SECURITY
- (10) NOTZONE Bölgede bir ad yok -> OT_ERROR_PARSE
- (20) BADNAME Hatalı ad -> OT_ERROR_PARSE
- (21) BADALG Hatalı algoritma -> OT_ERROR_SECURITY
- (22) BADTRUN Hatalı kısaltma -> OT_ERROR_PARSE
- Diğer yanıt kodları -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Adres çözümleme DNS sorgusuna verilen yanıtın opak gösterimi.
Bu tür bir örneğe yönlendiren işaretçiler, otDnsAddressCallback
geri çağırmasından sağlanır.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
Göz atma (hizmet örneği numaralandırması) sorgusu için bir DNS yanıtı alındığında işaretçi çağrılır.
Bu geri çağırma işleminde kullanıcı, yanıt hakkında daha fazla bilgi almak için aResponse
işaretçisiyle birlikte otDnsBrowseResponseGet{Item}()
işlevlerini kullanabilir.
aResponse
işaretçisi yalnızca bu geri çağırma içinde kullanılabilir ve bu işlevden döndükten sonra geçerli kalmaz. Bu nedenle, kullanıcı aResponse
işaretçisini daha sonra kullanmak üzere SAKLAMAMALIDIR.
aError
için olası değerlerin tam listesi için lütfen otDnsAddressCallback()
adresine bakın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Göz atma (hizmet örneği numaralandırması) DNS sorgusuna verilen yanıtın opak bir temsili.
Bu tür bir örneğe yönlendiren işaretçiler, otDnsBrowseCallback
geri çağırmasından sağlanır.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
DNS sorgu yapılandırmasını temsil eder.
Bu yapıdaki alanlardan herhangi biri, belirtilmediğini belirtmek için sıfır olarak ayarlanabilir. Belirtilmemiş alanların nasıl ele alınacağı, otDnsQueryConfig
örneğini kullanan işlev tarafından belirlenir.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
Bir hizmet örneği çözümleme sorgusu için DNS yanıtı alındığında işaretçi çağrılır.
Bu geri çağırma işleminde kullanıcı, yanıt hakkında daha fazla bilgi almak için aResponse
işaretçisiyle birlikte otDnsServiceResponseGet{Item}()
işlevlerini kullanabilir.
aResponse
işaretçisi yalnızca bu geri çağırma içinde kullanılabilir ve bu işlevden döndükten sonra geçerli kalmaz. Bu nedenle, kullanıcı aResponse
işaretçisini daha sonra kullanmak üzere SAKLAMAMALIDIR.
aError
için olası değerlerin tam listesi için lütfen otDnsAddressCallback()
adresine bakın.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Hizmet örneği çözümleme DNS sorgusuna verilen yanıtın opak temsili.
Bu tür bir örneğe yönlendiren işaretçiler, otDnsAddressCallback
geri çağırmasından sağlanır.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
Anahtar/değer çiftini temsil eden bir TXT kaydı girişini temsil eder (RFC 6763 - bölüm 6.3).
mKey
ve mValue
tarafından işaret edilen dize arabelleklerinin devam etmesi ve bu tür bir yapının örneği OpenThread'e (otSrpClientService
örneğinin bir parçası olarak) geçirildikten sonra değişmeden kalması ZORUNLUDUR.
Tam TXT kaydını (giriş listesi) belirtmek için otSrpClientService
öğesinde bir otDnsTxtEntry
giriş dizisi kullanılır.
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
TXT kayıt girişleri (anahtar/değer çiftleri) için bir yineleyiciyi temsil eder.
Bu yapıdaki veri alanları OpenThread core tarafından kullanılmak üzere tasarlanmıştır ve çağrıyı yapan bu alanları okumamalı veya değiştirmemelidir.
İşlevler
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Adres çözümleme DNS yanıtıyla ilişkili bir IPv6 adresi alır.
Yalnızca otDnsAddressCallback
tarihinden itibaren kullanılmalıdır.
Yanıt birden fazla IPv6 adres kaydı içerebilir. aIndex
, adres listesinde yineleme yapmak için kullanılabilir. Dizin sıfır, ilk adresi alır ve bu şekilde devam eder. Listenin sonuna ulaştığımızda OT_ERROR_NOT_FOUND
döndürülür.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Adres çözümleme DNS yanıtıyla ilişkilendirilmiş tam ana makine adını alır.
Yalnızca otDnsAddressCallback
tarihinden itibaren kullanılmalıdır.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Bir DNS göz atma (hizmet örneği numaralandırması) yanıtından ana makine IPv6 adresini alır.
Yalnızca otDnsBrowseCallback
tarihinden itibaren kullanılmalıdır.
Yanıt sıfır veya daha fazla IPv6 adres kaydı içerebilir. aIndex
, adres listesinde yineleme yapmak için kullanılabilir. Dizin sıfır, ilk adresi alır ve bu şekilde devam eder. Listenin sonuna ulaştığımızda OT_ERROR_NOT_FOUND
döndürülür.
Ayrıntılar | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||
Döndürülen Değerler |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
DNS göz atma (hizmet örneği numaralandırması) yanıtından bir hizmet örneğinin bilgilerini alır.
Yalnızca otDnsBrowseCallback
tarihinden itibaren kullanılmalıdır.
Göz atma DNS yanıtı, numaralandırılmış hizmet örnekleri için SRV, TXT ve AAAA kayıtlarını içerebilir. Bu bir ZORUNLUDUR, ZORUNLU değildir ve sunucuların/çözümleyicilerin bunu sağlaması gerekmez. Bu işlev, mümkün olduğunda belirli bir hizmet örneği için bu bilgileri almaya çalışır.
aResponse
içinde eşleşen SRV kaydı bulunmazsaOT_ERROR_NOT_FOUND
döndürülür. Bu durumda, ek kayıtlar (TXT ve/veya AAAA) okunmaz.aResponse
içinde eşleşen bir SRV kaydı bulunursaaServiceInfo
güncellenir veOT_ERROR_NONE
döndürülür.aResponse
içinde eşleşen bir TXT kaydı bulunmazsaaServiceInfo
içindekimTxtDataSize
değeri sıfır olarak ayarlanır.- TXT veri uzunluğu
mTxtDataSize
değerinden büyükse kısmen okunur vemTxtDataTruncated
doğru değerine ayarlanır. aResponse
ile eşleşen AAAA kaydı bulunmazsamHostAddress 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()" işlemine başlayın.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
DNS göz atma (hizmet örneği numaralandırması) yanıtıyla ilişkili bir hizmet örneği alır.
Yalnızca otDnsBrowseCallback
tarihinden itibaren kullanılmalıdır.
Yanıt, birden fazla hizmet örneği kaydı içerebilir. aIndex
, listeyi yinelemek için kullanılabilir. Dizin sıfır ilk kaydı verir. Listenin sonuna ulaştığımızda OT_ERROR_NOT_FOUND
döndürülür.
Bu işlevin
biçimindeki tam hizmet örneği adını değil, hizmet örneği etiketini aldığını unutmayın.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
DNS göz atma (hizmet örneği numaralandırması) yanıtıyla ilişkili hizmet adını alır.
Yalnızca otDnsBrowseCallback
tarihinden itibaren kullanılmalıdır.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Belirli bir hizmet adı için DNS göz atma (hizmet örneği numaralandırması) sorgusu gönderir.
OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
etkinleştirildiğinde kullanılabilir.
aConfig
NULL olabilir. Bu durumda, bu sorgu için yapılandırma olarak varsayılan yapılandırma (otDnsClientGetDefaultConfig()
öğesinden) kullanılır. NULL olmayan bir aConfig
için bazı alanlar belirtilmeden (sıfır değeri) bırakılabilir. Belirtilmemiş alanlar daha sonra varsayılan yapılandırmadaki değerlerle değiştirilir.
Ayrıntılar | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||
Döndürülen Değerler |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
DNS istemcisi tarafından kullanılan geçerli varsayılan sorgu yapılandırmasını alır.
OpenThread yığını başladığında, varsayılan DNS sorgu yapılandırması OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
gibi bir dizi OT yapılandırma seçeneğinden belirlenir (ilgili tüm yapılandırma seçenekleri için config/dns_client.h
sayfasına bakın).
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
||
İadeler |
DNS istemcisi tarafından kullanılan mevcut varsayılan yapılandırmanın işaretçisi.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Belirli bir ana makine adı için AAAA (IPv6) kayıtları için adres çözümleme DNS sorgusu gönderir.
aConfig
NULL olabilir. Bu durumda, bu sorgu için yapılandırma olarak varsayılan yapılandırma (otDnsClientGetDefaultConfig()
öğesinden) kullanılır. NULL olmayan bir aConfig
için bazı alanlar belirtilmeden (sıfır değeri) bırakılabilir. Belirtilmemiş alanlar daha sonra varsayılan yapılandırmadaki değerlerle değiştirilir.
Ayrıntılar | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||
Döndürülen Değerler |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Belirli bir ana makine adı ile ilgili A (IPv4) kayıtları için adres çözümleme DNS sorgusu gönderir.
Bu özellik gerektirir ve OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
etkinleştirildiğinde kullanılabilir.
Başarılı bir yanıt alındığında adresler, sorgu yanıtından IPv4 adreslerinin NAT64 IPv6 çevrilmiş sürümleri olarak aCallback
özelliğinden döndürülür.
aConfig
NULL olabilir. Bu durumda, bu sorgu için yapılandırma olarak varsayılan yapılandırma (otDnsClientGetDefaultConfig()
öğesinden) kullanılır. NULL olmayan bir aConfig
için bazı alanlar belirtilmeden (sıfır değeri) bırakılabilir. Belirtilmemiş alanlar daha sonra varsayılan yapılandırmadaki değerlerle değiştirilir.
Ayrıntılar | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||
Döndürülen Değerler |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Belirli bir hizmet örneği için DNS hizmeti örneği çözümlemesini başlatır.
OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
etkinleştirildiğinde kullanılabilir.
aConfig
NULL olabilir. Bu durumda, bu sorgu için yapılandırma olarak varsayılan yapılandırma (otDnsClientGetDefaultConfig()
öğesinden) kullanılır. NULL olmayan bir aConfig
için bazı alanlar belirtilmeden (sıfır değeri) bırakılabilir. Belirtilmemiş alanlar daha sonra varsayılan yapılandırmadaki değerlerle değiştirilir.
İşlev, belirtilen hizmet örneği için SRV ve/veya TXT kayıtları için sorgular gönderir. otDnsQueryConfig
öğesindeki mServiceMode
alanı, hangi kayıtların sorgulanacağını (yalnızca SRV, yalnızca TXT veya SRV ve TXT) ve sorgunun nasıl gerçekleştirileceğini (aynı iletide birlikte, paralel olarak veya istemcinin önce aynı mesajı, sonra da yanıt alamazsa ayrı ayrı olarak deneyeceği optimize edilmiş modda) belirler.
SRV kaydı, hizmet örneğiyle ilişkilendirilen ana makine adıyla birlikte hizmet bağlantı noktası, öncelik ve ağırlık hakkında bilgi sağlar. Bu işlev, SRV kaydından keşfedilen ana bilgisayar adı için adres çözümlemesi YAPMAZ. Sunucu/çözümleyici, SRV/TXT sorgusuna verilen yanıtın Ek Veriler bölümünde ana makine adı için AAAA/A kayıtlarını sağlayabilir. Bu bilgiler otDnsServiceCallback
ürününde otDnsServiceResponseGetServiceInfo()
kullanılarak alınabilir. Bu API'nin kullanıcıları, ana makine adresinin her zaman otDnsServiceResponseGetServiceInfo()
ürününden kullanılabilir olacağını varsaymamalıdır.
Ayrıntılar | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||
Döndürülen Değerler |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Belirli bir hizmet örneği için DNS hizmet örneği çözümlemesini başlatır. Hizmet örneği için bulunan ana makine adının olası takip adresi çözümlemesi.
OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
etkinleştirildiğinde kullanılabilir.
aConfig
NULL olabilir. Bu durumda, bu sorgu için yapılandırma olarak varsayılan yapılandırma (otDnsClientGetDefaultConfig()
öğesinden) kullanılır. NULL olmayan bir aConfig
için bazı alanlar belirtilmeden (sıfır değeri) bırakılabilir. Belirtilmemiş alanlar daha sonra varsayılan yapılandırmadaki değerlerle değiştirilir. Bu işlev, DNS yapılandırması OT_DNS_SERVICE_MODE_TXT
olarak ayarlanmış (yani yalnızca TXT kaydı için sorgulama) mServiceMode
ile kullanılamaz ve OT_ERROR_INVALID_ARGS
değerini döndürür.
SRV ve TXT kayıtları için sorgu gönderen otDnsClientResolveService()
ile benzer şekilde davranır. Ancak sunucu/çözümleyici, SRV sorgusuna yanıtta (Ek Veri bölümünde) ana makine adı için AAAA/A kayıtlarını sağlamazsa SRV kaydından bulunan ana makine adı için ana makine adı çözümlemesini (AAAA sorgusu göndererek) gerçekleştirir. Tüm sorgular için yanıtlar alındığında (yani hem hizmet hem de ana makine adresi çözümlemeleri tamamlandığında) aCallback
geri çağırması çağrılır.
Ayrıntılar | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||
Döndürülen Değerler |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
DNS istemcisindeki varsayılan sorgu yapılandırmasını ayarlar.
aConfig
NULL olabilir. Bu durumda varsayılan yapılandırma, OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
OT yapılandırma seçeneklerindeki varsayılanlara ayarlanır. Bu işlem, OpenThread yığını başladığında varsayılan sorgu yapılandırmasını tekrar yapılandırmaya sıfırlar.
NULL olmayan bir aConfig
için arayan, otDnsQueryConfig
örneğindeki bazı alanları belirtmeden (sıfır değeri) bırakmayı seçebilir. Belirtilmemiş alanlar, varsayılan sorgu yapılandırmasını oluşturmak için ilgili OT yapılandırması seçeneği tanımları OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
ile değiştirilir.
OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
etkinleştirildiğinde, sunucunun varsayılan yapılandırmadaki IPv6 adresi DNS istemcisi tarafından otomatik olarak ayarlanır ve güncellenir. Bu işlem yalnızca kullanıcı bunu açıkça ayarlamadığında veya belirtmediğinde yapılır. Bu davranış, SRP istemcisinin ve otomatik başlatma özelliğinin etkinleştirilmesini gerektirir. Ardından SRP istemcisi, SRP sunucusu seçmek için DNS/SRP Hizmeti girişleri için İş Parçacığı Ağ Verilerini izler. Seçilen SRP sunucu adresi, varsayılan yapılandırmada DNS sunucusu adresi olarak da ayarlanır.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
Belirli bir TXT kaydı girişi (anahtar/değer çiftleri) listesini TXT verileri (RFC 6763 tarafından belirtilen biçimde) olarak kodlar.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
TXT verilerini bir yinelemeleyiciden ayrıştırır ve bir sonraki TXT kaydı girişini (anahtar/değer çifti) alır.
aIterator
, bu işlev çağrılmadan önce otDnsInitTxtEntryIterator()
kullanılarak başlatılmalıdır. Yineleyiciyi başlatmak için kullanılan TXT veri arabelleği devamlı kalmalı ve değiştirilmemelidir. Aksi takdirde, bu işlevin davranışı tanımsız kalır.
Ayrıştırılan anahtar dizesinin uzunluğu OT_DNS_TXT_KEY_ITER_MAX_LENGTH
değerinden küçük veya ona eşitse anahtar dizesi aEntry
öğesinde mKey
parametresinde döndürülür. Ancak anahtar daha uzun olursa mKey
, NULL olarak ayarlanır ve kodlanmış TXT giriş dizesinin tamamı mValue
ve mValueLength
içinde döndürülür.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Bir TXT kayıt yineleme aracını başlatır.
aIterator
nesnesi kullanılırken aTxtData
arabellek işaretçisi ve içeriği değişmeden kalmalıdır.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
"DNS ad sıkıştırma" modunun etkin olup olmadığını belirtir.
Bu yalnızca test amaçlıdır ve OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
yapılandırması etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |
---|---|
İadeler |
"DNS ad sıkıştırma" modu etkinse DOĞRU, aksi takdirde YANLIŞ olur.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
DNS hizmeti örneği çözümleme yanıtından ana makine IPv6 adresini alır.
Yalnızca otDnsServiceCallback
tarihinden itibaren kullanılmalıdır.
Yanıt sıfır veya daha fazla IPv6 adres kaydı içerebilir. aIndex
, adres listesinde yineleme yapmak için kullanılabilir. Dizin sıfır, ilk adresi alır ve bu şekilde devam eder. Listenin sonuna ulaştığımızda OT_ERROR_NOT_FOUND
döndürülür.
Ayrıntılar | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||
Döndürülen Değerler |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
DNS hizmeti örneği çözümleme yanıtından hizmet örneğiyle ilgili bilgileri alır.
Yalnızca otDnsClientResolveService()
veya otDnsClientResolveServiceAndHostAddress()
üzerinden tetiklenen bir otDnsServiceCallback
öğesinden kullanılması ZORUNLUDUR.
Bu işlev bir otDnsClientResolveService()
geri çağırmasından kullanıldığında sunucudan/çözücüden gelen DNS yanıtı, çözümlenen hizmet örneğiyle ilişkili ana makine adına ait Ek Veriler bölümüne AAAA kayıtlarını içerebilir. Bu, GEREKLİ bir zorunluluktur. Dolayısıyla sunucuların/çözümleyicilerin bu bilgiyi sağlamasına gerek yoktur. Bu işlev, yanıta dahil edilirse AAAA kayıtlarını ayrıştırmaya çalışır. Dahil değilse mHostAddress
tüm sıfırlara (belirtilmemiş adres) ayarlanır. Kullanıcı, ana makine adresini çözümlemek için otDnsClientResolveServiceAndHostAddress()
DNS istemci API işlevini kullanabilir. Bu işlev, hizmet çözümlemesini ve ardından bir ana makine adı adres çözümleme sorgusu (SRV sorgu yanıtında sunucu/çözücü tarafından AAAA kayıtları sağlanmadığında) gerçekleştirir.
aResponse
içinde eşleşen bir SRV kaydı bulunursaaServiceInfo
güncellenir.- Eşleşen bir SRV kaydı bulunmazsa bu sorgunun sorgu yapılandırmasında
mServiceMode
içinOT_DNS_SERVICE_MODE_TXT
kullanılmadığı (yani isteğin yalnızca TXT kaydı olduğu) süreceOT_ERROR_NOT_FOUND
döndürülür. Bu durumda, SRV kaydını yanıttaki Ek Veri bölümünden ayrıştırmaya çalışırız (sunucunun bilgi sağlaması durumunda). aResponse
içinde eşleşen bir TXT kaydı bulunmazsaaServiceInfo
içindekimTxtDataSize
değeri sıfır olarak ayarlanır.- TXT veri uzunluğu
mTxtDataSize
değerinden büyükse kısmen okunur vemTxtDataTruncated
doğru değerine ayarlanır. aResponse
ile eşleşen AAAA kaydı bulunmazsamHostAddress 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()" işlemini gerçekleştirin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
DNS hizmeti örneği çözümleme yanıtıyla ilişkili hizmet örneği adını alır.
Yalnızca otDnsServiceCallback
tarihinden itibaren kullanılmalıdır.
Ayrıntılar | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||
Döndürülen Değerler |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
"DNS ad sıkıştırma" modunu etkinleştirir/devre dışı bırakır.
Varsayılan olarak DNS adı sıkıştırma etkindir. Devre dışı bırakıldığında DNS adları tam olarak eklenir ve hiçbir zaman sıkıştırılmaz. Bu, OpenThread'in DNS ve SRP istemci/sunucu modülleri için geçerlidir.
Bu yalnızca test amaçlıdır ve OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
yapılandırması etkinleştirildiğinde kullanılabilir.
OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
kullanılması durumunda, bu modun tüm OpenThread örnekleri için geçerli olduğunu unutmayın (yani bu işlevin çağrılması, tüm OpenThread örneklerinde sıkıştırma modunu etkinleştirir/devre dışı bırakır).
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Makrolar
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
Maksimum etiket dizesi boyutu (dizenin sonuna boş karakter ekleyin).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Maksimum ad dizesi boyutu (dizenin sonundaki boş karakter dahil).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
otDnsTxtEntryIterator
tarafından desteklenen maksimum TXT anahtar dizesi uzunluğu.
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
TXT kaydı anahtar dizesi için önerilen maksimum uzunluk (RFC 6763 - bölüm 6.4).
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
TXT kaydı anahtar dizesinin minimum uzunluğu (RFC 6763 - bölüm 6.4).
Kaynaklar
OpenThread API Referans konuları, GitHub'da bulunan kaynak koddan gelir. Daha fazla bilgi edinmek veya dokümanlarımıza katkıda bulunmak için Kaynaklar bölümüne bakın.