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(*
يتم استدعاء المؤشر عند تلقّي استجابة لنظام أسماء النطاقات لطلب بحث مثيل الخدمة.
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)
إرسال طلب بحث تصفح نظام أسماء النطاقات (تعداد مثيلات الخدمة) لاسم خدمة معين.
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
لضبط إعدادات طلب البحث التلقائية في برنامج نظام أسماء النطاقات.
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 (أزواج المفتاح/القيمة).

التعدادات

وضع otDnsNat64

 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.

يُستخدم هذا الإعداد فقط أثناء التحويل باستخدام خدمة عميل نظام أسماء النطاقات 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

يجب إرسال طلب البحث لنظام أسماء النطاقات عبر بروتوكول 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
مؤشر إلى الردّ (دائمًا ما يكون غير NULL).
[in] aContext
مؤشر للسياق الخاص بالتطبيق.

  • OT_ERROR_NONE تم تلقّي ردّ بنجاح.
  • تم إلغاء عملية نظام أسماء النطاقات من قِبل OT_ERROR_ABORT.
  • OT_ERROR_RESPONSE_ {8/} لم يتم استلام استجابة لنظام أسماء النطاقات خلال المهلة.

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

  • (0) NOERROR Success (بدون خطأ خطأ) -> OT_ERROR_NONE)
  • (1) يتعذّر على خادم FORMERR تفسير ذلك بسبب خطأ في التنسيق -> OT_ERROR_PARSE
  • (2) واجه SERVFAIL Server عطلاً داخليًا -> 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 لا يوجد اسم للمنطقة -> OT_ERROR_PARSE
  • (20) BADNAME Bad name -> OT_ERROR_PARSE)
  • (21) خوارزمية BADALG غير صحيحة -> OT_ERROR_security
  • (22) BADTRUN Bad tاقتطاع كاملة -> OT_ERROR_PARSE
  • رموز الاستجابة الأخرى -> OT_ERROR_Failed

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

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

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

otDnsbrowsingCallback

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

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

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

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

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

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

otDnsbrowsingResponse

struct otDnsBrowseResponse otDnsBrowseResponse

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

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

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

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

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

otDnsServiceCallback

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

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

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

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

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

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

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

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

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

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

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

إدخال otDnsTxt

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) للعنوان. ويمكن أن يكون بقيمة NULL إذا لم يرغب المتصل في الحصول على 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
المخزن المؤقت لصفِّي حرف مخرج لإخراج اسم المضيف الكامل (MUST NOT be NULL).
[in] aNameBufferSize
حجم aNameBuffer.
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة اسم المضيف الكامل بنجاح.
OT_ERROR_NO_BUFS
لا يلائم الاسم الاسم aNameBuffer.

otDnsbrowsingResponseGetHostAddress

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

otDnsbrowsingResponseGetServiceInfo

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 usingotDnsbrowsingResponseGetHostAddress().

التفاصيل
المَعلمات
[in] aResponse
مؤشر للردّ.
[in] aInstanceLabel
تصنيف مثيل الخدمة (MUST NOT NOT NULL).
[out] aServiceInfo
ServiceInfo لإخراج معلومات مثيل الخدمة (يجب ألا تكون القيمة NULL).
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة معلومات مثيل الخدمة. تم تحديث aServiceInfo.
OT_ERROR_NOT_FOUND
تعذّر العثور على سجلّ SRV مطابق للسمة aInstanceLabel.
OT_ERROR_NO_BUFS
تعذَّر ملاءمة اسم المضيف و/أو بيانات TXT في المخزن المؤقت المحدد.
OT_ERROR_PARSE
تعذَّر تحليل السجلّات في aResponse.

otDnsbrowsingResponseGetServiceInstance

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
المخزن المؤقت لصفِّي حرف مخرج لإخراج تصنيف مثيل الخدمة (MUST NOT be NULL).
[in] aLabelBufferSize
حجم aLabelBuffer.
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة مثيل الخدمة بنجاح.
OT_ERROR_NO_BUFS
لا يلائم الاسم الاسم aNameBuffer.
OT_ERROR_NOT_FOUND
ما مِن سجلّ مثيل خدمة في aResponse في aIndex.
OT_ERROR_PARSE
تعذَّر تحليل السجلّات في aResponse.

otDnsbrowsingResponseGetServiceName

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

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

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

التفاصيل
المَعلمات
[in] aResponse
مؤشر للردّ.
[out] aNameBuffer
المخزن المؤقت لصفِّي حرف مخرج لإخراج اسم الخدمة (MUST NOT be NULL).
[in] aNameBufferSize
حجم aNameBuffer.
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة اسم الخدمة بنجاح.
OT_ERROR_NO_BUFS
لا يلائم الاسم الاسم aNameBuffer.

otDnsClientتصفّح

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

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

متاحة عند تفعيل OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE.

يمكن أن تكون السمة aConfig فارغة. في هذه الحالة، سيتم استخدام الإعدادات التلقائية (من otDnsClientGetDefaultConfig()) كإعدادات لطلب البحث هذا. في خطأ aConfig غير فارغ، يمكن ترك بعض الحقول بدون تحديد (القيمة صفر). وبعد ذلك، يتم استبدال الحقول غير المحدّدة بالقيم من الإعداد التلقائي.

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aServiceName
اسم الخدمة المطلوب البحث عنها (MUST NOT NULL).
[in] aCallback
مؤشر داعم يجب طلبه عند استقبال الاستجابة أو انتهاء المهلة
[in] aContext
مؤشر للمعلومات السياقية العشوائية.
[in] aConfig
مؤشر إلى ملف الإعداد المراد استخدامه لطلب البحث هذا.
قيم الإرجاع
OT_ERROR_NONE
تمّ إرسال طلب البحث بنجاح. سيتم استدعاء aCallback للإبلاغ عن الحالة.
OT_ERROR_NO_BUFS
الفترة الآمنة غير كافية لإعداد طلب البحث وإرساله.

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

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

عند بدء تشغيل حِزم OpenThread، يتم تحديد الإعداد التلقائي لطلب بحث نظام أسماء النطاقات من خلال مجموعة من خيارات ضبط السياسة OT، مثل OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS و_DEFAULT_SERVER_PORT و_DEFAULT_RESPONSE_TIMEOUT وما إلى ذلك (راجِع config/dns_client.h لجميع خيارات الإعدادات ذات الصلة).

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
المرتجعات
مؤشر للإعدادات التلقائية التي يستخدمها برنامج نظام أسماء النطاقات.

otDnsClientSolveAddress

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

إرسال طلب بحث لنظام أسماء النطاقات الذي يتضمن درجة الدقة لسجلات AAAA (IPv6) لاسم مضيف معيّن.

يمكن أن تكون السمة aConfig فارغة. في هذه الحالة، سيتم استخدام الإعدادات التلقائية (من 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.

otDnsClientSolveIp4العنوان

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

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

مطلوب وتكون متاحة عند تفعيل OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE.

عند تلقّي استجابة ناجحة، يتم عرض العناوين من aCallback كإصدارات لبروتوكول IPv64 لبروتوكول IPv6 المترجَمة من عنوان IPv4 من استجابة طلب البحث.

يمكن أن تكون السمة aConfig فارغة. في هذه الحالة، سيتم استخدام الإعدادات التلقائية (من 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.

otDnsClientSolveService

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 فارغة. في هذه الحالة، سيتم استخدام الإعدادات التلقائية (من 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 فارغ.

otDnsClientSolveServiceAndHostAddress

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 فارغة. في هذه الحالة، سيتم استخدام الإعدادات التلقائية (من 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 عبارة عن NULL أو aConfig غير صالحة.

otDnsClientSetDefaultConfig

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

لضبط إعدادات طلب البحث التلقائية في برنامج نظام أسماء النطاقات.

ملاحظة: سيستمر أي طلب بحث جارٍ في استخدام الإعداد الذي تم بدءه. سيتم استخدام الإعدادات التلقائية الجديدة لأي طلبات بحث أخرى لنظام أسماء النطاقات. يمكن أن تكون السمة aConfig فارغة. في هذه الحالة، سيتم ضبط الإعدادات التلقائية على الإعدادات التلقائية من خيارات ضبط السياسة OT 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
مؤشر إلى ضبط طلب البحث الجديد لاستخدامه كإعداد تلقائي.

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

يحلل بيانات TXT من مكرّر ويحصل على إدخال سجلّ TXT التالي (زوج مفتاح/قيمة).

يجب إعداد aIterator باستخدام otDnsInitTxtEntryIterator() قبل طلب هذه الدالة، ويجب أن يستمر المخزن المؤقت لبيانات TXT المستخدَم لإعداد المُكرِّر بدون تغيير. وبخلاف ذلك، لا يتم تحديد سلوك هذه الدالة.

إذا كان طول سلسلة المفتاح الذي تم تحليله أصغر من أو يساوي OT_DNS_TXT_KEY_MAX_LENGTH (الحد الأقصى المقترَح لطول المفتاح)، يتم عرض سلسلة المفتاح في mKey في aEntry. أما إذا كان المفتاح أطول، فيتم ضبط mKey على القيمة NULL وعرض سلسلة إدخال TXT المشفّرة بالكامل في mValue وmValueLength.

التفاصيل
المَعلمات
[in] aIterator
مؤشر للمكرر (MUST NOT NULL).
[out] aEntry
يشير المؤشر إلى بنية otDnsTxtEntry لإخراج الإدخال الذي تم تحليله/قراءة النص (يجب ألا تكون القيمة NULL).
قيم الإرجاع
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 (بايت)

otDnsIsName بإجراء ضغط مفعّل

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
)

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

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

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

التفاصيل
المَعلمات
[in] aResponse
مؤشر للردّ.
[in] aHostName
اسم المضيف للحصول على العنوان (MUST NOT NULL).
[in] aIndex
فهرس سجلّ العناوين المطلوب استرداده
[out] aAddress
مؤشر إلى عنوان IPv6 لإخراج العنوان (يجب ألا يكون فارغًا).
[out] aTtl
مؤشر إلى uint32_t لإخراج مدة البقاء (TTL) للعنوان. ويمكن أن يكون بقيمة NULL إذا لم يرغب المتصل في الحصول على 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 مطابق في 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 لإخراج معلومات مثيل الخدمة (يجب ألا تكون القيمة NULL).
قيم الإرجاع
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
المخزن المؤقت لصفِّي حرف مخرج لإخراج تصنيف مثيل الخدمة (MUST NOT be NULL).
[in] aLabelBufferSize
حجم aLabelBuffer.
[out] aNameBuffer
المخزن المؤقت لحرف ترميز لإخراج باقي اسم الخدمة (يمكن أن يكون NULL إذا لم يكن المستخدم مهتمًا بالحصول على الاسم).
[in] aNameBufferSize
حجم aNameBuffer.
قيم الإرجاع
OT_ERROR_NONE
تمت قراءة اسم الخدمة بنجاح.
OT_ERROR_NO_BUFS
لا يتطابق التصنيف أو الاسم مع المخزن المؤقت المحدد.

otDnsSetNameضغطionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

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

يتم تفعيل ضغط اسم نظام أسماء النطاقات تلقائيًا. وعند إيقاف هذا الإعداد، يتم إلحاق أسماء نظام أسماء النطاقات بكاملها بدون ضغطها مطلقًا. وينطبق ذلك على وحدات عميل/نظام أسماء النطاقات (DNS) وبروتوكول SRP في OpenThread.

يُستخدم هذا الإعداد للاختبار فقط ويكون متاحًا عند تفعيل الإعداد OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

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

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

وحدات ماكرو

الوقت الإضافي_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

الحد الأقصى لحجم سلسلة التصنيف (يجب تضمين حرف أبجدي فارغ في نهاية السلسلة)

الوقت الإضافي_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

الحد الأقصى لحجم سلسلة الاسم (يتضمّن حرفًا فارغًا في نهاية السلسلة)

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. للحصول على مزيد من المعلومات أو للمساهمة في المستندات، يمكنك الاطّلاع على المراجع.