DNS

تتضمن هذه الوحدة وظائف تتحكم في اتصال نظام أسماء النطاقات.

ملخّص

لا تتوفر الدوالّ في هذه الوحدة إلا إذا تمّ تفعيل الميزة OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE.

عمليات التعداد

otDnsNat64Mode{
  OT_DNS_NAT64_UNSPECIFIED = 0,
  OT_DNS_NAT64_ALLOW = 1,
  OT_DNS_NAT64_DISALLOW = 2
}
تعداد
يمثّل النوع وضع NAT64 في otDnsQueryConfig.
otDnsRecursionFlag{
  OT_DNS_FLAG_UNSPECIFIED = 0,
  OT_DNS_FLAG_RECURSION_DESIRED = 1,
  OT_DNS_FLAG_NO_RECURSION = 2
}
تعداد
يمثّل النوع علامة "مطلوب معاودة التكرار" (RD) في otDnsQueryConfig.
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
}
تعداد
يمثّل النوع وضع دقة الخدمة في otDnsQueryConfig.
otDnsTransportProto{
  OT_DNS_TRANSPORT_UDP = 1,
  OT_DNS_TRANSPORT_TCP = 2
}
تعداد
يمثّل النوع بروتوكول نقل نظام أسماء النطاقات في otDnsQueryConfig.

تحديدات النوع

otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
يتم استدعاء المؤشر عند تلقّي استجابة نظام أسماء النطاقات لطلب بحث عن تحليل عنوان.
otDnsAddressResponse typedef
تمثيل مبهم لردّ على طلب بحث بنظام أسماء النطاقات لتحليل العنوان.
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
يتم استدعاء المؤشر عند تلقي استجابة نظام أسماء النطاقات (DNS) لطلب بحث (تعداد مثيل الخدمة).
otDnsBrowseResponse typedef
تمثيل مبهم لاستجابة لطلب بحث نظام أسماء النطاقات للتصفّح (تعداد مثيلات الخدمة).
otDnsQueryConfig typedef
يمثل هذا الخيار ضبط طلب بحث نظام أسماء النطاقات.
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
يتم استدعاء المؤشر عند تلقّي استجابة نظام أسماء النطاقات (DNS) لطلب تحليل مثيل خدمة.
otDnsServiceInfo typedef
يقدم معلومات لمثيل خدمة نظام أسماء النطاقات.
otDnsServiceResponse typedef
تمثيل مبهم لاستجابة لطلب بحث نظام أسماء نطاقات لتسوية مثيل خدمة.
otDnsTxtEntry typedef
struct otDnsTxtEntry
يمثل إدخال سجل TXT الذي يمثل زوج مفتاح/قيمة (RFC 6763 - القسم 6.3).
otDnsTxtEntryIterator typedef
يمثل تكرارًا لإدخالات سجل TXT (أزواج المفتاح/القيمة).

الدوال

otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
توفّر عنوان IPv6 مرتبطًا باستجابة نظام أسماء النطاقات لتحليل العنوان.
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
الحصول على اسم المضيف الكامل المرتبط باستجابة نظام أسماء النطاقات لتحليل العنوان.
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
للحصول على عنوان IPv6 المضيف من استجابة تصفُّح نظام أسماء النطاقات (تعداد مثيلات الخدمة).
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)
لإرسال استعلام تصفح DNS (تعداد مثيلات الخدمة) لاسم خدمة معينة.
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 (باتّباع التنسيق المحدَّد في RFC 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)
للحصول على عنوان IPv6 المضيف من استجابة تحليل مثيل خدمة نظام أسماء النطاقات.
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

يمثل إدخال سجل TXT الذي يمثل زوج مفتاح/قيمة (RFC 6763 - القسم 6.3).

otDnsTxtEntryIterator

يمثل تكرارًا لإدخالات سجل TXT (أزواج المفتاح/القيمة).

عمليات التعداد

otDnsNat64Mode

 otDnsNat64Mode

يمثّل النوع وضع NAT64 في otDnsQueryConfig.

يشير وضع 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

يمثّل النوع علامة "مطلوب معاودة التكرار" (RD) في otDnsQueryConfig.

أماكن إقامة
OT_DNS_FLAG_NO_RECURSION

يشير إلى أن خادم اسم نظام أسماء النطاقات لا يمكنه حل طلب البحث بشكل متكرر.

OT_DNS_FLAG_RECURSION_DESIRED

يشير إلى قدرة خادم اسم نظام أسماء النطاقات على حل طلب البحث بشكل متكرر.

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

يمثّل النوع بروتوكول نقل نظام أسماء النطاقات في otDnsQueryConfig.

لا يتوافق "OT_DNS_TRANSPORT_TCP" هذا إلّا عند تفعيل "OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE".

أماكن إقامة
OT_DNS_TRANSPORT_TCP

يجب إرسال استعلام DNS عبر بروتوكول UDP.

OT_DNS_TRANSPORT_UDP

لم يتم تحديد عملية نقل نظام أسماء النطاقات.

تحديدات النوع

otDnsAddressCallback

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

يتم استدعاء المؤشر عند تلقّي استجابة نظام أسماء النطاقات لطلب بحث عن تحليل عنوان.

في معاودة الاتصال هذه، يمكن للمستخدم استخدام دوال otDnsAddressResponseGet{Item}() مع مؤشر aResponse للحصول على مزيد من المعلومات عن الردّ.

لا يمكن استخدام مؤشر aResponse إلا في معاودة الاتصال هذه ولن يظل صالحًا بعد الرجوع من هذه الدالة، لذلك يجب ألا يحتفظ المستخدم بمؤشر aResponse لاستخدامه لاحقًا.

يمكن أن يحتوي aError على ما يلي:

التفاصيل
المَعلمات
[in] aError
نتيجة معاملة نظام أسماء النطاقات.
[in] aResponse
مؤشر إلى الاستجابة (يكون دائمًا غير فارغ).
[in] aContext
مؤشر إلى السياق الخاص بالتطبيق.

  • OT_ERROR_NONE تم تلقي رد بنجاح.
  • OT_ERROR_ABORT تم إلغاء معاملة DNS بواسطة الحزمة.
  • OT_ERROR_RESPONSE_SETTING لم يتم تلقي استجابة لنظام أسماء النطاقات خلال المهلة المحددة.

إذا رفض الخادم طلب تحليل العنوان، يتم ربط رمز الخطأ من الخادم على النحو التالي:

  • (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 بعض مجموعات RR التي يجب أن تكون موجودة، غير موجودة -> 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)

يتم استدعاء المؤشر عند تلقي استجابة نظام أسماء النطاقات (DNS) لطلب بحث (تعداد مثيل الخدمة).

في معاودة الاتصال هذه، يمكن للمستخدم استخدام دوال otDnsBrowseResponseGet{Item}() مع مؤشر aResponse للحصول على مزيد من المعلومات عن الردّ.

لا يمكن استخدام مؤشر aResponse إلا في معاودة الاتصال هذه ولن يظل صالحًا بعد الرجوع من هذه الدالة، لذلك يجب ألا يحتفظ المستخدم بمؤشر aResponse لاستخدامه لاحقًا.

للحصول على القائمة الكاملة للقيم المحتملة لـ aError، يُرجى الاطّلاع على otDnsAddressCallback().

التفاصيل
المَعلمات
[in] aError
نتيجة معاملة نظام أسماء النطاقات.
[in] aResponse
مؤشر إلى الاستجابة (يكون دائمًا غير فارغ).
[in] aContext
مؤشر إلى السياق الخاص بالتطبيق.

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

تمثيل مبهم لاستجابة لطلب بحث نظام أسماء النطاقات للتصفّح (تعداد مثيلات الخدمة).

يتم توفير مؤشرات لمثيل من هذا النوع من معاودة الاتصال otDnsBrowseCallback.

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

يمثل هذا الخيار ضبط طلب بحث نظام أسماء النطاقات.

يمكن ضبط أي حقل من حقول هذه البنية على صفر للإشارة إلى أنه لم يتم تحديده. يتم تحديد كيفية التعامل مع الحقول غير المحدّدة من خلال الدالة التي تستخدم مثيل otDnsQueryConfig.

otDnsServiceCallback

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

يتم استدعاء المؤشر عند تلقّي استجابة نظام أسماء النطاقات (DNS) لطلب تحليل مثيل خدمة.

في معاودة الاتصال هذه، يمكن للمستخدم استخدام دوال otDnsServiceResponseGet{Item}() مع مؤشر aResponse للحصول على مزيد من المعلومات عن الردّ.

لا يمكن استخدام مؤشر aResponse إلا في معاودة الاتصال هذه ولن يظل صالحًا بعد الرجوع من هذه الدالة، لذلك يجب ألا يحتفظ المستخدم بمؤشر aResponse لاستخدامه لاحقًا.

للحصول على القائمة الكاملة للقيم المحتملة لـ aError، يُرجى الاطّلاع على otDnsAddressCallback().

التفاصيل
المَعلمات
[in] aError
نتيجة معاملة نظام أسماء النطاقات.
[in] aResponse
مؤشر إلى الاستجابة (يكون دائمًا غير فارغ).
[in] aContext
مؤشر إلى السياق الخاص بالتطبيق.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

يقدم معلومات لمثيل خدمة نظام أسماء النطاقات.

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

تمثيل مبهم لاستجابة لطلب بحث نظام أسماء نطاقات لتسوية مثيل خدمة.

يتم توفير مؤشرات لمثيل من هذا النوع من معاودة الاتصال otDnsAddressCallback.

otDnsTxtEntry

struct otDnsTxtEntry otDnsTxtEntry

يمثل إدخال سجل TXT الذي يمثل زوج مفتاح/قيمة (RFC 6763 - القسم 6.3).

يجب أن تظل سلاسل التخزين المؤقتة المُشار إليها من خلال mKey وmValue كما هي بدون تغيير بعد تمرير مثيل من هذه البنية إلى OpenThread (كجزء من مثيل otSrpClientService).

يتم استخدام مصفوفة من إدخالات otDnsTxtEntry في otSrpClientService لتحديد سجلّ TXT الكامل (قائمة بالإدخالات).

otDnsTxtEntryIterator

struct otDnsTxtEntryIterator otDnsTxtEntryIterator

يمثل تكرارًا لإدخالات سجل TXT (أزواج المفتاح/القيمة).

حقول البيانات في هذه البنية مخصَّصة للاستخدام من قِبل نظام OpenThread الأساسي، ويجب ألّا يقرأها المتصل أو يغيرها.

الدوال

otDnsAddressResponseGetAddress

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

توفّر عنوان IPv6 مرتبطًا باستجابة نظام أسماء النطاقات لتحليل العنوان.

يجب الاستخدام من otDnsAddressCallback فقط.

قد يتضمن الرد سجلات عناوين IPv6 متعددة. يمكن استخدام aIndex للتكرار في قائمة العناوين. يحصل الفهرس صفر على العنوان الأول وهكذا. عند الوصول إلى نهاية القائمة، يتم عرض OT_ERROR_NOT_FOUND.

التفاصيل
المَعلمات
[in] aResponse
مؤشر إلى الإجابة.
[in] aIndex
فهرس سجلّ العناوين المطلوب استرداده
[out] aAddress
مؤشر إلى عنوان IPv6 لإخراج العنوان (يجب ألا يكون فارغًا).
[out] aTtl
مؤشر إلى uint32_t لإخراج مدة البقاء للعنوان. يمكن أن تكون فارغة إذا كان المتصل لا يريد الحصول على مدة البقاء (TTL).
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة العنوان بنجاح.
OT_ERROR_NOT_FOUND
ليس هناك سجل عناوين في aResponse في aIndex.
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
)

للحصول على عنوان IPv6 المضيف من استجابة تصفُّح نظام أسماء النطاقات (تعداد مثيلات الخدمة).

يجب الاستخدام من otDnsBrowseCallback فقط.

قد لا تتضمن الاستجابة أي سجلات لعناوين IPv6 أو أكثر. يمكن استخدام aIndex للتكرار في قائمة العناوين. يحصل الفهرس صفر على العنوان الأول وهكذا. عند الوصول إلى نهاية القائمة، يتم عرض OT_ERROR_NOT_FOUND.

التفاصيل
المَعلمات
[in] aResponse
مؤشر إلى الإجابة.
[in] aHostName
اسم المضيف للحصول على العنوان (يجب ألا يكون فارغًا).
[in] aIndex
فهرس سجلّ العناوين المطلوب استرداده
[out] aAddress
مؤشر إلى عنوان IPv6 لإخراج العنوان (يجب ألا يكون فارغًا).
[out] aTtl
مؤشر إلى uint32_t لإخراج مدة البقاء للعنوان. يمكن أن تكون فارغة إذا كان المتصل لا يريد الحصول على مدة البقاء (TTL).
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة العنوان بنجاح.
OT_ERROR_NOT_FOUND
لا يوجد سجل عنوان لـ aHostname في aResponse الساعة aIndex.
OT_ERROR_PARSE
تعذَّر تحليل السجلات في aResponse.

otDnsBrowseResponseGetServiceInfo

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

للحصول على معلومات لمثيل خدمة من استجابة تصفُّح نظام أسماء النطاقات (تعداد مثيلات الخدمة)

يجب الاستخدام من otDnsBrowseCallback فقط.

يمكن أن تتضمن استجابة نظام أسماء النطاقات للتصفح سجلات SRV وTXT وAAAA لمثيلات الخدمة التي تم تعدادها. هذا يجب أن يكون شرطًا وليس شرطًا، ولا يلزم تقديم الخوادم/أدوات التحليل لتقديم هذا. وتحاول هذه الدالة استرداد هذه المعلومات لمثيل خدمة معيّن عند توفرها.

  • في حال عدم العثور على سجلّ SRV مطابق في aResponse، يتم عرض OT_ERROR_NOT_FOUND. وفي هذه الحالة، لا تتم قراءة أي سجلّات إضافية (بدون TXT و/أو AAAA).
  • في حال العثور على سجلّ SRV مطابق في aResponse، يتم تعديل aServiceInfo ويتم عرض OT_ERROR_NONE.
  • إذا لم يتم العثور على أي سجلّ TXT مطابق في aResponse، سيتم ضبط mTxtDataSize في aServiceInfo على صفر.
  • في حال كان طول بيانات 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 usingotDnsBrowseResponseGetHostAddress()`.

التفاصيل
المَعلمات
[in] aResponse
مؤشر إلى الإجابة.
[in] aInstanceLabel
تسمية مثيل الخدمة (يجب ألا تكون فارغة).
[out] aServiceInfo
دالة ServiceInfo لإخراج معلومات مثيل الخدمة (يجب ألا تكون فارغة).
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة معلومات مثيل الخدمة. تم تحديث aServiceInfo.
OT_ERROR_NOT_FOUND
تعذر العثور على سجل SRV مطابق لـ aInstanceLabel.
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
)

لإرسال استعلام تصفح DNS (تعداد مثيلات الخدمة) لاسم خدمة معينة.

تتوفّر هذه الميزة عند تفعيل "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
لا يمكن إرسال الطلب لأنّ واجهة سلسلة المحادثات غير مُشغّلة.

otDnsClientResolveIp4Address

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

يتم إرسال طلب بحث نظام أسماء النطاقات لتحليل العنوان لسجلّات A (IPv4) لاسم مضيف معيّن.

يجب توفير هذا الخيار وتوفيره عند تفعيل "OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE".

عند تلقّي استجابة ناجحة، يتم عرض العناوين من aCallback على أنّها إصدارات مترجمة من عناوين IPv4 من بروتوكول NAT64 من خلال استجابة طلب البحث.

يمكن أن تكون قيمة 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
لا يمكن إرسال الطلب لأنّ واجهة سلسلة المحادثات غير مُشغّلة.

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 لمثيل الخدمة المحدد. يحدد الحقل mServiceMode في otDnsQueryConfig السجلات التي سيتم الاستعلام عنها (SRV فقط أو TXT فقط أو كل من SRV وTXT) وكيفية إجراء طلب البحث (معًا في نفس الرسالة، بشكل منفصل بالتوازي، أو في الوضع المحسّن، حيث سيجرب العميل في نفس الرسالة أولاً ثم بشكل منفصل في حالة إخفاقه في الحصول على استجابة).

يوفر سجل SRV معلومات عن منفذ الخدمة والأولوية والوزن إلى جانب اسم المضيف المرتبط بمثيل الخدمة. هذه الدالة "لا" تؤدي تحليل العنوان لاسم المضيف الذي تم اكتشافه من سجل SRV. قد يوفّر الخادم أو أداة الحلّ سجلّات AAAA/A لاسم المضيف في قسم "البيانات الإضافية" للردّ على طلب SRV/TXT، ويمكن استرداد هذه المعلومات باستخدام otDnsServiceResponseGetServiceInfo() في otDnsServiceCallback. يجب ألا يفترض مستخدمو واجهة برمجة التطبيقات هذه أن عنوان المضيف سيكون متاحًا دائمًا من 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 فارغ.

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 بقيمة غير فارغة، يمكن ترك بعض الحقول بدون تحديد (القيمة صفر). وبعد ذلك، يتم استبدال الحقول غير المحدّدة بالقيم من الإعدادات التلقائية. لا يمكن استخدام هذه الدالة مع mServiceMode في إعدادات نظام أسماء النطاقات التي تم ضبطها على OT_DNS_SERVICE_MODE_TXT (أي الاستعلام عن سجلّ TXT فقط) وسيتم عرض OT_ERROR_INVALID_ARGS.

يؤدي هذا الإجراء بشكل مشابه إلى otDnsClientResolveService() إرسال طلبات البحث لسجلات SRV وTXT. ومع ذلك، إذا لم يقدم الخادم/أداة الحل سجلات AAAA/A لاسم المضيف في الاستجابة لاستعلام SRV (في قسم البيانات الإضافية)، فسيتم إجراء تحليل اسم المضيف (إرسال استعلام AAAA) لاسم المضيف الذي تم اكتشافه من سجل SRV. يتم استدعاء معاودة الاتصال 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 فارغة، أو 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 بيانات شبكة Thread لإدخالات خدمة DNS/SRP لتحديد خادم SRP. يتم أيضًا ضبط عنوان خادم SRP المحدد كعنوان خادم نظام أسماء النطاقات في التهيئة التلقائية.

التفاصيل
المَعلمات
[in] aInstance
يشير هذا المصطلح إلى مؤشر لمثيل OpenThread.
[in] aConfig
مؤشر إلى إعدادات طلب البحث الجديدة لاستخدامها كإعداد تلقائي

otDnsEncodeTxtData

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

يؤدي إلى ترميز قائمة معيّنة من إدخالات سجلّ TXT (أزواج المفتاح/القيمة) في بيانات TXT (باتّباع التنسيق المحدَّد في RFC 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، سيتم عرض سلسلة المفتاح في mKey في aEntry. وإذا كان المفتاح أطول، سيتم ضبط mKey على "NULL" (فارغ)، وسيتم عرض سلسلة إدخال TXT المشفرة بالكامل في mValue وmValueLength.

التفاصيل
المَعلمات
[in] aIterator
مؤشر إلى المكرر (يجب ألا يكون فارغًا).
[out] aEntry
مؤشر يؤدي إلى بنية otDnsTxtEntry لإخراج الإدخال الذي يتم تحليله/القراءة (يجب ألا يكون فارغًا).
قيم الإرجاع
OT_ERROR_NONE
تم تحليل الإدخال التالي بنجاح. تم تحديث aEntry.
OT_ERROR_NOT_FOUND
ليس هناك المزيد من الإدخالات في بيانات TXT.
OT_ERROR_PARSE
بيانات TXT الواردة من aIterator غير صحيحة.

otDnsInitTxtEntryIterator

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

تهيئة تكرار سجل TXT.

يجب أن يظل مؤشر المخزن المؤقت aTxtData ومحتواه كما هو أثناء استخدام الكائن aIterator ويظل بدون تغيير.

التفاصيل
المَعلمات
[in] aIterator
مؤشر يشير إلى المكرّر للتهيئة (يجب ألا يكون فارغًا).
[in] aTxtData
مؤشر للمخزن المؤقت الذي يحتوي على بيانات TXT المشفرة.
[in] aTxtDataLength
طول (عدد وحدات بايت) aTxtData.

otDnsIsNameCompressionEnabled

bool otDnsIsNameCompressionEnabled(
  void
)

يشير إلى ما إذا كان وضع "ضغط اسم نظام أسماء النطاقات" مفعَّلاً أم لا.

هذه الميزة مخصّصة للاختبار فقط ولا تتوفّر عند تفعيل إعدادات OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

التفاصيل
المرتجعات
TRUE في حالة تمكين وضع "ضغط اسم نظام أسماء النطاقات"، وخطأ في الحالات الأخرى.

otDnsServiceResponseGetHostAddress

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

للحصول على عنوان IPv6 المضيف من استجابة تحليل مثيل خدمة نظام أسماء النطاقات.

يجب الاستخدام من otDnsServiceCallback فقط.

قد لا تتضمن الاستجابة أي سجلات لعناوين IPv6 أو أكثر. يمكن استخدام aIndex للتكرار في قائمة العناوين. يحصل الفهرس صفر على العنوان الأول وهكذا. عند الوصول إلى نهاية القائمة، يتم عرض OT_ERROR_NOT_FOUND.

التفاصيل
المَعلمات
[in] aResponse
مؤشر إلى الإجابة.
[in] aHostName
اسم المضيف للحصول على العنوان (يجب ألا يكون فارغًا).
[in] aIndex
فهرس سجلّ العناوين المطلوب استرداده
[out] aAddress
مؤشر إلى عنوان IPv6 لإخراج العنوان (يجب ألا يكون فارغًا).
[out] aTtl
مؤشر إلى uint32_t لإخراج مدة البقاء للعنوان. يمكن أن تكون فارغة إذا كان المتصل لا يريد الحصول على مدة البقاء (TTL).
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة العنوان بنجاح.
OT_ERROR_NOT_FOUND
لا يوجد سجل عنوان لـ aHostname في aResponse الساعة aIndex.
OT_ERROR_PARSE
تعذَّر تحليل السجلات في aResponse.

otDnsServiceResponseGetServiceInfo

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

الحصول على معلومات لمثيل خدمة من استجابة تحليل مثيل خدمة نظام أسماء النطاقات

يجب استخدامه فقط من خلال otDnsServiceCallback الذي يتم تشغيله من otDnsClientResolveService() أو otDnsClientResolveServiceAndHostAddress().

عند استخدام ذلك من استدعاء otDnsClientResolveService()، قد تتضمّن استجابة نظام أسماء النطاقات الواردة من الخادم أو أداة الحلّ سجلّات AAAA في قسم "البيانات الإضافية" لاسم المضيف المرتبط بمثيل الخدمة الذي تم حلّه. هذا "يجب" وليس من الضروري الالتزام به، وبالتالي لا يلزم تقديم هذا من قبل الخوادم/أدوات التحليل. تحاول هذه الدالة تحليل سجلات AAAA إذا تم تضمينها في الاستجابة. وفي حال عدم تضمينه، يتم ضبط mHostAddress على جميع الأصفار (عنوان غير محدّد). لحل عنوان المضيف أيضًا، يمكن للمستخدم استخدام دالة واجهة برمجة تطبيقات عميل نظام أسماء النطاقات otDnsClientResolveServiceAndHostAddress() التي ستنفِّذ دقة الخدمة متبوعة بطلب تحليل عنوان اسم المضيف (عندما لا يتم توفير سجلات AAAA بواسطة الخادم أو أداة الحلّ في استجابة طلب بحث SRV).

  • في حال العثور على سجلّ SRV مطابق في aResponse، يتم تعديل aServiceInfo.
  • في حال عدم العثور على سجلّ SRV مطابق، يتم عرض OT_ERROR_NOT_FOUND ما لم تستخدم إعدادات طلب البحث لهذا الطلب OT_DNS_SERVICE_MODE_TXT في mServiceMode (بمعنى أنّ الطلب كان مخصّصًا لسجلّ TXT فقط). في هذه الحالة، لا نزال نحاول تحليل سجلّ SRV من قسم الاستجابة للبيانات الإضافية (في حال تقديم الخادم المعلومات).
  • إذا لم يتم العثور على أي سجلّ TXT مطابق في aResponse، سيتم ضبط mTxtDataSize في aServiceInfo على صفر.
  • في حال كان طول بيانات 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 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
)

لتفعيل/إيقاف وضع "ضغط اسم نظام أسماء النطاقات".

يكون ضغط اسم نظام أسماء النطاقات مفعَّلاً بشكل تلقائي. عند الإيقاف، يتم إلحاق أسماء نظام أسماء النطاقات بأنّها كاملة وغير مضغوطة مطلقًا. وهذا ينطبق على وحدات DNS وSRP الخاصة بخادم OpenThread.

هذه الميزة مخصّصة للاختبار فقط ولا تتوفّر عند تفعيل إعدادات OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

تجدر الإشارة إلى أنّه في حال استخدام OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE، ينطبق هذا الوضع على جميع مثيلات OpenThread (أي أنّ استدعاء هذه الدالة يؤدي إلى تفعيل/إيقاف وضع الضغط على جميع مثيلات OpenThread).

التفاصيل
المَعلمات
[in] aEnabled
TRUE لتمكين وضع "ضغط اسم نظام أسماء النطاقات"، وعلى FALSE للإيقاف.

وحدات ماكرو

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 (RFC 6763 - القسم 6.4).

OT_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

الحد الأدنى لطول سلسلة مفتاح سجل TXT (RFC 6763 - القسم 6.4).

المراجِع

تنشأ المواضيع المرجعية لواجهة برمجة تطبيقات OpenThread من رمز المصدر المتاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في مستنداتنا، يمكنك الاطّلاع على المراجع.