DNS
โมดูลนี้ประกอบด้วยฟังก์ชันที่ควบคุมการสื่อสาร DNS
สรุป
ฟังก์ชันในโมดูลนี้จะใช้ได้ต่อเมื่อมีการเปิดใช้งานฟีเจอร์ OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
การแจกแจง |
|
---|---|
otDnsNat64Mode{
|
enum Type แสดงถึงโหมด NAT64 ใน otDnsQueryConfig |
otDnsRecursionFlag{
|
enum ประเภทแสดงถึงแฟล็ก "การทำซ้ำที่ต้องการ" (RD) ใน otDnsQueryConfig |
otDnsServiceMode{
|
enum ประเภท แสดงถึงโหมดการแก้ปัญหาของบริการใน otDnsQueryConfig |
otDnsTransportProto{
|
enum Type แสดงโปรโตคอล DNS Transport ใน otDnsQueryConfig |
Typedef |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
ระบบจะเรียกใช้ตัวชี้เมื่อได้รับการตอบกลับจาก DNS สำหรับการค้นหาเพื่อแก้ปัญหาที่อยู่ |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
การแสดงการตอบกลับคำขอ DNS ที่มีการแก้ไขที่อยู่แบบทึบ |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
ระบบจะเรียกใช้ตัวชี้เมื่อได้รับการตอบกลับ DNS สำหรับการค้นหาการเรียกดู (การแจงนับอินสแตนซ์บริการ) |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
การแสดงการตอบกลับแบบทึบสำหรับคำขอ DNS การเรียกดู (การแจงนับอินสแตนซ์บริการ) |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
แสดงการกำหนดค่าการค้นหา DNS |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
ระบบจะเรียกใช้ตัวชี้เมื่อได้รับการตอบกลับ DNS สำหรับการค้นหาการแก้ปัญหาอินสแตนซ์บริการ |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
ระบุข้อมูลสำหรับอินสแตนซ์บริการ DNS |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
การเป็นตัวแทนแบบทึบของการตอบกลับคำขอ DNS เพื่อการแก้ปัญหาอินสแตนซ์บริการ |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
แสดงรายการระเบียน TXT ที่แสดงคู่คีย์/ค่า (RFC 6763 - ส่วน 6.3) |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
แสดงตัวซ้ำสำหรับรายการระเบียน TXT (คู่คีย์/ค่า) |
ฟังก์ชัน |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
รับที่อยู่ IPv6 ที่เชื่อมโยงกับการตอบสนอง DNS ของการแปลงที่อยู่
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
รับชื่อโฮสต์แบบเต็มที่เชื่อมโยงกับการตอบสนอง DNS สำหรับการแปลงที่อยู่
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
รับที่อยู่ IPv6 ของโฮสต์จากการตอบสนองของการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ)
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
รับข้อมูลสำหรับอินสแตนซ์บริการจากการตอบสนองการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ)
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
รับอินสแตนซ์บริการที่เชื่อมโยงกับการตอบสนองการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ)
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
รับชื่อบริการที่เชื่อมโยงกับการตอบกลับการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ)
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
ส่งคำค้นหาการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ) สำหรับชื่อบริการที่ระบุ
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
รับการกำหนดค่าการค้นหาเริ่มต้นในปัจจุบันที่ไคลเอ็นต์ DNS ใช้
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
ส่งการค้นหา DNS เกี่ยวกับการแปลงที่อยู่สำหรับระเบียน AAAA (IPv6) สำหรับชื่อโฮสต์ที่ระบุ
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
ส่งการค้นหา DNS เพื่อแก้ไขที่อยู่สำหรับระเบียน A (IPv4) ของชื่อโฮสต์ที่ระบุ
|
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
เริ่มการแปลงอินสแตนซ์บริการ DNS สำหรับอินสแตนซ์บริการที่ระบุ
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
เริ่มต้นการแปลงอินสแตนซ์บริการ DNS สำหรับอินสแตนซ์บริการที่ระบุ พร้อมการแก้ไขที่อยู่ติดตามผลที่เป็นไปได้สำหรับชื่อโฮสต์ที่ค้นพบสำหรับอินสแตนซ์บริการ
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
ตั้งการกำหนดค่าการค้นหาเริ่มต้นในไคลเอ็นต์ DNS
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
เข้ารหัสรายการระเบียน TXT (คู่คีย์/ค่า) ที่ระบุเป็นข้อมูล TXT (รูปแบบต่อไปนี้ระบุโดย RFC 6763)
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
แยกวิเคราะห์ข้อมูล TXT จากตัววนซ้ำและรับรายการระเบียน TXT ถัดไป (คู่คีย์/ค่า)
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
เริ่มต้นตัววนซ้ำระเบียน TXT
|
otDnsIsNameCompressionEnabled(void)
|
bool
ระบุว่าได้เปิดใช้โหมด "การบีบอัดชื่อ DNS" หรือไม่
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
รับที่อยู่ IPv6 ของโฮสต์จากการตอบสนองเพื่อแปลงอินสแตนซ์ของบริการ DNS
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
รับข้อมูลของอินสแตนซ์บริการจากการตอบสนองเพื่อการแก้ปัญหาอินสแตนซ์ของบริการ DNS
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
รับชื่ออินสแตนซ์บริการที่เชื่อมโยงกับการตอบสนองการแก้ปัญหาของอินสแตนซ์บริการ DNS
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
เปิด/ปิดใช้โหมด "การบีบอัดชื่อ DNS"
|
โครงสร้าง |
|
---|---|
otDnsQueryConfig |
แสดงการกำหนดค่าการค้นหา DNS |
otDnsServiceInfo |
ระบุข้อมูลสำหรับอินสแตนซ์บริการ DNS |
otDnsTxtEntry |
แสดงรายการระเบียน TXT ที่แสดงคู่คีย์/ค่า (RFC 6763 - ส่วน 6.3) |
otDnsTxtEntryIterator |
แสดงตัวซ้ำสำหรับรายการระเบียน TXT (คู่คีย์/ค่า) |
การแจกแจง
otDnsNat64Mode
otDnsNat64Mode
Type แสดงถึงโหมด NAT64 ใน otDnsQueryConfig
โหมด NAT64 จะระบุว่าจะอนุญาตหรือไม่อนุญาตการแปลที่อยู่ NAT64 ระหว่างการแปลงที่อยู่ไคลเอ็นต์ DNS ระบบจะใช้โหมดนี้เมื่อเปิดใช้ OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
เท่านั้น
พร็อพเพอร์ตี้ | |
---|---|
OT_DNS_NAT64_ALLOW
|
อนุญาตการแปลที่อยู่ NAT64 ระหว่างการแปลงที่อยู่ไคลเอ็นต์ DNS |
OT_DNS_NAT64_DISALLOW
|
ไม่อนุญาตให้แปลที่อยู่ NAT64 ระหว่างการแปลงที่อยู่ไคลเอ็นต์ DNS |
OT_DNS_NAT64_UNSPECIFIED
|
ไม่ได้ระบุโหมด NAT64 ใช้โหมด NAT64 เริ่มต้น |
otDnsRecursionFlag
otDnsRecursionFlag
ประเภทแสดงถึงแฟล็ก "การทำซ้ำที่ต้องการ" (RD) ใน otDnsQueryConfig
พร็อพเพอร์ตี้ | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
ระบุว่าเนมเซิร์ฟเวอร์ DNS แก้ไขการค้นหาซ้ำไม่ได้ |
OT_DNS_FLAG_RECURSION_DESIRED
|
ระบุว่าเนมเซิร์ฟเวอร์ DNS แก้ไขการค้นหาซ้ำได้ |
OT_DNS_FLAG_UNSPECIFIED
|
บ่งบอกว่าไม่ได้ระบุธง |
otDnsServiceMode
otDnsServiceMode
ประเภท แสดงถึงโหมดการแก้ปัญหาของบริการใน otDnsQueryConfig
ซึ่งจะใช้ในระหว่างการแก้ปัญหาบริการไคลเอ็นต์ DNS otDnsClientResolveService()
เท่านั้น ซึ่งจะเป็นตัวกำหนดประเภทระเบียนที่จะค้นหา
พร็อพเพอร์ตี้ | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
ข้อความค้นหาสำหรับระเบียน SRV เท่านั้น |
OT_DNS_SERVICE_MODE_SRV_TXT
|
ข้อความค้นหาสำหรับทั้งระเบียน SRV และ TXT ในข้อความเดียวกัน |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
ค้นหา TXT/SRV ก่อน หากไม่สำเร็จก็จะค้นหาแยกต่างหาก |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
การค้นหาพร้อมกันสำหรับ SRV และ TXT โดยใช้ข้อความแยกต่างหาก |
OT_DNS_SERVICE_MODE_TXT
|
การค้นหาระเบียน TXT เท่านั้น |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
ไม่ได้ระบุโหมด ใช้โหมดบริการเริ่มต้น |
otDnsTransportProto
otDnsTransportProto
Type แสดงโปรโตคอล DNS Transport ใน otDnsQueryConfig
ระบบจะรองรับ OT_DNS_TRANSPORT_TCP
นี้ก็ต่อเมื่อเปิดใช้ OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
เท่านั้น
พร็อพเพอร์ตี้ | |
---|---|
OT_DNS_TRANSPORT_TCP
|
คำขอ DNS ควรส่งผ่าน UDP |
OT_DNS_TRANSPORT_UDP
|
ไม่ได้ระบุการส่ง DNS |
Typedef
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
ระบบจะเรียกใช้ตัวชี้เมื่อได้รับการตอบกลับจาก DNS สำหรับการค้นหาเพื่อแก้ปัญหาที่อยู่
ภายในโค้ดเรียกกลับนี้ ผู้ใช้จะใช้ฟังก์ชัน otDnsAddressResponseGet{Item}()
ร่วมกับตัวชี้ aResponse
เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการตอบกลับได้
aResponse
ตัวชี้สามารถใช้ภายในโค้ดเรียกกลับนี้ และหลังจากกลับมาจากฟังก์ชันนี้แล้ว ตัวชี้นี้จะไม่สามารถใช้งานได้ ดังนั้นผู้ใช้จะต้องไม่เก็บตัวชี้ aResponse
ไว้ใช้ในภายหลัง
aError
อาจมีสิ่งต่อไปนี้
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
- OT_ERROR_NONE ได้รับการตอบกลับสำเร็จแล้ว
- OT_ERROR_ABORT ธุรกรรม DNS ถูกล้มเลิกโดยสแต็ก
- OT_ERROR_RESPONSE_TIMEOUT ไม่ได้รับการตอบสนอง DNS ภายในระยะหมดเวลา
หากเซิร์ฟเวอร์ปฏิเสธคำขอแก้ไขที่อยู่ ระบบจะจับคู่รหัสข้อผิดพลาดจากเซิร์ฟเวอร์ดังนี้
- (0) NOERROR สำเร็จ (ไม่มีเงื่อนไขข้อผิดพลาด) -> OT_ERROR_NONE
- (1) เซิร์ฟเวอร์ FORMERR ไม่สามารถแปลผล เนื่องจากรูปแบบผิดพลาด -> OT_ERROR_PARSE
- (2) เซิร์ฟเวอร์ SERVFAIL พบความล้มเหลวภายใน -> OT_ERROR_FAILED
- (3) ชื่อ NXDOMAIN ที่ควรมีอยู่ ไม่มีอยู่ -> OT_ERROR_NOT_FOUND
- (4) เซิร์ฟเวอร์ NOTIMP ไม่สนับสนุนประเภทข้อความค้นหา (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) เซิร์ฟเวอร์ REFUSED ถูกปฏิเสธเนื่องจากเหตุผลด้านนโยบาย/ความปลอดภัย -> OT_ERROR_SECURITY
- (6) YXDOMAIN บางชื่อที่ไม่ควรมีอยู่ -> OT_ERROR_DUPLICATED
- (7) YXRRSET บาง RRset ที่ไม่ควรมีอยู่ -> OT_ERROR_DUPLICATED
- (8) NXRRSET ชุด RRset บางส่วนที่ควรมีอยู่ไม่มีอยู่ -> OT_ERROR_NOT_FOUND
- (9) บริการ NOTAUTH ไม่ได้รับอนุญาตสำหรับโซน -> OT_ERROR_SECURITY
- (10) NOTZONE A ไม่ได้อยู่ในโซน -> OT_ERROR_PARSE
- (20) BADNAME ชื่อไม่ถูกต้อง -> OT_ERROR_PARSE
- (21) BADALG อัลกอริทึมไม่ดี -> OT_ERROR_SECURITY
- (22) BADTRUN การตัดข้อความไม่ดี -> OT_ERROR_PARSE
- รหัสการตอบกลับอื่นๆ -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
การแสดงการตอบกลับคำขอ DNS ที่มีการแก้ไขที่อยู่แบบทึบ
เราได้ระบุตัวชี้ไปยังอินสแตนซ์ของประเภทนี้จากโค้ดเรียกกลับ otDnsAddressCallback
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
ระบบจะเรียกใช้ตัวชี้เมื่อได้รับการตอบกลับ DNS สำหรับการค้นหาการเรียกดู (การแจงนับอินสแตนซ์บริการ)
ภายในโค้ดเรียกกลับนี้ ผู้ใช้จะใช้ฟังก์ชัน otDnsBrowseResponseGet{Item}()
ร่วมกับตัวชี้ aResponse
เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการตอบกลับได้
aResponse
ตัวชี้สามารถใช้ภายในโค้ดเรียกกลับนี้ และหลังจากกลับมาจากฟังก์ชันนี้แล้ว ตัวชี้นี้จะไม่สามารถใช้งานได้ ดังนั้นผู้ใช้จะต้องไม่เก็บตัวชี้ aResponse
ไว้ใช้ในภายหลัง
สำหรับรายการค่าที่เป็นไปได้ทั้งหมดสำหรับ aError
โปรดดูที่ otDnsAddressCallback()
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
การแสดงการตอบกลับแบบทึบสำหรับคำขอ DNS การเรียกดู (การแจงนับอินสแตนซ์บริการ)
เราได้ระบุตัวชี้ไปยังอินสแตนซ์ของประเภทนี้จากโค้ดเรียกกลับ otDnsBrowseCallback
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
แสดงการกำหนดค่าการค้นหา DNS
ฟิลด์ใดก็ได้ในโครงสร้างนี้สามารถตั้งค่าเป็น 0 เพื่อระบุว่าไม่ได้ระบุ วิธีดำเนินการกับช่องที่ไม่ได้ระบุจะกำหนดโดยฟังก์ชันที่ใช้อินสแตนซ์ของ otDnsQueryConfig
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
ระบบจะเรียกใช้ตัวชี้เมื่อได้รับการตอบกลับ DNS สำหรับการค้นหาการแก้ปัญหาอินสแตนซ์บริการ
ภายในโค้ดเรียกกลับนี้ ผู้ใช้จะใช้ฟังก์ชัน otDnsServiceResponseGet{Item}()
ร่วมกับตัวชี้ aResponse
เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการตอบกลับได้
aResponse
ตัวชี้สามารถใช้ภายในโค้ดเรียกกลับนี้ และหลังจากกลับมาจากฟังก์ชันนี้แล้ว ตัวชี้นี้จะไม่สามารถใช้งานได้ ดังนั้นผู้ใช้จะต้องไม่เก็บตัวชี้ aResponse
ไว้ใช้ในภายหลัง
สำหรับรายการค่าที่เป็นไปได้ทั้งหมดสำหรับ aError
โปรดดูที่ otDnsAddressCallback()
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
การเป็นตัวแทนแบบทึบของการตอบกลับคำขอ DNS เพื่อการแก้ปัญหาอินสแตนซ์บริการ
เราได้ระบุตัวชี้ไปยังอินสแตนซ์ของประเภทนี้จากโค้ดเรียกกลับ otDnsAddressCallback
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
แสดงรายการระเบียน TXT ที่แสดงคู่คีย์/ค่า (RFC 6763 - ส่วน 6.3)
บัฟเฟอร์สตริงที่ mKey
และ mValue
ชี้ไปจะต้องมีอยู่และไม่มีการเปลี่ยนแปลงหลังจากที่ส่งอินสแตนซ์ของโครงสร้างดังกล่าวไปยัง OpenThread (ในฐานะส่วนหนึ่งของอินสแตนซ์ otSrpClientService
)
ระบบใช้อาร์เรย์ของรายการ otDnsTxtEntry
ใน otSrpClientService
เพื่อระบุระเบียน TXT แบบเต็ม (รายการ)
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
แสดงตัวซ้ำสำหรับรายการระเบียน TXT (คู่คีย์/ค่า)
ช่องข้อมูลในโครงสร้างนี้มีไว้สำหรับใช้โดย OpenThread Core และผู้โทรไม่ควรอ่านหรือเปลี่ยนแปลงช่องนี้
ฟังก์ชัน
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
รับที่อยู่ IPv6 ที่เชื่อมโยงกับการตอบสนอง DNS ของการแปลงที่อยู่
ต้องใช้จาก otDnsAddressCallback
เท่านั้น
การตอบสนองอาจมีระเบียนที่อยู่ IPv6 หลายรายการ ใช้ aIndex
เพื่อทำซ้ำตามรายการที่อยู่ได้ ดัชนี 0 จะได้รับที่อยู่แรก และอื่นๆ และจะแสดง OT_ERROR_NOT_FOUND
เมื่อถึงส่วนท้ายของรายการ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
รับชื่อโฮสต์แบบเต็มที่เชื่อมโยงกับการตอบสนอง DNS สำหรับการแปลงที่อยู่
ต้องใช้จาก otDnsAddressCallback
เท่านั้น
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
แสดงผลค่า |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
รับที่อยู่ IPv6 ของโฮสต์จากการตอบสนองของการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ)
ต้องใช้จาก otDnsBrowseCallback
เท่านั้น
การตอบสนองอาจมีระเบียนที่อยู่ IPv6 ตั้งแต่ 0 ระเบียนขึ้นไป ใช้ aIndex
เพื่อทำซ้ำตามรายการที่อยู่ได้ ดัชนี 0 จะได้รับที่อยู่แรก และอื่นๆ และจะแสดง OT_ERROR_NOT_FOUND
เมื่อถึงส่วนท้ายของรายการ
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
รับข้อมูลสำหรับอินสแตนซ์บริการจากการตอบสนองการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ)
ต้องใช้จาก otDnsBrowseCallback
เท่านั้น
การตอบสนองของ DNS ที่เรียกดูอาจรวมระเบียน SRV, TXT และ AAAA สำหรับอินสแตนซ์บริการที่มีการแจกแจง นี่เป็นข้อกำหนด "ควร" และไม่จำเป็น และไม่จำเป็นต้องมีเซิร์ฟเวอร์/ตัวแก้ปัญหา ฟังก์ชันนี้จะพยายามเรียกข้อมูลนี้สำหรับอินสแตนซ์ของบริการที่ระบุ (หากมี)
- หากไม่พบระเบียน SRV ที่ตรงกันใน
aResponse
ระบบจะแสดงผลOT_ERROR_NOT_FOUND
ในกรณีนี้จะไม่มีการอ่านระเบียนเพิ่มเติม (ไม่มี TXT และ/หรือ AAAA) - หากพบระเบียน SRV ที่ตรงกันใน
aResponse
ระบบจะอัปเดตaServiceInfo
และแสดงผลOT_ERROR_NONE
- หากไม่พบระเบียน TXT ที่ตรงกันใน
aResponse
ระบบจะตั้งค่าmTxtDataSize
ในaServiceInfo
เป็น 0 - หากข้อมูล TXT มีความยาวมากกว่า
mTxtDataSize
ระบบจะอ่านค่าดังกล่าวบางส่วน และตั้งค่าmTxtDataTruncated
เป็น "จริง" - หากไม่พบระเบียน AAAA ที่ตรงกันใน
aResponse
mHostAddress is set to all zero or unspecified address.
If there are multiple AAAA records for the host name in @p aResponse,
mHostAddressis set to the first one. The other addresses can be retrieved using
otDnsBrowseResponseGetHostAddress()`
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
รับอินสแตนซ์บริการที่เชื่อมโยงกับการตอบสนองการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ)
ต้องใช้จาก otDnsBrowseCallback
เท่านั้น
การตอบกลับอาจมีระเบียนอินสแตนซ์บริการหลายรายการ aIndex
สามารถใช้ซ้ำในรายการได้ ดัชนีศูนย์จะระบุระเบียนแรก และจะแสดง OT_ERROR_NOT_FOUND
เมื่อถึงส่วนท้ายของรายการ
โปรดทราบว่าฟังก์ชันนี้จะได้รับป้ายกำกับอินสแตนซ์บริการ ไม่ใช่ชื่ออินสแตนซ์บริการแบบเต็มซึ่งอยู่ในรูปแบบ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
รับชื่อบริการที่เชื่อมโยงกับการตอบกลับการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ)
ต้องใช้จาก otDnsBrowseCallback
เท่านั้น
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
แสดงผลค่า |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
ส่งคำค้นหาการเรียกดู DNS (การแจงนับอินสแตนซ์บริการ) สำหรับชื่อบริการที่ระบุ
พร้อมใช้งานเมื่อเปิดใช้ OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
aConfig
มีค่าเป็น NULL ได้ ในกรณีนี้ ระบบจะใช้การกำหนดค่าเริ่มต้น (จาก otDnsClientGetDefaultConfig()
) เป็นค่ากำหนดสำหรับการค้นหานี้ ในช่อง aConfig
ที่ไม่ใช่ NULL ช่องบางช่องสามารถเว้นค่าไว้แบบไม่ระบุได้ (ค่าเป็น 0) ช่องที่ไม่ได้ระบุไว้จะถูกแทนที่ด้วยค่าจากการกำหนดค่าเริ่มต้น
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
รับการกำหนดค่าการค้นหาเริ่มต้นในปัจจุบันที่ไคลเอ็นต์ DNS ใช้
เมื่อสแต็ก OpenThread เริ่มทำงาน ระบบจะกำหนดการกำหนดค่าการค้นหา DNS เริ่มต้นจากชุดตัวเลือกการกำหนดค่า OT เช่น OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
เป็นต้น (โปรดดูตัวเลือกการกำหนดค่าที่เกี่ยวข้องทั้งหมดได้ที่ config/dns_client.h
)
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
ตัวชี้ไปยังการกำหนดค่าเริ่มต้นปัจจุบันที่ไคลเอ็นต์ DNS ใช้
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
ส่งการค้นหา DNS เกี่ยวกับการแปลงที่อยู่สำหรับระเบียน AAAA (IPv6) สำหรับชื่อโฮสต์ที่ระบุ
aConfig
มีค่าเป็น NULL ได้ ในกรณีนี้ ระบบจะใช้การกำหนดค่าเริ่มต้น (จาก otDnsClientGetDefaultConfig()
) เป็นค่ากำหนดสำหรับการค้นหานี้ ในช่อง aConfig
ที่ไม่ใช่ NULL ช่องบางช่องสามารถเว้นค่าไว้แบบไม่ระบุได้ (ค่าเป็น 0) ช่องที่ไม่ได้ระบุไว้จะถูกแทนที่ด้วยค่าจากการกำหนดค่าเริ่มต้น
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
ส่งการค้นหา DNS เพื่อแก้ไขที่อยู่สำหรับระเบียน A (IPv4) ของชื่อโฮสต์ที่ระบุ
จำเป็นและพร้อมใช้งานเมื่อเปิดใช้ OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
เมื่อได้รับการตอบกลับที่สำเร็จ ระบบจะแสดงผลที่อยู่จาก aCallback
เป็นที่อยู่ IPv4 เวอร์ชันแปลของ NAT64 IPv6 จากการตอบกลับการค้นหา
aConfig
มีค่าเป็น NULL ได้ ในกรณีนี้ ระบบจะใช้การกำหนดค่าเริ่มต้น (จาก otDnsClientGetDefaultConfig()
) เป็นค่ากำหนดสำหรับการค้นหานี้ ในช่อง aConfig
ที่ไม่ใช่ NULL ช่องบางช่องสามารถเว้นค่าไว้แบบไม่ระบุได้ (ค่าเป็น 0) ช่องที่ไม่ได้ระบุไว้จะถูกแทนที่ด้วยค่าจากการกำหนดค่าเริ่มต้น
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
เริ่มการแปลงอินสแตนซ์บริการ DNS สำหรับอินสแตนซ์บริการที่ระบุ
พร้อมใช้งานเมื่อเปิดใช้ OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
aConfig
มีค่าเป็น NULL ได้ ในกรณีนี้ ระบบจะใช้การกำหนดค่าเริ่มต้น (จาก otDnsClientGetDefaultConfig()
) เป็นค่ากำหนดสำหรับการค้นหานี้ ในช่อง aConfig
ที่ไม่ใช่ NULL ช่องบางช่องสามารถเว้นค่าไว้แบบไม่ระบุได้ (ค่าเป็น 0) ช่องที่ไม่ได้ระบุไว้จะถูกแทนที่ด้วยค่าจากการกำหนดค่าเริ่มต้น
ฟังก์ชันนี้จะส่งการค้นหาสำหรับระเบียน SRV และ/หรือ TXT สำหรับอินสแตนซ์บริการที่ระบุ ช่อง mServiceMode
ใน otDnsQueryConfig
จะกำหนดระเบียนที่จะค้นหา (SRV เท่านั้น, TXT เท่านั้น หรือทั้ง SRV และ TXT) และวิธีดำเนินการค้นหา (รวมกันในข้อความเดียวกัน แยกกันแบบขนาน หรือในโหมดเพิ่มประสิทธิภาพที่ไคลเอ็นต์จะลองดำเนินการในข้อความเดียวกันก่อน จากนั้นจึงแยกกันต่างหากหากไม่ได้รับการตอบกลับ)
ระเบียน SRV จะให้ข้อมูลเกี่ยวกับพอร์ตบริการ ลำดับความสำคัญ และน้ำหนัก พร้อมด้วยชื่อโฮสต์ที่เชื่อมโยงกับอินสแตนซ์บริการ ฟังก์ชันนี้จะไม่ทำการแปลงที่อยู่สำหรับชื่อโฮสต์ที่ค้นพบจากระเบียน SRV เซิร์ฟเวอร์/ตัวแก้ปัญหาอาจให้ระเบียน AAAA/A สำหรับชื่อโฮสต์ในส่วนข้อมูลเพิ่มเติมของการตอบสนองต่อการค้นหา SRV/TXT และคุณดึงข้อมูลนี้ได้โดยใช้ otDnsServiceResponseGetServiceInfo()
ใน otDnsServiceCallback
ผู้ใช้ API นี้ต้องไม่คิดว่าที่อยู่โฮสต์จะพร้อมใช้งานจาก otDnsServiceResponseGetServiceInfo()
เสมอ
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
เริ่มต้นการแปลงอินสแตนซ์บริการ DNS สำหรับอินสแตนซ์บริการที่ระบุ พร้อมการแก้ไขที่อยู่ติดตามผลที่เป็นไปได้สำหรับชื่อโฮสต์ที่ค้นพบสำหรับอินสแตนซ์บริการ
พร้อมใช้งานเมื่อเปิดใช้ OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
aConfig
มีค่าเป็น NULL ได้ ในกรณีนี้ ระบบจะใช้การกำหนดค่าเริ่มต้น (จาก otDnsClientGetDefaultConfig()
) เป็นค่ากำหนดสำหรับการค้นหานี้ ในช่อง aConfig
ที่ไม่ใช่ NULL ช่องบางช่องสามารถเว้นค่าไว้แบบไม่ระบุได้ (ค่าเป็น 0) ช่องที่ไม่ได้ระบุไว้จะถูกแทนที่ด้วยค่าจากการกำหนดค่าเริ่มต้น ฟังก์ชันนี้ใช้ไม่ได้กับ mServiceMode
ในการกำหนดค่า DNS ที่ตั้งค่าเป็น OT_DNS_SERVICE_MODE_TXT
(กล่าวคือ การค้นหาระเบียน TXT เท่านั้น) และจะแสดงผล OT_ERROR_INVALID_ARGS
มีลักษณะการทำงานเหมือนกับ otDnsClientResolveService()
ที่ส่งคำค้นหาสำหรับระเบียน SRV และ TXT อย่างไรก็ตาม หากเซิร์ฟเวอร์/รีโซลเวอร์ไม่ได้ให้ระเบียน AAAA/A สำหรับชื่อโฮสต์ในการตอบสนองต่อคำค้นหา SRV (ในส่วนข้อมูลเพิ่มเติม) เซิร์ฟเวอร์จะทำการแก้ชื่อโฮสต์ (ส่งการค้นหา AAAA) สำหรับชื่อโฮสต์ที่ค้นพบจากระเบียน SRV ระบบจะเรียกใช้ aCallback
โค้ดเรียกกลับเมื่อได้รับการตอบกลับสำหรับคำถามทั้งหมด (นั่นคือ แก้ปัญหาทั้งบริการและที่อยู่โฮสต์เสร็จแล้ว)
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
ตั้งการกำหนดค่าการค้นหาเริ่มต้นในไคลเอ็นต์ DNS
aConfig
มีค่าเป็น NULL ได้ ในกรณีนี้ ระบบจะตั้งค่าเริ่มต้นจากตัวเลือกการกำหนดค่า OT เป็นค่าเริ่มต้นจาก OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
ซึ่งจะเป็นการรีเซ็ตการกำหนดค่าการค้นหาเริ่มต้นกลับไปเป็นการกำหนดค่าเมื่อสแต็ก OpenThread เริ่มทำงาน
ใน aConfig
ที่ไม่ใช่ NULL ผู้โทรสามารถเลือกเว้นช่องบางช่องในอินสแตนซ์ otDnsQueryConfig
แบบไม่ระบุได้ (ค่าเป็น 0) ช่องที่ไม่ได้ระบุไว้จะถูกแทนที่ด้วยคำจำกัดความของตัวเลือกการกำหนดค่า OT ที่เกี่ยวข้อง OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
เพื่อสร้างการกำหนดค่าการค้นหาเริ่มต้น
เมื่อเปิดใช้ OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
แล้ว ที่อยู่ IPv6 ของเซิร์ฟเวอร์ในการกำหนดค่าเริ่มต้นจะได้รับการตั้งค่าและอัปเดตโดยไคลเอ็นต์ DNS โดยอัตโนมัติ ซึ่งจะทำเฉพาะเมื่อผู้ใช้ไม่ได้ตั้งค่าหรือระบุไว้อย่างชัดแจ้ง ลักษณะการทำงานนี้กำหนดให้ต้องเปิดใช้ไคลเอ็นต์ SRP และฟีเจอร์เริ่มต้นอัตโนมัติ จากนั้นไคลเอ็นต์ SRP จะตรวจสอบข้อมูลเครือข่ายเทรดสำหรับรายการบริการ DNS/SRP เพื่อเลือกเซิร์ฟเวอร์ SRP ที่อยู่เซิร์ฟเวอร์ SRP ที่เลือกจะได้รับการตั้งค่าเป็นที่อยู่เซิร์ฟเวอร์ DNS ในการกำหนดค่าเริ่มต้นด้วย
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
เข้ารหัสรายการระเบียน TXT (คู่คีย์/ค่า) ที่ระบุเป็นข้อมูล TXT (รูปแบบต่อไปนี้ระบุโดย RFC 6763)
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
แยกวิเคราะห์ข้อมูล TXT จากตัววนซ้ำและรับรายการระเบียน TXT ถัดไป (คู่คีย์/ค่า)
aIterator
ต้องเริ่มต้นโดยใช้ otDnsInitTxtEntryIterator()
ก่อนที่จะเรียกใช้ฟังก์ชันนี้ และบัฟเฟอร์ข้อมูล TXT ที่ใช้ในการเริ่มต้นตัววนซ้ำต้องคงอยู่และไม่มีการเปลี่ยนแปลง มิเช่นนั้นจะไม่สามารถระบุลักษณะการทำงานของฟังก์ชันนี้ได้
หากความยาวของสตริงคีย์ที่แยกวิเคราะห์น้อยกว่าหรือเท่ากับ OT_DNS_TXT_KEY_ITER_MAX_LENGTH
ระบบจะแสดงผลสตริงคีย์ใน mKey
ใน aEntry
แต่หากคีย์มีความยาวมาก ระบบจะตั้งค่า mKey
เป็น NULL และจะแสดงผลสตริงรายการ TXT ที่เข้ารหัสทั้งหมดใน mValue
และ mValueLength
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
แสดงผลค่า |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
เริ่มต้นตัววนซ้ำระเบียน TXT
ตัวชี้บัฟเฟอร์ aTxtData
และเนื้อหาต้องคงอยู่และไม่มีการเปลี่ยนแปลงขณะใช้วัตถุ aIterator
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
ระบุว่าได้เปิดใช้โหมด "การบีบอัดชื่อ DNS" หรือไม่
ใช้สำหรับการทดสอบเท่านั้นและจะใช้ได้เมื่อเปิดใช้การกำหนดค่า OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
รายละเอียด | |
---|---|
การส่งคืน |
TRUE หากมีการเปิดใช้โหมด "การบีบอัดชื่อ DNS" หากไม่เปิดใช้ FALSE
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
รับที่อยู่ IPv6 ของโฮสต์จากการตอบสนองเพื่อแปลงอินสแตนซ์ของบริการ DNS
ต้องใช้จาก otDnsServiceCallback
เท่านั้น
การตอบสนองอาจมีระเบียนที่อยู่ IPv6 ตั้งแต่ 0 ระเบียนขึ้นไป ใช้ aIndex
เพื่อทำซ้ำตามรายการที่อยู่ได้ ดัชนี 0 จะได้รับที่อยู่แรก และอื่นๆ และจะแสดง OT_ERROR_NOT_FOUND
เมื่อถึงส่วนท้ายของรายการ
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
รับข้อมูลของอินสแตนซ์บริการจากการตอบสนองเพื่อการแก้ปัญหาอินสแตนซ์ของบริการ DNS
ต้องใช้จาก otDnsServiceCallback
ที่ทริกเกอร์จาก otDnsClientResolveService()
หรือ otDnsClientResolveServiceAndHostAddress()
เท่านั้น
เมื่อใช้คำสั่งนี้จากโค้ดเรียกกลับ otDnsClientResolveService()
การตอบสนอง DNS จากเซิร์ฟเวอร์/ตัวแก้ปัญหาอาจรวมระเบียน AAAA ในส่วนข้อมูลเพิ่มเติมสำหรับชื่อโฮสต์ที่เชื่อมโยงกับอินสแตนซ์บริการที่แก้ไขแล้ว นี่เป็นข้อกำหนด "ควร" และไม่ใช่ "จำเป็น" ดังนั้นเซิร์ฟเวอร์/ตัวแก้ปัญหาไม่จำเป็นต้องระบุส่วนนี้ ฟังก์ชันนี้จะพยายามแยกวิเคราะห์ระเบียน AAAA หากมีอยู่ในการตอบกลับ หากไม่ได้ระบุ mHostAddress
ระบบจะตั้งค่าเป็นเลข 0 ทั้งหมด (อีเมลที่ไม่ระบุ) หากต้องการแก้ปัญหาที่อยู่โฮสต์ด้วย ผู้ใช้สามารถใช้ฟังก์ชัน API ไคลเอ็นต์ DNS otDnsClientResolveServiceAndHostAddress()
ซึ่งจะดำเนินการแก้ปัญหาบริการ ตามด้วยการค้นหาการแก้ปัญหาที่อยู่ของชื่อโฮสต์ (เมื่อเซิร์ฟเวอร์/ตัวแก้ปัญหาไม่ได้ระบุระเบียน AAAA ในการตอบกลับการค้นหา SRV)
- หากพบระเบียน SRV ที่ตรงกันใน
aResponse
ระบบจะอัปเดตaServiceInfo
- หากไม่พบระเบียน SRV ที่ตรงกัน ระบบจะแสดงผล
OT_ERROR_NOT_FOUND
เว้นแต่การกำหนดค่าการค้นหาสำหรับการค้นหานี้ใช้OT_DNS_SERVICE_MODE_TXT
สำหรับmServiceMode
(หมายความว่าคำขอมีไว้สำหรับระเบียน TXT เท่านั้น) ในกรณีนี้ เรายังคงพยายามแยกวิเคราะห์ระเบียน SRV จากส่วนข้อมูลเพิ่มเติมของการตอบกลับ (ในกรณีที่เซิร์ฟเวอร์ให้ข้อมูลไว้) - หากไม่พบระเบียน TXT ที่ตรงกันใน
aResponse
ระบบจะตั้งค่าmTxtDataSize
ในaServiceInfo
เป็น 0 - หากข้อมูล TXT มีความยาวมากกว่า
mTxtDataSize
ระบบจะอ่านค่าดังกล่าวบางส่วน และตั้งค่าmTxtDataTruncated
เป็น "จริง" - หากไม่พบระเบียน AAAA ที่ตรงกันใน
aResponse
mHostAddress is set to all zero or unspecified address.
If there are multiple AAAA records for the host name in @p aResponse,
mHostAddressis set to the first one. The other addresses can be retrieved using
otDnsServiceResponseGetHostAddress()`
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
รับชื่ออินสแตนซ์บริการที่เชื่อมโยงกับการตอบสนองการแก้ปัญหาของอินสแตนซ์บริการ DNS
ต้องใช้จาก otDnsServiceCallback
เท่านั้น
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||
แสดงผลค่า |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
เปิด/ปิดใช้โหมด "การบีบอัดชื่อ DNS"
การบีบอัดชื่อ DNS ตามค่าเริ่มต้นจะเปิดใช้ เมื่อปิดใช้ ระบบจะต่อท้ายชื่อ DNS แบบเต็มและจะไม่มีการบีบอัด ซึ่งมีผลกับโมดูลไคลเอ็นต์/เซิร์ฟเวอร์ของ OpenThread และ DNS และ SRP
ใช้สำหรับการทดสอบเท่านั้นและจะใช้ได้เมื่อเปิดใช้การกำหนดค่า OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
โปรดทราบว่าในกรณีที่มีการใช้ OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
โหมดนี้จะมีผลกับอินสแตนซ์ OpenThread ทั้งหมด (กล่าวคือ การเรียกใช้ฟังก์ชันนี้จะเปิดใช้/ปิดใช้โหมดการบีบอัดในอินสแตนซ์ OpenThread ทั้งหมด)
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
มาโคร
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
ขนาดสตริงป้ายกำกับสูงสุด (ใส่อักขระ Null ในตอนท้ายของสตริง)
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
ขนาดสูงสุดของสตริงชื่อ (รวมอักขระ Null ในตอนท้ายของสตริง)
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
ความยาวสูงสุดของสตริงคีย์ TXT ที่ otDnsTxtEntryIterator
รองรับ
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
ความยาวสูงสุดที่แนะนำของสตริงคีย์ระเบียน TXT (RFC 6763 - ส่วน 6.4)
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
ความยาวขั้นต่ำของสตริงคีย์ระเบียน TXT (RFC 6763 - ส่วน 6.4)
แหล่งข้อมูล
หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล