डीएनएस

इस मॉड्यूल में ऐसे फ़ंक्शन शामिल हैं जो डीएनएस कम्यूनिकेशन को कंट्रोल करते हैं.

खास जानकारी

OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE सुविधा के चालू होने पर ही, इस मॉड्यूल में मौजूद फ़ंक्शन उपलब्ध होते हैं.

गिनती

otDnsNat64Mode{
  OT_DNS_NAT64_UNSPECIFIED = 0,
  OT_DNS_NAT64_ALLOW = 1,
  OT_DNS_NAT64_DISALLOW = 2
}
enum
टाइप, otDnsQueryConfig में NAT64 मोड को दिखाता है.
otDnsRecursionFlag{
  OT_DNS_FLAG_UNSPECIFIED = 0,
  OT_DNS_FLAG_RECURSION_DESIRED = 1,
  OT_DNS_FLAG_NO_RECURSION = 2
}
enum
टाइप, otDnsQueryConfig में "Recursion Desired" (RD) फ़्लैग को दिखाता है.
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
टाइप, otDnsQueryConfig में सेवा रिज़ॉल्यूशन मोड को दिखाता है.
otDnsTransportProto{
  OT_DNS_TRANSPORT_UDP = 1,
  OT_DNS_TRANSPORT_TCP = 2
}
enum
टाइप, otDnsQueryConfig में डीएनएस ट्रांसपोर्ट प्रोटोकॉल को दिखाता है.

टाइपडीफ़

otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
पॉइंटर को तब कॉल किया जाता है, जब किसी एड्रेस रिज़ॉल्यूशन क्वेरी के लिए डीएनएस रिस्पॉन्स मिलता है.
otDnsAddressResponse typedef
किसी पते के रिज़ॉल्यूशन वाली डीएनएस क्वेरी के रिस्पॉन्स का ओपेक तरीके से दिखाना.
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
पॉइंटर को तब कॉल किया जाता है, जब किसी ब्राउज़ (सर्विस इंस्टेंस एन्युमरेशन) क्वेरी के लिए डीएनएस रिस्पॉन्स मिलता है.
otDnsBrowseResponse typedef
किसी ब्राउज़ (सर्विस इंस्टेंस इन्यूमिरेशन) डीएनएस क्वेरी के रिस्पॉन्स का ओपेक तरीके से दिखाना.
otDnsQueryConfig typedef
यह डीएनएस क्वेरी कॉन्फ़िगरेशन को दिखाता है.
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
पॉइंटर को तब कॉल किया जाता है, जब किसी सर्विस इंस्टेंस रिज़ॉल्यूशन क्वेरी के लिए डीएनएस रिस्पॉन्स मिलता है.
otDnsServiceInfo typedef
यह डीएनएस सेवा के इंस्टेंस के बारे में जानकारी देता है.
otDnsServiceResponse typedef
सर्विस इंस्टेंस रिज़ॉल्यूशन वाली डीएनएस क्वेरी के रिस्पॉन्स का ओपेक तरीके से दिखाया गया है.
otDnsTxtEntry typedef
struct otDnsTxtEntry
कुंजी/वैल्यू के जोड़े (आरएफ़सी 6763 - सेक्शन 6.3) को दिखाने वाली TXT रिकॉर्ड एंट्री के बारे में बताता है.
otDnsTxtEntryIterator typedef
TXT रिकॉर्ड एंट्री (कुंजी/वैल्यू पेयर) के लिए, इटरेटर को दिखाता है.

फ़ंक्शन

otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
पते के रिज़ॉल्यूशन वाले डीएनएस रिस्पॉन्स से जुड़ा आईपीवी6 पता मिलता है.
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
पते की समस्या को ठीक करने वाले डीएनएस रिस्पॉन्स से जुड़े पूरे होस्ट नेम की जानकारी देता है.
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) के रिस्पॉन्स से, होस्ट आईपीवी6 पता पाता है.
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) के रिस्पॉन्स से, किसी सेवा इंस्टेंस की जानकारी मिलती है.
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) रिस्पॉन्स से जुड़ा सेवा इंस्टेंस लेता है.
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) रिस्पॉन्स से जुड़ी सेवा के नाम की जानकारी देता है.
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
किसी सेवा के नाम के लिए, डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) क्वेरी भेजता है.
otDnsClientGetDefaultConfig(otInstance *aInstance)
इससे डीएनएस क्लाइंट के इस्तेमाल किए गए मौजूदा डिफ़ॉल्ट क्वेरी कॉन्फ़िगरेशन की जानकारी मिलती है.
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
दिए गए होस्ट नाम के लिए, AAAA (IPv6) रिकॉर्ड के लिए पते के रिज़ॉल्यूशन वाली डीएनएस क्वेरी भेजता है.
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
दिए गए होस्ट नेम के A (IPv4) रिकॉर्ड के लिए, पते के रिज़ॉल्यूशन वाली डीएनएस क्वेरी भेजता है.
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
दिए गए सेवा इंस्टेंस के लिए, डीएनएस सेवा इंस्टेंस का रिज़ॉल्यूशन शुरू करता है.
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
यह दिए गए सेवा इंस्टेंस के लिए डीएनएस सेवा इंस्टेंस का रिज़ॉल्यूशन शुरू करता है. इसमें सेवा इंस्टेंस के लिए खोजे गए होस्ट नाम के लिए फ़ॉलो-अप पते का संभावित रिज़ॉल्यूशन शुरू होता है.
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
यह डीएनएस क्लाइंट पर, डिफ़ॉल्ट क्वेरी कॉन्फ़िगरेशन को सेट करता है.
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
यह TXT रिकॉर्ड एंट्री (कुंजी/वैल्यू के जोड़े) की दी गई सूची को TXT डेटा में कोड में बदलता है. ऐसा आरएफ़सी 6763 के बताए गए फ़ॉर्मैट के मुताबिक किया जाता है.
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
यह, किसी इटरेटर से TXT डेटा को पार्स करता है और अगली TXT रिकॉर्ड एंट्री (कुंजी/वैल्यू पेयर) हासिल करता है.
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
void
TXT रिकॉर्ड इटरेटर शुरू करता है.
otDnsIsNameCompressionEnabled(void)
bool
इससे पता चलता है कि "डीएनएस नाम को कंप्रेस करने का तरीका" मोड चालू है या नहीं.
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
डीएनएस सेवा इंस्टेंस रिज़ॉल्यूशन रिस्पॉन्स से, होस्ट आईपीवी6 पते की जानकारी मिलती है.
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
डीएनएस सेवा के इंस्टेंस रिज़ॉल्यूशन वाले रिस्पॉन्स से, सेवा इंस्टेंस के बारे में जानकारी मिलती है.
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
डीएनएस सेवा इंस्टेंस रिज़ॉल्यूशन रिस्पॉन्स से जुड़े सेवा इंस्टेंस के नाम की जानकारी देता है.
otDnsSetNameCompressionEnabled(bool aEnabled)
void
"डीएनएस नाम कंप्रेशन" मोड को चालू/बंद करता है.

संरचना

otDnsQueryConfig

यह डीएनएस क्वेरी कॉन्फ़िगरेशन को दिखाता है.

otDnsServiceInfo

यह डीएनएस सेवा के इंस्टेंस के बारे में जानकारी देता है.

otDnsTxtEntry

कुंजी/वैल्यू के जोड़े (आरएफ़सी 6763 - सेक्शन 6.3) को दिखाने वाली TXT रिकॉर्ड एंट्री के बारे में बताता है.

otDnsTxtEntryIterator

TXT रिकॉर्ड एंट्री (कुंजी/वैल्यू पेयर) के लिए, इटरेटर को दिखाता है.

गिनती

otDnsNat64Mode

 otDnsNat64Mode

टाइप, otDnsQueryConfig में NAT64 मोड को दिखाता है.

NAT64 मोड से यह पता चलता है कि डीएनएस क्लाइंट के अड्रेस रिज़ॉल्यूशन के दौरान, NAT64 पते का अनुवाद करने की अनुमति दी जाएगी या नहीं. इस मोड का इस्तेमाल सिर्फ़ तब किया जाता है, जब OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE चालू हो.

प्रॉपर्टी
OT_DNS_NAT64_ALLOW

डीएनएस क्लाइंट के अड्रेस रिज़ॉल्यूशन के दौरान, NAT64 पते का अनुवाद करने की अनुमति दें.

OT_DNS_NAT64_DISALLOW

डीएनएस क्लाइंट ऐड्रेस रिज़ॉल्यूशन के दौरान, NAT64 पते का अनुवाद करने की अनुमति न दें.

OT_DNS_NAT64_UNSPECIFIED

NAT64 मोड की जानकारी नहीं दी गई है. डिफ़ॉल्ट NAT64 मोड का इस्तेमाल करें.

otDnsRecursionFlag

 otDnsRecursionFlag

टाइप, otDnsQueryConfig में "Recursion Desired" (RD) फ़्लैग को दिखाता है.

प्रॉपर्टी
OT_DNS_FLAG_NO_RECURSION

यह बताता है कि डीएनएस नेम सर्वर, क्वेरी का बार-बार समाधान नहीं कर सकता.

OT_DNS_FLAG_RECURSION_DESIRED

इससे पता चलता है कि डीएनएस नेम सर्वर, क्वेरी का बार-बार समाधान कर सकता है.

OT_DNS_FLAG_UNSPECIFIED

इससे पता चलता है कि फ़्लैग तय नहीं किया गया है.

otDnsServiceMode

 otDnsServiceMode

टाइप, otDnsQueryConfig में सेवा रिज़ॉल्यूशन मोड को दिखाता है.

इसका इस्तेमाल सिर्फ़ डीएनएस क्लाइंट सर्विस रिज़ॉल्यूशन 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

टाइप, otDnsQueryConfig में डीएनएस ट्रांसपोर्ट प्रोटोकॉल को दिखाता है.

यह OT_DNS_TRANSPORT_TCP सिर्फ़ तब काम करता है, जब OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE चालू हो.

प्रॉपर्टी
OT_DNS_TRANSPORT_TCP

डीएनएस क्वेरी, यूडीपी के ज़रिए भेजी जानी चाहिए.

OT_DNS_TRANSPORT_UDP

डीएनएस ट्रांसपोर्ट की जानकारी नहीं दी गई है.

टाइपडीफ़

otDnsAddressCallback

void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)

पॉइंटर को तब कॉल किया जाता है, जब किसी एड्रेस रिज़ॉल्यूशन क्वेरी के लिए डीएनएस रिस्पॉन्स मिलता है.

इस कॉलबैक में, उपयोगकर्ता रिस्पॉन्स के बारे में ज़्यादा जानकारी पाने के लिए, aResponse पॉइंटर के साथ-साथ otDnsAddressResponseGet{Item}() फ़ंक्शन का इस्तेमाल कर सकता है.

aResponse पॉइंटर का इस्तेमाल सिर्फ़ इस कॉलबैक में किया जा सकता है. इस फ़ंक्शन से लौटने के बाद, यह मान्य नहीं रहेगा. इसलिए, बाद में इस्तेमाल करने के लिए, उपयोगकर्ता को aResponse पॉइंटर को बनाए रखना ज़रूरी नहीं है.

aError में ये चीज़ें हो सकती हैं:

जानकारी
पैरामीटर
[in] aError
डीएनएस लेन-देन का नतीजा.
[in] aResponse
जवाब के लिए पॉइंटर (यह हमेशा NULL नहीं होता है).
[in] aContext
ऐप्लिकेशन के हिसाब से संदर्भ के लिए पॉइंटर.

  • OT_ERROR_NONE एक जवाब मिला.
  • OT_ERROR_ABORT स्टैक की मदद से डीएनएस लेन-देन रद्द किया गया.
  • OT_ERROR_ERROR_ क्रिएटिव टाइम आउट के अंदर कोई डीएनएस जवाब नहीं मिला है.

अगर सर्वर, पते का समाधान करने का अनुरोध अस्वीकार कर देता है, तो सर्वर से मिले गड़बड़ी कोड को इस तरह मैप किया जाएगा:

  • (0) NOERROR सफलता (कोई गड़बड़ी वाली शर्त नहीं) -> OT_ERROR_NONE
  • (1) FORMERR सर्वर प्रारूप गड़बड़ी के कारण व्याख्या करने में असमर्थ -> OT_ERROR_PARSE
  • (2) SERVFAILED सर्वर को आंतरिक गड़बड़ी का सामना करना पड़ा -> 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_ भले ही
  • (7) YXRRSET कुछ आरआरसेट जिनका होना ज़रूरी नहीं है, मौजूद है -> OT_ERROR_ टेंप्लेट
  • (8) NXRRSET कुछ आरआरसेट जो मौजूद होने चाहिए, मौजूद नहीं हैं -> OT_ERROR_NOT_FOUND
  • (9) ज़ोन के लिए NOTAUTH सेवा आधिकारिक नहीं है -> OT_ERROR_Security
  • (10) NOTZONE नाम ज़ोन में नहीं है -> OT_ERROR_PARSE
  • (20) BADNAME खराब नाम -> OT_ERROR_PARSE
  • (21) BADALG खराब एल्गोरिदम -> OT_ERROR_सुरक्षा
  • (22) BADTRUN खराब काट-छांट -> OT_ERROR_PARSE
  • अन्य जवाब कोड -> OT_ERROR_FAILED

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

किसी पते के रिज़ॉल्यूशन वाली डीएनएस क्वेरी के रिस्पॉन्स का ओपेक तरीके से दिखाना.

इस तरह के इंस्टेंस के पॉइंटर, कॉलबैक otDnsAddressCallback से मिलते हैं.

otDnsBrowseCallback

void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)

पॉइंटर को तब कॉल किया जाता है, जब किसी ब्राउज़ (सर्विस इंस्टेंस एन्युमरेशन) क्वेरी के लिए डीएनएस रिस्पॉन्स मिलता है.

इस कॉलबैक में, उपयोगकर्ता रिस्पॉन्स के बारे में ज़्यादा जानकारी पाने के लिए, aResponse पॉइंटर के साथ-साथ otDnsBrowseResponseGet{Item}() फ़ंक्शन का इस्तेमाल कर सकता है.

aResponse पॉइंटर का इस्तेमाल सिर्फ़ इस कॉलबैक में किया जा सकता है. इस फ़ंक्शन से लौटने के बाद, यह मान्य नहीं रहेगा. इसलिए, बाद में इस्तेमाल करने के लिए, उपयोगकर्ता को aResponse पॉइंटर को बनाए रखना ज़रूरी नहीं है.

aError के लिए संभावित वैल्यू की पूरी सूची देखने के लिए, कृपया otDnsAddressCallback() देखें.

जानकारी
पैरामीटर
[in] aError
डीएनएस लेन-देन का नतीजा.
[in] aResponse
जवाब के लिए पॉइंटर (यह हमेशा NULL नहीं होता है).
[in] aContext
ऐप्लिकेशन के हिसाब से संदर्भ के लिए पॉइंटर.

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

किसी ब्राउज़ (सर्विस इंस्टेंस इन्यूमिरेशन) डीएनएस क्वेरी के रिस्पॉन्स का ओपेक तरीके से दिखाना.

इस तरह के इंस्टेंस के पॉइंटर, कॉलबैक otDnsBrowseCallback से मिलते हैं.

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

यह डीएनएस क्वेरी कॉन्फ़िगरेशन को दिखाता है.

इस स्ट्रक्चर में किसी भी फ़ील्ड को शून्य पर सेट किया जा सकता है, ताकि यह बताया जा सके कि वह तय नहीं किया गया है. otDnsQueryConfig के इंस्टेंस का इस्तेमाल करने वाला फ़ंक्शन, यह तय करता है कि ऐसे फ़ील्ड कैसे इस्तेमाल किए जाते हैं जिनके बारे में जानकारी नहीं दी गई है.

otDnsServiceCallback

void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)

पॉइंटर को तब कॉल किया जाता है, जब किसी सर्विस इंस्टेंस रिज़ॉल्यूशन क्वेरी के लिए डीएनएस रिस्पॉन्स मिलता है.

इस कॉलबैक में, उपयोगकर्ता रिस्पॉन्स के बारे में ज़्यादा जानकारी पाने के लिए, aResponse पॉइंटर के साथ-साथ otDnsServiceResponseGet{Item}() फ़ंक्शन का इस्तेमाल कर सकता है.

aResponse पॉइंटर का इस्तेमाल सिर्फ़ इस कॉलबैक में किया जा सकता है. इस फ़ंक्शन से लौटने के बाद, यह मान्य नहीं रहेगा. इसलिए, बाद में इस्तेमाल करने के लिए, उपयोगकर्ता को aResponse पॉइंटर को बनाए रखना ज़रूरी नहीं है.

aError के लिए संभावित वैल्यू की पूरी सूची देखने के लिए, कृपया otDnsAddressCallback() देखें.

जानकारी
पैरामीटर
[in] aError
डीएनएस लेन-देन का नतीजा.
[in] aResponse
जवाब के लिए पॉइंटर (यह हमेशा NULL नहीं होता है).
[in] aContext
ऐप्लिकेशन के हिसाब से संदर्भ के लिए पॉइंटर.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

यह डीएनएस सेवा के इंस्टेंस के बारे में जानकारी देता है.

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

सर्विस इंस्टेंस रिज़ॉल्यूशन वाली डीएनएस क्वेरी के रिस्पॉन्स का ओपेक तरीके से दिखाया गया है.

इस तरह के इंस्टेंस के पॉइंटर, कॉलबैक otDnsAddressCallback से मिलते हैं.

otDnsTxtEntry

struct otDnsTxtEntry otDnsTxtEntry

कुंजी/वैल्यू के जोड़े (आरएफ़सी 6763 - सेक्शन 6.3) को दिखाने वाली TXT रिकॉर्ड एंट्री के बारे में बताता है.

mKey और mValue से बताए गए स्ट्रिंग बफ़र का इस्तेमाल जारी रखना ज़रूरी है. साथ ही, OpenThread को इस तरह के स्ट्रक्चर का कोई इंस्टेंस पास होने के बाद, इनमें कोई बदलाव नहीं होना चाहिए. यह बदलाव, otSrpClientService इंस्टेंस के हिस्से के तौर पर किया जाता है.

otSrpClientService में otDnsTxtEntry एंट्री का इस्तेमाल किया जाता है, ताकि पूरा TXT रिकॉर्ड (जानकारी की सूची) दर्ज किया जा सके.

otDnsTxtEntryIterator

struct otDnsTxtEntryIterator otDnsTxtEntryIterator

TXT रिकॉर्ड एंट्री (कुंजी/वैल्यू पेयर) के लिए, इटरेटर को दिखाता है.

इस स्ट्रक्चर में मौजूद डेटा फ़ील्ड, OpenThread कोर के लिए इस्तेमाल किए जाने के लिए हैं. इसलिए, कॉलर को इन्हें पढ़ना या बदलना नहीं चाहिए.

फ़ंक्शन

otDnsAddressResponseGetAddress

otError otDnsAddressResponseGetAddress(
  const otDnsAddressResponse *aResponse,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

पते के रिज़ॉल्यूशन वाले डीएनएस रिस्पॉन्स से जुड़ा आईपीवी6 पता मिलता है.

सिर्फ़ otDnsAddressCallback से इस्तेमाल किया जाना चाहिए.

जवाब में, आईपीवी6 पते के कई रिकॉर्ड शामिल हो सकते हैं. aIndex का इस्तेमाल, पतों की सूची की मदद से दोहराने के लिए किया जा सकता है. इंडेक्स शून्य को पहला पता मिलता है. यह क्रम इसी तरह जारी रहता है. सूची के आखिर में पहुंचने पर, OT_ERROR_NOT_FOUND नतीजा मिलता है.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[in] aIndex
वह पता रिकॉर्ड इंडेक्स जिसे वापस पाना है.
[out] aAddress
पता आउटपुट करने के लिए IPv6 पते का पॉइंटर (शून्य नहीं होना चाहिए).
[out] aTtl
पते के लिए TTL (टीटीएल) आउटपुट के लिए, uint32_t का पॉइंटर. अगर कॉलर TTL नहीं पाना चाहता है, तो यह NULL हो सकता है.
रिटर्न वैल्यू
OT_ERROR_NONE
पता पढ़ लिया गया.
OT_ERROR_NOT_FOUND
aIndex पर aResponse में कोई पता रिकॉर्ड नहीं है.
OT_ERROR_PARSE
aResponse में मौजूद रिकॉर्ड पार्स नहीं किए जा सके.
OT_ERROR_INVALID_STATE
कोई NAT64 प्रीफ़िक्स नहीं है (NAT64 की अनुमति होने पर ही लागू होता है).

otDnsAddressResponseGetHostName

otError otDnsAddressResponseGetHostName(
  const otDnsAddressResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

पते की समस्या को ठीक करने वाले डीएनएस रिस्पॉन्स से जुड़े पूरे होस्ट नेम की जानकारी देता है.

सिर्फ़ otDnsAddressCallback से इस्तेमाल किया जाना चाहिए.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[out] aNameBuffer
पूरे होस्ट नाम का आउटपुट देने के लिए, वर्ण अरे का बफ़र (शून्य नहीं होना चाहिए).
[in] aNameBufferSize
aNameBuffer का साइज़.
रिटर्न वैल्यू
OT_ERROR_NONE
पूरा होस्ट नाम पढ़ लिया गया.
OT_ERROR_NO_BUFS
यह नाम aNameBuffer में फ़िट नहीं है.

otDnsBrowseResponseGetHostAddress

otError otDnsBrowseResponseGetHostAddress(
  const otDnsBrowseResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) के रिस्पॉन्स से, होस्ट आईपीवी6 पता पाता है.

सिर्फ़ otDnsBrowseCallback से इस्तेमाल किया जाना चाहिए.

जवाब में, आईपीवी6 पते के शून्य या उससे ज़्यादा रिकॉर्ड शामिल हो सकते हैं. aIndex का इस्तेमाल, पतों की सूची की मदद से दोहराने के लिए किया जा सकता है. इंडेक्स शून्य को पहला पता मिलता है. यह क्रम इसी तरह जारी रहता है. सूची के आखिर में पहुंचने पर, OT_ERROR_NOT_FOUND नतीजा मिलता है.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[in] aHostName
पता पाने के लिए होस्ट नेम (शून्य नहीं होना चाहिए).
[in] aIndex
वह पता रिकॉर्ड इंडेक्स जिसे वापस पाना है.
[out] aAddress
पता आउटपुट करने के लिए IPv6 पते का पॉइंटर (शून्य नहीं होना चाहिए).
[out] aTtl
पते के लिए TTL (टीटीएल) आउटपुट के लिए, uint32_t का पॉइंटर. अगर कॉलर TTL नहीं पाना चाहता है, तो यह NULL हो सकता है.
रिटर्न वैल्यू
OT_ERROR_NONE
पता पढ़ लिया गया.
OT_ERROR_NOT_FOUND
aResponse में aIndex पर aHostname के लिए कोई पता रिकॉर्ड नहीं है.
OT_ERROR_PARSE
aResponse में मौजूद रिकॉर्ड पार्स नहीं किए जा सके.

otDnsBrowseResponseGetServiceInfo

otError otDnsBrowseResponseGetServiceInfo(
  const otDnsBrowseResponse *aResponse,
  const char *aInstanceLabel,
  otDnsServiceInfo *aServiceInfo
)

डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) के रिस्पॉन्स से, किसी सेवा इंस्टेंस की जानकारी मिलती है.

सिर्फ़ otDnsBrowseCallback से इस्तेमाल किया जाना चाहिए.

ब्राउज़ डीएनएस रिस्पॉन्स में, सेवा इंस्टेंस के लिए SRV, TXT, और AAAA रिकॉर्ड शामिल हो सकते हैं. ऐसा करना ज़रूरी नहीं है. साथ ही, सर्वर/सॉल्वर को यह जानकारी देना ज़रूरी नहीं है. उपलब्ध होने पर, यह फ़ंक्शन किसी दी गई सेवा के इंस्टेंस के लिए, इस जानकारी को हासिल करने की कोशिश करता है.

  • अगर aResponse में मिलता-जुलता कोई SRV रिकॉर्ड नहीं मिलता, तो OT_ERROR_NOT_FOUND लौटाया जाता है. इस मामले में, कोई अतिरिक्त रिकॉर्ड (कोई TXT और/या AAAA) नहीं पढ़ा जाता है.
  • अगर aResponse में मिलता-जुलता एसआरवी रिकॉर्ड मिलता है, तो aServiceInfo को अपडेट किया जाता है और OT_ERROR_NONE दिखाया जाता है.
  • अगर aResponse में मिलता-जुलता कोई TXT रिकॉर्ड नहीं मिलता है, तो aServiceInfo में mTxtDataSize को शून्य पर सेट कर दिया जाता है.
  • अगर TXT डेटा की लंबाई mTxtDataSize से ज़्यादा है, तो उसे कुछ हद तक पढ़ा जाता है और mTxtDataTruncated को 'सही' पर सेट किया जाता है.
  • अगर aResponse में मिलता-जुलता कोई AAAA रिकॉर्ड नहीं मिलता है, तो mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse,mHostAddressis set to the first one. The other addresses can be retrieved usingotDnsBrowseResponseGetHostAddress()`.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[in] aInstanceLabel
सर्विस इंस्टेंस लेबल (शून्य नहीं होना चाहिए).
[out] aServiceInfo
सर्विस इंस्टेंस की जानकारी देने के लिए ServiceInfo (शून्य नहीं होना चाहिए).
रिटर्न वैल्यू
OT_ERROR_NONE
सेवा इंस्टेंस की जानकारी पढ़ी गई. aServiceInfo अपडेट हो गया है.
OT_ERROR_NOT_FOUND
aInstanceLabel के लिए कोई मिलता-जुलता SRV रिकॉर्ड नहीं मिला.
OT_ERROR_NO_BUFS
होस्ट नेम और/या TXT डेटा दिए गए बफ़र में फ़िट नहीं हो सका.
OT_ERROR_PARSE
aResponse में मौजूद रिकॉर्ड पार्स नहीं किए जा सके.

otDnsBrowseResponseGetServiceInstance

otError otDnsBrowseResponseGetServiceInstance(
  const otDnsBrowseResponse *aResponse,
  uint16_t aIndex,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize
)

डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) रिस्पॉन्स से जुड़ा सेवा इंस्टेंस लेता है.

सिर्फ़ otDnsBrowseCallback से इस्तेमाल किया जाना चाहिए.

रिस्पॉन्स में कई सेवा इंस्टेंस रिकॉर्ड शामिल हो सकते हैं. aIndex का इस्तेमाल, सूची में दी गई जानकारी दोहराने के लिए किया जा सकता है. इंडेक्स ज़ीरो से पहला रिकॉर्ड मिलता है. सूची के आखिर में पहुंचने पर, OT_ERROR_NOT_FOUND नतीजा मिलता है.

ध्यान दें कि इस फ़ंक्शन को सेवा इंस्टेंस लेबल मिलता है, न कि सेवा इंस्टेंस का पूरा नाम, जो .. फ़ॉर्म का होता है.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[in] aIndex
वापस लाया जाने वाला सर्विस इंस्टेंस रिकॉर्ड इंडेक्स.
[out] aLabelBuffer
सर्विस इंस्टेंस लेबल को आउटपुट करने के लिए, अरे को चार्ट में बांटने का बफ़र (शून्य नहीं होना चाहिए).
[in] aLabelBufferSize
aLabelBuffer का साइज़.
रिटर्न वैल्यू
OT_ERROR_NONE
सेवा इंस्टेंस सफलतापूर्वक पढ़ लिया गया था.
OT_ERROR_NO_BUFS
यह नाम aNameBuffer में फ़िट नहीं है.
OT_ERROR_NOT_FOUND
aResponse में aIndex पर कोई सेवा इंस्टेंस रिकॉर्ड नहीं है.
OT_ERROR_PARSE
aResponse में मौजूद रिकॉर्ड पार्स नहीं किए जा सके.

otDnsBrowseResponseGetServiceName

otError otDnsBrowseResponseGetServiceName(
  const otDnsBrowseResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) रिस्पॉन्स से जुड़ी सेवा के नाम की जानकारी देता है.

सिर्फ़ otDnsBrowseCallback से इस्तेमाल किया जाना चाहिए.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[out] aNameBuffer
सेवा का नाम आउटपुट करने के लिए, डेटा को वर्ण देने वाला बफ़र (शून्य नहीं होना चाहिए).
[in] aNameBufferSize
aNameBuffer का साइज़.
रिटर्न वैल्यू
OT_ERROR_NONE
सेवा का नाम सफलतापूर्वक पढ़ लिया गया था.
OT_ERROR_NO_BUFS
यह नाम aNameBuffer में फ़िट नहीं है.

otDnsClientBrowse

otError otDnsClientBrowse(
  otInstance *aInstance,
  const char *aServiceName,
  otDnsBrowseCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

किसी सेवा के नाम के लिए, डीएनएस ब्राउज़ (सेवा इंस्टेंस की गिनती) क्वेरी भेजता है.

यह विकल्प, OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE के चालू होने पर उपलब्ध होगा.

aConfig, NULL हो सकता है. इस मामले में, otDnsClientGetDefaultConfig() के डिफ़ॉल्ट कॉन्फ़िगरेशन को इस क्वेरी के कॉन्फ़िगरेशन के तौर पर इस्तेमाल किया जाएगा. नॉन-शून्य aConfig में, कुछ फ़ील्ड को बिना वैल्यू के छोड़ा जा सकता है (वैल्यू शून्य). इसके बाद, उन फ़ील्ड को डिफ़ॉल्ट कॉन्फ़िगरेशन में मौजूद वैल्यू से बदल दिया जाता है जिनके बारे में जानकारी नहीं है.

जानकारी
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
[in] aServiceName
क्वेरी करने के लिए सेवा का नाम (शून्य नहीं होना चाहिए).
[in] aCallback
फ़ंक्शन पॉइंटर, जिसे रिस्पॉन्स मिलने या टाइम-आउट होने पर कॉल किया जाएगा.
[in] aContext
आर्बिट्रेरी कॉन्टेक्स्ट जानकारी के लिए पॉइंटर.
[in] aConfig
इस क्वेरी के लिए इस्तेमाल करने के लिए कॉन्फ़िगरेशन का पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
क्वेरी भेजी गई. स्टेटस की रिपोर्ट करने के लिए, aCallback को शुरू किया जाएगा.
OT_ERROR_NO_BUFS
क्वेरी तैयार करने और भेजने के लिए पर्याप्त बफ़र नहीं है.

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

इससे डीएनएस क्लाइंट के इस्तेमाल किए गए मौजूदा डिफ़ॉल्ट क्वेरी कॉन्फ़िगरेशन की जानकारी मिलती है.

OpenThread स्टैक के शुरू होने पर, डिफ़ॉल्ट डीएनएस क्वेरी कॉन्फ़िगरेशन को ओटी कॉन्फ़िगरेशन के विकल्पों के सेट से तय किया जाता है. जैसे, OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS, _DEFAULT_SERVER_PORT, _DEFAULT_RESPONSE_TIMEOUT वगैरह. कॉन्फ़िगरेशन से जुड़े सभी विकल्पों के लिए config/dns_client.h देखें.

जानकारी
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
लौटाए गए सामान
मौजूदा डिफ़ॉल्ट कॉन्फ़िगरेशन के लिए एक पॉइंटर, जिसका इस्तेमाल डीएनएस क्लाइंट कर रहा है.

otDnsClientResolveAddress

otError otDnsClientResolveAddress(
  otInstance *aInstance,
  const char *aHostName,
  otDnsAddressCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

दिए गए होस्ट नाम के लिए, AAAA (IPv6) रिकॉर्ड के लिए पते के रिज़ॉल्यूशन वाली डीएनएस क्वेरी भेजता है.

aConfig, NULL हो सकता है. इस मामले में, otDnsClientGetDefaultConfig() के डिफ़ॉल्ट कॉन्फ़िगरेशन को इस क्वेरी के कॉन्फ़िगरेशन के तौर पर इस्तेमाल किया जाएगा. नॉन-शून्य aConfig में, कुछ फ़ील्ड को बिना वैल्यू के छोड़ा जा सकता है (वैल्यू शून्य). इसके बाद, उन फ़ील्ड को डिफ़ॉल्ट कॉन्फ़िगरेशन में मौजूद वैल्यू से बदल दिया जाता है जिनके बारे में जानकारी नहीं है.

जानकारी
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
[in] aHostName
वह होस्ट नाम जिसके लिए पते की क्वेरी करनी है (शून्य नहीं होना चाहिए).
[in] aCallback
फ़ंक्शन पॉइंटर, जिसे रिस्पॉन्स मिलने या टाइम-आउट होने पर कॉल किया जाएगा.
[in] aContext
आर्बिट्रेरी कॉन्टेक्स्ट जानकारी के लिए पॉइंटर.
[in] aConfig
इस क्वेरी के लिए इस्तेमाल करने के लिए कॉन्फ़िगरेशन का पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
क्वेरी भेजी गई. स्टेटस की रिपोर्ट करने के लिए, aCallback को शुरू किया जाएगा.
OT_ERROR_NO_BUFS
क्वेरी तैयार करने और भेजने के लिए पर्याप्त बफ़र नहीं है.
OT_ERROR_INVALID_ARGS
होस्ट नेम का फ़ॉर्मैट सही नहीं है.
OT_ERROR_INVALID_STATE
Thread इंटरफ़ेस के काम नहीं करने की वजह से, क्वेरी नहीं भेजी जा सकी.

otDnsClientResolveIp4Address

otError otDnsClientResolveIp4Address(
  otInstance *aInstance,
  const char *aHostName,
  otDnsAddressCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

दिए गए होस्ट नेम के A (IPv4) रिकॉर्ड के लिए, पते के रिज़ॉल्यूशन वाली डीएनएस क्वेरी भेजता है.

OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE के चालू होने पर ही उपलब्ध होता है और इसकी ज़रूरत होती है.

जवाब मिलने पर, aCallback से आईपी पते के वे पते दिखाए जाते हैं जिनका अनुवाद, क्वेरी के जवाब में दिखाया जाता है. ये पते, आईपीवी4 पतों के NAT64 IPv6 वर्शन के तौर पर दिखाए जाते हैं.

aConfig, NULL हो सकता है. इस मामले में, otDnsClientGetDefaultConfig() के डिफ़ॉल्ट कॉन्फ़िगरेशन को इस क्वेरी के कॉन्फ़िगरेशन के तौर पर इस्तेमाल किया जाएगा. नॉन-शून्य aConfig में, कुछ फ़ील्ड को बिना वैल्यू के छोड़ा जा सकता है (वैल्यू शून्य). इसके बाद, उन फ़ील्ड को डिफ़ॉल्ट कॉन्फ़िगरेशन में मौजूद वैल्यू से बदल दिया जाता है जिनके बारे में जानकारी नहीं है.

जानकारी
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
[in] aHostName
वह होस्ट नाम जिसके लिए पते की क्वेरी करनी है (शून्य नहीं होना चाहिए).
[in] aCallback
फ़ंक्शन पॉइंटर, जिसे रिस्पॉन्स मिलने या टाइम-आउट होने पर कॉल किया जाएगा.
[in] aContext
आर्बिट्रेरी कॉन्टेक्स्ट जानकारी के लिए पॉइंटर.
[in] aConfig
इस क्वेरी के लिए इस्तेमाल करने के लिए कॉन्फ़िगरेशन का पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
क्वेरी भेजी गई. स्टेटस की रिपोर्ट करने के लिए, aCallback को शुरू किया जाएगा.
OT_ERROR_NO_BUFS
क्वेरी तैयार करने और भेजने के लिए पर्याप्त बफ़र नहीं है.
OT_ERROR_INVALID_ARGS
होस्ट नाम मान्य फ़ॉर्मैट नहीं है या कॉन्फ़िगरेशन में NAT64 चालू नहीं है.
OT_ERROR_INVALID_STATE
Thread इंटरफ़ेस के काम नहीं करने की वजह से, क्वेरी नहीं भेजी जा सकी.

otDnsClientResolveService

otError otDnsClientResolveService(
  otInstance *aInstance,
  const char *aInstanceLabel,
  const char *aServiceName,
  otDnsServiceCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

दिए गए सेवा इंस्टेंस के लिए, डीएनएस सेवा इंस्टेंस का रिज़ॉल्यूशन शुरू करता है.

यह विकल्प, OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE के चालू होने पर उपलब्ध होगा.

aConfig, NULL हो सकता है. इस मामले में, otDnsClientGetDefaultConfig() के डिफ़ॉल्ट कॉन्फ़िगरेशन को इस क्वेरी के कॉन्फ़िगरेशन के तौर पर इस्तेमाल किया जाएगा. नॉन-शून्य aConfig में, कुछ फ़ील्ड को बिना वैल्यू के छोड़ा जा सकता है (वैल्यू शून्य). इसके बाद, उन फ़ील्ड को डिफ़ॉल्ट कॉन्फ़िगरेशन में मौजूद वैल्यू से बदल दिया जाता है जिनके बारे में जानकारी नहीं है.

फ़ंक्शन दिए गए सर्विस इंस्टेंस के लिए, SRV और/या TXT रिकॉर्ड के लिए क्वेरी भेजता है. otDnsQueryConfig के mServiceMode फ़ील्ड से तय होता है कि किन रिकॉर्ड पर क्वेरी करनी है (सिर्फ़ SRV, सिर्फ़ TXT या SRV और TXT दोनों) और क्वेरी कैसे की जानी चाहिए (एक साथ समान मैसेज में, अलग-अलग साथ में या ऑप्टिमाइज़ किए गए मोड में, जहां क्लाइंट पहले उसी मैसेज पर और फिर अलग से जवाब देने की कोशिश करेगा, अगर उसे कोई जवाब नहीं मिलता है).

SRV रिकॉर्ड, सर्विस इंस्टेंस से जुड़े होस्ट नाम के साथ सर्विस पोर्ट, प्राथमिकता, और वज़न के बारे में जानकारी देता है. यह फ़ंक्शन SRV रिकॉर्ड से खोजे गए होस्ट नाम के लिए पते का समाधान नहीं करता. सर्वर/रिज़ॉल्वर, SRV/TXT क्वेरी के जवाब के अतिरिक्त डेटा सेक्शन में होस्ट नाम के लिए AAAA/A रिकॉर्ड दे सकता है. यह जानकारी otDnsServiceCallback में otDnsServiceResponseGetServiceInfo() का इस्तेमाल करके हासिल की जा सकती है. इस एपीआई का इस्तेमाल करने वालों को यह नहीं मानना चाहिए कि होस्ट पता हमेशा otDnsServiceResponseGetServiceInfo() से उपलब्ध रहेगा.

जानकारी
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
[in] aInstanceLabel
सेवा इंस्टेंस लेबल.
[in] aServiceName
सेवा का नाम (aInstanceLabel फ़ॉर्म के पूरे इंस्टेंस के नाम के साथ).
[in] aCallback
फ़ंक्शन पॉइंटर, जिसे रिस्पॉन्स मिलने या टाइम-आउट होने पर कॉल किया जाएगा.
[in] aContext
आर्बिट्रेरी कॉन्टेक्स्ट जानकारी के लिए पॉइंटर.
[in] aConfig
इस क्वेरी के लिए इस्तेमाल करने के लिए कॉन्फ़िगरेशन का पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
क्वेरी भेजी गई. स्टेटस की रिपोर्ट करने के लिए, aCallback को शुरू किया जाएगा.
OT_ERROR_NO_BUFS
क्वेरी तैयार करने और भेजने के लिए पर्याप्त बफ़र नहीं है.
OT_ERROR_INVALID_ARGS
aInstanceLabel NULL है.

otDnsClientResolveServiceAndHostAddress

otError otDnsClientResolveServiceAndHostAddress(
  otInstance *aInstance,
  const char *aInstanceLabel,
  const char *aServiceName,
  otDnsServiceCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

यह दिए गए सेवा इंस्टेंस के लिए डीएनएस सेवा इंस्टेंस का रिज़ॉल्यूशन शुरू करता है. इसमें सेवा इंस्टेंस के लिए खोजे गए होस्ट नाम के लिए फ़ॉलो-अप पते का संभावित रिज़ॉल्यूशन शुरू होता है.

यह विकल्प, OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE के चालू होने पर उपलब्ध होगा.

aConfig, NULL हो सकता है. इस मामले में, otDnsClientGetDefaultConfig() के डिफ़ॉल्ट कॉन्फ़िगरेशन को इस क्वेरी के कॉन्फ़िगरेशन के तौर पर इस्तेमाल किया जाएगा. नॉन-शून्य aConfig में, कुछ फ़ील्ड को बिना वैल्यू के छोड़ा जा सकता है (वैल्यू शून्य). इसके बाद, उन फ़ील्ड को डिफ़ॉल्ट कॉन्फ़िगरेशन में मौजूद वैल्यू से बदल दिया जाता है जिनके बारे में जानकारी नहीं है. इस फ़ंक्शन को OT_DNS_SERVICE_MODE_TXT पर सेट किए गए डीएनएस कॉन्फ़िगरेशन में mServiceMode के साथ इस्तेमाल नहीं किया जा सकता (जैसे, सिर्फ़ TXT रिकॉर्ड के लिए क्वेरी करना) और इससे OT_ERROR_INVALID_ARGS मिलेगा.

यह एसआरवी और टीएक्सटी रिकॉर्ड के लिए क्वेरी भेजने वाले otDnsClientResolveService() की तरह ही काम करता है. हालांकि, अगर सर्वर/रिज़ॉल्वर, SRV क्वेरी (अतिरिक्त डेटा सेक्शन में) के जवाब में होस्ट नाम के लिए AAAA/A रिकॉर्ड नहीं देता है, तो वह SRV रिकॉर्ड से खोजे गए होस्ट नाम के लिए होस्ट नेम रिज़ॉल्यूशन (AAAA क्वेरी भेजेगा). सभी क्वेरी के जवाब मिलने पर, aCallback कॉलबैक को शुरू किया जाता है. इसका मतलब है कि सेवा और होस्ट अड्रेस, दोनों के रिज़ॉल्यूशन पूरे हो जाने पर.

जानकारी
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
[in] aInstanceLabel
सेवा इंस्टेंस लेबल.
[in] aServiceName
सेवा का नाम (aInstanceLabel फ़ॉर्म के पूरे इंस्टेंस के नाम के साथ).
[in] aCallback
फ़ंक्शन पॉइंटर, जिसे रिस्पॉन्स मिलने या टाइम-आउट होने पर कॉल किया जाएगा.
[in] aContext
आर्बिट्रेरी कॉन्टेक्स्ट जानकारी के लिए पॉइंटर.
[in] aConfig
इस क्वेरी के लिए इस्तेमाल करने के लिए कॉन्फ़िगरेशन का पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
क्वेरी भेजी गई. स्टेटस की रिपोर्ट करने के लिए, aCallback को शुरू किया जाएगा.
OT_ERROR_NO_BUFS
क्वेरी तैयार करने और भेजने के लिए पर्याप्त बफ़र नहीं है.
OT_ERROR_INVALID_ARGS
aInstanceLabel NULL है या aConfig अमान्य है.

otDnsClientSetDefaultConfig

void otDnsClientSetDefaultConfig(
  otInstance *aInstance,
  const otDnsQueryConfig *aConfig
)

यह डीएनएस क्लाइंट पर, डिफ़ॉल्ट क्वेरी कॉन्फ़िगरेशन को सेट करता है.

aConfig, NULL हो सकता है. इस मामले में, डिफ़ॉल्ट कॉन्फ़िगरेशन को ओटी कॉन्फ़िगरेशन के विकल्प OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} में मौजूद, डिफ़ॉल्ट के तौर पर सेट किया जाएगा. ऐसा करने से, OpenThread स्टैक के शुरू होने पर डिफ़ॉल्ट क्वेरी कॉन्फ़िगरेशन को वापस कॉन्फ़िगरेशन पर रीसेट कर दिया जाता है.

नॉन-शून्य aConfig में, कॉलर otDnsQueryConfig इंस्टेंस के कुछ फ़ील्ड को बिना तय किए (वैल्यू शून्य) छोड़ने का विकल्प चुन सकता है. डिफ़ॉल्ट क्वेरी कॉन्फ़िगरेशन बनाने के लिए, बिना जानकारी वाले फ़ील्ड को उनसे जुड़े ओटी कॉन्फ़िगरेशन विकल्प की परिभाषाओं OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} से बदल दिया जाता है.

जब OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE चालू होता है, तो डिफ़ॉल्ट कॉन्फ़िगरेशन में सर्वर का IPv6 पता, डीएनएस क्लाइंट के ज़रिए अपने-आप सेट और अपडेट हो जाता है. ऐसा सिर्फ़ तब किया जाता है, जब उपयोगकर्ता इसे साफ़ तौर पर सेट या तय नहीं करता. इस व्यवहार के लिए, SRP क्लाइंट और इसकी अपने-आप चालू होने की सुविधा चालू होना ज़रूरी है. इसके बाद, SRP क्लाइंट किसी SRP सर्वर को चुनने के लिए, DNS/SRP सेवा की एंट्री के लिए Thread नेटवर्क डेटा की निगरानी करेगा. चुने गए एसआरपी सर्वर का पता, डिफ़ॉल्ट कॉन्फ़िगरेशन में डीएनएस सर्वर पते के तौर पर भी सेट है.

जानकारी
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
[in] aConfig
नई क्वेरी कॉन्फ़िगरेशन के लिए एक पॉइंटर, जिसे डिफ़ॉल्ट के तौर पर इस्तेमाल किया जा सकता है.

otDnsEncodeTxtData

otError otDnsEncodeTxtData(
  const otDnsTxtEntry *aTxtEntries,
  uint16_t aNumTxtEntries,
  uint8_t *aTxtData,
  uint16_t *aTxtDataLength
)

यह TXT रिकॉर्ड एंट्री (कुंजी/वैल्यू के जोड़े) की दी गई सूची को TXT डेटा में कोड में बदलता है. ऐसा आरएफ़सी 6763 के बताए गए फ़ॉर्मैट के मुताबिक किया जाता है.

जानकारी
पैरामीटर
[in] aTxtEntries
otDnsTxtEntry की कैटगरी पर कर्सर ले जाएं.
[in] aNumTxtEntries
aTxtEntries कैटगरी में एंट्री की संख्या.
[out] aTxtData
कोड में बदला गया TXT डेटा आउटपुट करने के लिए बफ़र का पॉइंटर.
[in,out] aTxtDataLength
इनपुट पर, बफ़र का साइज़ aTxtData है. आउटपुट पर, कोड में बदले गए TXT डेटा की लंबाई.
रिटर्न वैल्यू
OT_ERROR_NONE
कोड में बदला गया TXT डेटा, aTxtData और aTxtDataLength अपडेट किया गया है.
OT_ERROR_INVALID_ARGS
aTxtEntries मान्य नहीं है.
OT_ERROR_NO_BUS
कोड में बदले गए डेटा को aTxtData बफ़र में aTxtDataLength के साथ फ़िट नहीं किया जा सका.

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

यह, किसी इटरेटर से TXT डेटा को पार्स करता है और अगली TXT रिकॉर्ड एंट्री (कुंजी/वैल्यू पेयर) हासिल करता है.

इस फ़ंक्शन को कॉल करने से पहले aIterator को otDnsInitTxtEntryIterator() का इस्तेमाल करके शुरू किया जाना चाहिए. साथ ही, इटरेटर को शुरू करने के लिए इस्तेमाल किए गए TXT डेटा बफ़र को बनाए रखना ज़रूरी है और इसमें कोई बदलाव नहीं किया गया है. अगर ऐसा नहीं है, तो इस फ़ंक्शन के व्यवहार के बारे में कोई जानकारी नहीं दी गई है.

अगर पार्स की गई कुंजी स्ट्रिंग की लंबाई OT_DNS_TXT_KEY_ITER_MAX_LENGTH से कम या इसके बराबर है, तो aEntry में mKey में कुंजी स्ट्रिंग दिखाई जाती है. अगर कुंजी ज़्यादा लंबी है, तो mKey को NULL पर सेट कर दिया जाता है और कोड में बदली गई पूरी TXT एंट्री स्ट्रिंग mValue और mValueLength में दिखाई जाती है.

जानकारी
पैरामीटर
[in] aIterator
इटरेटर की ओर पॉइंटर (शून्य नहीं होना चाहिए).
[out] aEntry
पार्स/रीड एंट्री को आउटपुट करने के लिए otDnsTxtEntry स्ट्रक्चर का पॉइंटर (शून्य नहीं होना चाहिए).
रिटर्न वैल्यू
OT_ERROR_NONE
अगली एंट्री को पार्स कर दिया गया है. aEntry अपडेट हो गया है.
OT_ERROR_NOT_FOUND
TXT डेटा में कोई और एंट्री नहीं है.
OT_ERROR_PARSE
aIterator से मिला TXT डेटा सही तरीके से फ़ॉर्मैट नहीं किया गया है.

otDnsInitTxtEntryIterator

void otDnsInitTxtEntryIterator(
  otDnsTxtEntryIterator *aIterator,
  const uint8_t *aTxtData,
  uint16_t aTxtDataLength
)

TXT रिकॉर्ड इटरेटर शुरू करता है.

aIterator ऑब्जेक्ट का इस्तेमाल किए जाने के दौरान, बफ़र पॉइंटर aTxtData और इसके कॉन्टेंट में कोई बदलाव नहीं होना चाहिए.

जानकारी
पैरामीटर
[in] aIterator
शुरू करने के लिए, इटरेटर की ओर जाने वाला पॉइंटर (शून्य नहीं होना चाहिए).
[in] aTxtData
बफ़र का एक पॉइंटर, जिसमें कोड में बदला गया TXT डेटा होता है.
[in] aTxtDataLength
aTxtData की लंबाई (बाइट की संख्या).

otDnsIsNameCompressionEnabled

bool otDnsIsNameCompressionEnabled(
  void
)

इससे पता चलता है कि "डीएनएस नाम को कंप्रेस करने का तरीका" मोड चालू है या नहीं.

यह सिर्फ़ जांच के लिए है और OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE कॉन्फ़िगरेशन चालू होने पर ही उपलब्ध होगा.

जानकारी
लौटाए गए सामान
"डीएनएस नाम कंप्रेशन" मोड चालू होने पर 'सही', अगर नहीं, तो 'गलत'.

otDnsServiceResponseGetHostAddress

otError otDnsServiceResponseGetHostAddress(
  const otDnsServiceResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

डीएनएस सेवा इंस्टेंस रिज़ॉल्यूशन रिस्पॉन्स से, होस्ट आईपीवी6 पते की जानकारी मिलती है.

सिर्फ़ otDnsServiceCallback से इस्तेमाल किया जाना चाहिए.

जवाब में, आईपीवी6 पते के शून्य या उससे ज़्यादा रिकॉर्ड शामिल हो सकते हैं. aIndex का इस्तेमाल, पतों की सूची की मदद से दोहराने के लिए किया जा सकता है. इंडेक्स शून्य को पहला पता मिलता है. यह क्रम इसी तरह जारी रहता है. सूची के आखिर में पहुंचने पर, OT_ERROR_NOT_FOUND नतीजा मिलता है.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[in] aHostName
पता पाने के लिए होस्ट नेम (शून्य नहीं होना चाहिए).
[in] aIndex
वह पता रिकॉर्ड इंडेक्स जिसे वापस पाना है.
[out] aAddress
पता आउटपुट करने के लिए IPv6 पते का पॉइंटर (शून्य नहीं होना चाहिए).
[out] aTtl
पते के लिए TTL (टीटीएल) आउटपुट के लिए, uint32_t का पॉइंटर. अगर कॉलर TTL नहीं पाना चाहता है, तो यह NULL हो सकता है.
रिटर्न वैल्यू
OT_ERROR_NONE
पता पढ़ लिया गया.
OT_ERROR_NOT_FOUND
aResponse में aIndex पर aHostname के लिए कोई पता रिकॉर्ड नहीं है.
OT_ERROR_PARSE
aResponse में मौजूद रिकॉर्ड पार्स नहीं किए जा सके.

otDnsServiceResponseGetServiceInfo

otError otDnsServiceResponseGetServiceInfo(
  const otDnsServiceResponse *aResponse,
  otDnsServiceInfo *aServiceInfo
)

डीएनएस सेवा के इंस्टेंस रिज़ॉल्यूशन वाले रिस्पॉन्स से, सेवा इंस्टेंस के बारे में जानकारी मिलती है.

इसका इस्तेमाल सिर्फ़ ऐसे otDnsServiceCallback से किया जाना चाहिए जो otDnsClientResolveService() या otDnsClientResolveServiceAndHostAddress() से ट्रिगर हुआ हो.

जब इसका इस्तेमाल otDnsClientResolveService() कॉलबैक से किया जाता है, तो सर्वर/रिज़ॉल्वर से मिलने वाले डीएनएस रिस्पॉन्स में, रिज़ॉल्वर वाले सेवा इंस्टेंस से जुड़े होस्ट नेम के लिए, अतिरिक्त डेटा सेक्शन में AAAA रिकॉर्ड शामिल हो सकता है. यह एक ज़रूरी शर्त है और ज़रूरी नहीं है. इसलिए, सर्वर/रिज़ॉल्वर को यह जानकारी देने की ज़रूरत नहीं होती. यह फ़ंक्शन, जवाब में शामिल AAAA रिकॉर्ड को पार्स करने की कोशिश करता है. अगर इसे शामिल नहीं किया जाता है, तो mHostAddress को शून्य (अनिर्दिष्ट पता) पर सेट किया जाता है. होस्ट पते का समाधान भी करने के लिए, उपयोगकर्ता डीएनएस क्लाइंट एपीआई फ़ंक्शन otDnsClientResolveServiceAndHostAddress() का इस्तेमाल कर सकता है. सेवा रिज़ॉल्यूशन के बाद, होस्ट नेम के पते का समाधान करने वाली क्वेरी (जब SRV क्वेरी के जवाब में सर्वर/रिज़ॉल्वर की ओर से AAAA रिकॉर्ड उपलब्ध नहीं कराए जाते) शामिल होगी.

  • अगर aResponse में मिलता-जुलता एसआरवी रिकॉर्ड मिलता है, तो aServiceInfo अपडेट कर दिया जाता है.
  • अगर मिलता-जुलता कोई एसआरवी रिकॉर्ड नहीं मिलता है, तो OT_ERROR_NOT_FOUND तब तक लौटाया जाता है, जब तक इस क्वेरी के क्वेरी कॉन्फ़िगरेशन में mServiceMode के लिए OT_DNS_SERVICE_MODE_TXT का इस्तेमाल नहीं किया गया हो. इसका मतलब है कि अनुरोध सिर्फ़ TXT रिकॉर्ड के लिए किया गया था. इस मामले में भी, हम रिस्पॉन्स के अतिरिक्त डेटा सेक्शन (अगर सर्वर ने जानकारी दी हो) से एसआरवी रिकॉर्ड को पार्स करने की कोशिश करते हैं.
  • अगर aResponse में मिलता-जुलता कोई TXT रिकॉर्ड नहीं मिलता है, तो aServiceInfo में mTxtDataSize को शून्य पर सेट कर दिया जाता है.
  • अगर TXT डेटा की लंबाई mTxtDataSize से ज़्यादा है, तो उसे कुछ हद तक पढ़ा जाता है और mTxtDataTruncated को 'सही' पर सेट किया जाता है.
  • अगर aResponse में मिलता-जुलता कोई AAAA रिकॉर्ड नहीं मिलता है, तो mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse,mHostAddressis set to the first one. The other addresses can be retrieved usingotDnsServiceResponseGetHostAddress()`.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[out] aServiceInfo
सर्विस इंस्टेंस की जानकारी देने के लिए ServiceInfo (शून्य नहीं होना चाहिए).
रिटर्न वैल्यू
OT_ERROR_NONE
सेवा इंस्टेंस की जानकारी पढ़ी गई. aServiceInfo अपडेट हो गया है.
OT_ERROR_NOT_FOUND
aResponse में ज़रूरी रिकॉर्ड नहीं मिला.
OT_ERROR_NO_BUFS
होस्ट नेम और/या TXT डेटा दिए गए बफ़र में फ़िट नहीं हो सका.
OT_ERROR_PARSE
aResponse में मौजूद रिकॉर्ड पार्स नहीं किए जा सके.

otDnsServiceResponseGetServiceName

otError otDnsServiceResponseGetServiceName(
  const otDnsServiceResponse *aResponse,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

डीएनएस सेवा इंस्टेंस रिज़ॉल्यूशन रिस्पॉन्स से जुड़े सेवा इंस्टेंस के नाम की जानकारी देता है.

सिर्फ़ otDnsServiceCallback से इस्तेमाल किया जाना चाहिए.

जानकारी
पैरामीटर
[in] aResponse
रिस्पॉन्स के लिए पॉइंटर.
[out] aLabelBuffer
सर्विस इंस्टेंस लेबल को आउटपुट करने के लिए, अरे को चार्ट में बांटने का बफ़र (शून्य नहीं होना चाहिए).
[in] aLabelBufferSize
aLabelBuffer का साइज़.
[out] aNameBuffer
सेवा के बाकी नाम का आउटपुट देने के लिए, चार्ट अरे का बफ़र (अगर उपयोगकर्ता को नाम पाने में दिलचस्पी नहीं है, तो यह शून्य हो सकता है.
[in] aNameBufferSize
aNameBuffer का साइज़.
रिटर्न वैल्यू
OT_ERROR_NONE
सेवा का नाम सफलतापूर्वक पढ़ लिया गया था.
OT_ERROR_NO_BUFS
दिए गए बफ़र में लेबल या नाम फ़िट नहीं होता.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

"डीएनएस नाम कंप्रेशन" मोड को चालू/बंद करता है.

डीएनएस नाम को कंप्रेस करने की सुविधा, डिफ़ॉल्ट रूप से चालू रहती है. बंद होने पर, डीएनएस नामों को पूरे नाम के साथ जोड़ा जाता है और कभी भी कंप्रेस नहीं किया जाता है. यह OpenThread के DNS और SRP क्लाइंट/सर्वर मॉड्यूल पर लागू होता है.

यह सिर्फ़ जांच के लिए है और OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE कॉन्फ़िगरेशन चालू होने पर ही उपलब्ध होगा.

ध्यान दें कि OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE का इस्तेमाल किए जाने पर, यह मोड सभी OpenThread इंस्टेंस पर लागू होता है. इसका मतलब है कि इस फ़ंक्शन को कॉल करने से, OpenThread इंस्टेंस पर कंप्रेशन मोड चालू/बंद हो जाता है.

जानकारी
पैरामीटर
[in] aEnabled
"डीएनएस नाम कंप्रेशन" मोड को चालू करने के लिए 'सही' और बंद करने के लिए 'गलत' है.

मैक्रो

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

लेबल स्ट्रिंग का ज़्यादा से ज़्यादा साइज़ (स्ट्रिंग के आखिर में शून्य वर्ण शामिल करें).

OT_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

नाम वाली स्ट्रिंग का ज़्यादा से ज़्यादा साइज़ (इसमें स्ट्रिंग के आखिर में शून्य वर्ण शामिल होता है).

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 रिकॉर्ड की कुंजी स्ट्रिंग की ज़्यादा से ज़्यादा लंबाई का सुझाव दिया जाता है (आरएफ़सी 6763 - सेक्शन 6.4).

OT_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

TXT रिकॉर्ड की कुंजी स्ट्रिंग की कम से कम लंबाई (RFC 6763 - सेक्शन 6.4).

संसाधन

OpenThread API के रेफ़रंस के विषय, सोर्स कोड से मिलते हैं. यह सोर्स GitHub पर उपलब्ध है. ज़्यादा जानकारी या हमारे दस्तावेज़ में योगदान देने के लिए, संसाधन देखें.