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{
  OT_DNS_NAT64_UNSPECIFIED = 0,
  OT_DNS_NAT64_ALLOW = 1,
  OT_DNS_NAT64_DISALLOW = 2
}
enum
Tür, otDnsQueryConfig içindeki NAT64 modunu temsil eder.
otDnsRecursionFlag{
  OT_DNS_FLAG_UNSPECIFIED = 0,
  OT_DNS_FLAG_RECURSION_DESIRED = 1,
  OT_DNS_FLAG_NO_RECURSION = 2
}
enum
Tür, otDnsQueryConfig içindeki "Yineleme İstenilen" (RD) işaretini temsil eder.
otDnsServiceMode{
  OT_DNS_SERVICE_MODE_UNSPECIFIED = 0,
  OT_DNS_SERVICE_MODE_SRV = 1,
  OT_DNS_SERVICE_MODE_TXT = 2,
  OT_DNS_SERVICE_MODE_SRV_TXT = 3,
  OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE = 4,
  OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE = 5
}
enum
Tür, otDnsQueryConfig öğesinde hizmet çözümleme modunu temsil eder.
otDnsTransportProto{
  OT_DNS_TRANSPORT_UDP = 1,
  OT_DNS_TRANSPORT_TCP = 2
}
enum
Tür, otDnsQueryConfig içindeki DNS aktarım protokolünü temsil eder.

Türdefler

otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
Adres çözümleme sorgusu için DNS yanıtı alındığında işaretçi çağrılır.
otDnsAddressResponse typedef
Adres çözümleme DNS sorgusuna verilen yanıtın opak gösterimi.
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
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 typedef
Göz atma (hizmet örneği numaralandırması) DNS sorgusuna verilen yanıtın opak bir temsili.
otDnsQueryConfig typedef
DNS sorgu yapılandırmasını temsil eder.
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
Bir hizmet örneği çözümleme sorgusu için DNS yanıtı alındığında işaretçi çağrılır.
otDnsServiceInfo typedef
DNS hizmeti örneği için bilgi sağlar.
otDnsServiceResponse typedef
Hizmet örneği çözümleme DNS sorgusuna verilen yanıtın opak temsili.
otDnsTxtEntry typedef
struct otDnsTxtEntry
Anahtar/değer çiftini temsil eden bir TXT kaydı girişini temsil eder (RFC 6763 - bölüm 6.3).
otDnsTxtEntryIterator typedef
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)
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
[in] aError
DNS işleminin sonucu.
[in] aResponse
Yanıtın işaretçisi (her zaman NULL değildir).
[in] aContext
Uygulamaya özel bağlama işaret eden bir işaretçi.

  • 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
[in] aError
DNS işleminin sonucu.
[in] aResponse
Yanıtın işaretçisi (her zaman NULL değildir).
[in] aContext
Uygulamaya özel bağlama işaret eden bir işaretçi.

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
[in] aError
DNS işleminin sonucu.
[in] aResponse
Yanıtın işaretçisi (her zaman NULL değildir).
[in] aContext
Uygulamaya özel bağlama işaret eden bir işaretçi.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

DNS hizmeti örneği için bilgi sağlar.

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
[in] aResponse
Yanıtın işaretçisi.
[in] aIndex
Alınacak adres kaydı dizini.
[out] aAddress
Adres çıkışı için bir IPv6 adresine işaretçi (BOŞ OLMAMALIDIR).
[out] aTtl
Adres için TTL çıkışını uint32_t olarak gösteren işaretçi. Arayanın TTL'yi almak istememesi durumunda bu değer NULL olabilir.
Döndürülen Değerler
OT_ERROR_NONE
Adres başarıyla okundu.
OT_ERROR_NOT_FOUND
aIndex adresindeki aResponse için adres kaydı yok.
OT_ERROR_PARSE
aResponse içindeki kayıtlar ayrıştırılamadı.
OT_ERROR_INVALID_STATE
NAT64 öneki yok (yalnızca NAT64'e izin verildiğinde geçerlidir).

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
[in] aResponse
Yanıtın işaretçisi.
[out] aNameBuffer
Tam ana makine adının çıktısını almak için karakter dizisine bir arabellek (BOŞ OLMAMALIDIR).
[in] aNameBufferSize
aNameBuffer boyutu.
Döndürülen Değerler
OT_ERROR_NONE
Tam ana makine adı başarıyla okundu.
OT_ERROR_NO_BUFS
Bu ad aNameBuffer içine uymuyor.

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
[in] aResponse
Yanıtın işaretçisi.
[in] aHostName
Adresi alacak ana makine adı (BOŞ OLMAMALIDIR).
[in] aIndex
Alınacak adres kaydı dizini.
[out] aAddress
Adres çıkışı için bir IPv6 adresine işaretçi (BOŞ OLMAMALIDIR).
[out] aTtl
Adres için TTL çıkışını uint32_t olarak gösteren işaretçi. Arayanın TTL'yi almak istememesi durumunda bu değer NULL olabilir.
Döndürülen Değerler
OT_ERROR_NONE
Adres başarıyla okundu.
OT_ERROR_NOT_FOUND
aResponse bölgesindeki aIndex konumunda aHostname için adres kaydı yok.
OT_ERROR_PARSE
aResponse içindeki kayıtlar ayrıştırılamadı.

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ı bulunmazsa OT_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ı bulunursa aServiceInfo güncellenir ve OT_ERROR_NONE döndürülür.
  • aResponse içinde eşleşen bir TXT kaydı bulunmazsa aServiceInfo içindeki mTxtDataSize değeri sıfır olarak ayarlanır.
  • TXT veri uzunluğu mTxtDataSize değerinden büyükse kısmen okunur ve mTxtDataTruncated doğru değerine ayarlanır.
  • aResponse ile eşleşen AAAA kaydı bulunmazsa 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()" işlemine başlayın.

Ayrıntılar
Parametreler
[in] aResponse
Yanıtın işaretçisi.
[in] aInstanceLabel
Hizmet örneği etiketi (BOŞ OLMAMALIDIR).
[out] aServiceInfo
Hizmet örneği bilgilerinin çıkışını veren bir ServiceInfo (BOŞ OLMAMALIDIR).
Döndürülen Değerler
OT_ERROR_NONE
Hizmet örneği bilgileri okundu. aServiceInfo güncellendi.
OT_ERROR_NOT_FOUND
aInstanceLabel için eşleşen bir SRV kaydı bulunamadı.
OT_ERROR_NO_BUFS
Ana makine adı ve/veya TXT verileri, belirtilen arabelleklere sığamadı.
OT_ERROR_PARSE
aResponse içindeki kayıtlar ayrıştırılamadı.

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
[in] aResponse
Yanıtın işaretçisi.
[in] aIndex
Alınacak hizmet örneği kaydı dizini.
[out] aLabelBuffer
Hizmet örneği etiketinin çıktısını almak için karakter dizisine bir arabellek (BOŞ OLMAMALIDIR).
[in] aLabelBufferSize
aLabelBuffer boyutu.
Döndürülen Değerler
OT_ERROR_NONE
Hizmet örneği başarıyla okundu.
OT_ERROR_NO_BUFS
Bu ad aNameBuffer içine uymuyor.
OT_ERROR_NOT_FOUND
aIndex adresindeki aResponse için hizmet örneği kaydı yok.
OT_ERROR_PARSE
aResponse içindeki kayıtlar ayrıştırılamadı.

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
[in] aResponse
Yanıtın işaretçisi.
[out] aNameBuffer
Hizmet adının çıktısını almak için karakter dizisine bir arabellek (BOŞ OLMAMALIDIR).
[in] aNameBufferSize
aNameBuffer boyutu.
Döndürülen Değerler
OT_ERROR_NONE
Hizmet adı başarıyla okundu.
OT_ERROR_NO_BUFS
Bu ad aNameBuffer içine uymuyor.

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
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aServiceName
Sorgulanacak hizmet adı (NULL OLMAMALIDIR).
[in] aCallback
Yanıt alımında veya zaman aşımında çağrılacak bir işlev işaretçisi.
[in] aContext
Rastgele bağlam bilgilerine yönlendiren bir işaretçi.
[in] aConfig
Bu sorgu için kullanılacak yapılandırma işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
Sorgu başarıyla gönderildi. Durumu bildirmek için aCallback çağrılır.
OT_ERROR_NO_BUFS
Sorgunun hazırlanması ve gönderilmesi için yetersiz arabellek.

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
[in] aInstance
OpenThread örneğinin işaretçisi.
İ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
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aHostName
Adresin sorgulanacağı ana makine adı (BOŞ OLMAMALIDIR).
[in] aCallback
Yanıt alımında veya zaman aşımında çağrılacak bir işlev işaretçisi.
[in] aContext
Rastgele bağlam bilgilerine yönlendiren bir işaretçi.
[in] aConfig
Bu sorgu için kullanılacak yapılandırma işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
Sorgu başarıyla gönderildi. Durumu bildirmek için aCallback çağrılır.
OT_ERROR_NO_BUFS
Sorgunun hazırlanması ve gönderilmesi için yetersiz arabellek.
OT_ERROR_INVALID_ARGS
Ana makine adı geçerli bir biçimde değil.
OT_ERROR_INVALID_STATE
İleti dizisi arayüzü açık olmadığı için sorgu gönderilemiyor.

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
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aHostName
Adresin sorgulanacağı ana makine adı (BOŞ OLMAMALIDIR).
[in] aCallback
Yanıt alımında veya zaman aşımında çağrılacak bir işlev işaretçisi.
[in] aContext
Rastgele bağlam bilgilerine yönlendiren bir işaretçi.
[in] aConfig
Bu sorgu için kullanılacak yapılandırma işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
Sorgu başarıyla gönderildi. Durumu bildirmek için aCallback çağrılır.
OT_ERROR_NO_BUFS
Sorgunun hazırlanması ve gönderilmesi için yetersiz arabellek.
OT_ERROR_INVALID_ARGS
Ana makine adı geçerli bir biçimde değil veya yapılandırmada NAT64 etkin değil.
OT_ERROR_INVALID_STATE
İleti dizisi arayüzü açık olmadığı için sorgu gönderilemiyor.

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
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aInstanceLabel
Hizmet örneği etiketi.
[in] aServiceName
Hizmet adı (aInstanceLabel ile birlikte tam örnek adını oluşturur).
[in] aCallback
Yanıt alımında veya zaman aşımında çağrılacak bir işlev işaretçisi.
[in] aContext
Rastgele bağlam bilgilerine yönlendiren bir işaretçi.
[in] aConfig
Bu sorgu için kullanılacak yapılandırma işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
Sorgu başarıyla gönderildi. Durumu bildirmek için aCallback çağrılır.
OT_ERROR_NO_BUFS
Sorgunun hazırlanması ve gönderilmesi için yetersiz arabellek.
OT_ERROR_INVALID_ARGS
aInstanceLabel BOŞ.

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
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aInstanceLabel
Hizmet örneği etiketi.
[in] aServiceName
Hizmet adı (aInstanceLabel ile birlikte tam örnek adını oluşturur).
[in] aCallback
Yanıt alımında veya zaman aşımında çağrılacak bir işlev işaretçisi.
[in] aContext
Rastgele bağlam bilgilerine yönlendiren bir işaretçi.
[in] aConfig
Bu sorgu için kullanılacak yapılandırma işaretçisi.
Döndürülen Değerler
OT_ERROR_NONE
Sorgu başarıyla gönderildi. Durumu bildirmek için aCallback çağrılır.
OT_ERROR_NO_BUFS
Sorgunun hazırlanması ve gönderilmesi için yetersiz arabellek.
OT_ERROR_INVALID_ARGS
aInstanceLabel NULL veya aConfig geçersiz.

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
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aConfig
Varsayılan olarak kullanılacak yeni sorgu yapılandırmasına işaret eden bir işarettir.

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
[in] aTxtEntries
İşaretçi bir otDnsTxtEntry dizisine işaret eder.
[in] aNumTxtEntries
aTxtEntries dizisindeki giriş sayısı.
[out] aTxtData
Kodlanmış TXT verilerinin çıkışını almak için bir arabelleğin işaretçisi.
[in,out] aTxtDataLength
Girişte, tampon boyutu: aTxtData. Çıkışta, kodlanmış TXT verilerinin uzunluğu.
Döndürülen Değerler
OT_ERROR_NONE
TXT verileri başarıyla kodlandı, aTxtData ve aTxtDataLength güncellendi.
OT_ERROR_INVALID_ARGS
aTxtEntries geçerli değil.
OT_ERROR_NO_BUS
Kodlanmış veriler, aTxtDataLength ile aTxtData arabelleğine sığdırılamadı.

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
[in] aIterator
Yineleyiciye işaret eden bir işarettir (BOŞ OLMAMALIDIR).
[out] aEntry
Ayrıştırılmış/okuma girişinin çıkışını almak için bir otDnsTxtEntry yapısına işaret eden (NULL OLMAMALIDIR).
Döndürülen Değerler
OT_ERROR_NONE
Sonraki giriş başarıyla ayrıştırıldı. aEntry güncellendi.
OT_ERROR_NOT_FOUND
TXT verilerinde başka giriş yok.
OT_ERROR_PARSE
aIterator kaynağındaki TXT verileri iyi biçimlendirilmemiş.

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
[in] aIterator
Başlatılacak yinelemenin işaretçisi (NULL OLMAMALIDIR).
[in] aTxtData
Kodlanmış TXT verilerini içeren bir arabellek işaretçisi.
[in] aTxtDataLength
aTxtData öğesinin uzunluğu (bayt sayısı).

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
[in] aResponse
Yanıtın işaretçisi.
[in] aHostName
Adresi alacak ana makine adı (BOŞ OLMAMALIDIR).
[in] aIndex
Alınacak adres kaydı dizini.
[out] aAddress
Adres çıkışı için bir IPv6 adresine işaretçi (BOŞ OLMAMALIDIR).
[out] aTtl
Adres için TTL çıkışını uint32_t olarak gösteren işaretçi. Arayanın TTL'yi almak istememesi durumunda bu değer NULL olabilir.
Döndürülen Değerler
OT_ERROR_NONE
Adres başarıyla okundu.
OT_ERROR_NOT_FOUND
aResponse bölgesindeki aIndex konumunda aHostname için adres kaydı yok.
OT_ERROR_PARSE
aResponse içindeki kayıtlar ayrıştırılamadı.

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ı bulunursa aServiceInfo güncellenir.
  • Eşleşen bir SRV kaydı bulunmazsa bu sorgunun sorgu yapılandırmasında mServiceMode için OT_DNS_SERVICE_MODE_TXT kullanılmadığı (yani isteğin yalnızca TXT kaydı olduğu) sürece OT_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ı bulunmazsa aServiceInfo içindeki mTxtDataSize değeri sıfır olarak ayarlanır.
  • TXT veri uzunluğu mTxtDataSize değerinden büyükse kısmen okunur ve mTxtDataTruncated doğru değerine ayarlanır.
  • aResponse ile eşleşen AAAA kaydı bulunmazsa 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()" işlemini gerçekleştirin.

Ayrıntılar
Parametreler
[in] aResponse
Yanıtın işaretçisi.
[out] aServiceInfo
Hizmet örneği bilgilerinin çıkışını veren bir ServiceInfo (BOŞ OLMAMALIDIR).
Döndürülen Değerler
OT_ERROR_NONE
Hizmet örneği bilgileri okundu. aServiceInfo güncellendi.
OT_ERROR_NOT_FOUND
aResponse içinde gerekli bir kayıt bulunamadı.
OT_ERROR_NO_BUFS
Ana makine adı ve/veya TXT verileri, belirtilen arabelleklere sığamadı.
OT_ERROR_PARSE
aResponse içindeki kayıtlar ayrıştırılamadı.

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
[in] aResponse
Yanıtın işaretçisi.
[out] aLabelBuffer
Hizmet örneği etiketinin çıktısını almak için karakter dizisine bir arabellek (BOŞ OLMAMALIDIR).
[in] aLabelBufferSize
aLabelBuffer boyutu.
[out] aNameBuffer
Hizmet adının geri kalanının çıktısını almak için karakter dizisine arabellek (kullanıcı adı almak istemiyorsa NULL olabilir.
[in] aNameBufferSize
aNameBuffer boyutu.
Döndürülen Değerler
OT_ERROR_NONE
Hizmet adı başarıyla okundu.
OT_ERROR_NO_BUFS
Etiket veya ad, belirtilen arabelleklere uymuyor.

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
[in] aEnabled
"DNS ad sıkıştırma" modunu etkinleştirmek için TRUE, devre dışı bırakmak için FALSE.

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.