DNS
تتضمن هذه الوحدة دوالًا تتحكم في اتصال نظام أسماء النطاقات.
ملخّص
لا تتوفر الدوال في هذه الوحدة إلا إذا تم تفعيل الميزة OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
.
التعدادات |
|
---|---|
otDnsNat64Mode{
|
تعداد يمثل النوع وضع NAT64 في otDnsQueryConfig . |
otDnsRecursionFlag{
|
تعداد يمثل النوع علامة "الرغبة المطلوبة" (RD) في otDnsQueryConfig . |
otDnsServiceMode{
|
تعداد يمثل النوع وضع درجة دقة الخدمة في otDnsQueryConfig . |
otDnsTransportProto{
|
تعداد يمثل النوع بروتوكول نقل نظام أسماء النطاقات في otDnsQueryConfig . |
أنواع المحددات |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
يتم استدعاء المؤشر عند تلقي استجابة لنظام أسماء النطاقات لطلب تحليل العنوان. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
تمثيل مبهم للردّ على طلب بحث لنظام أسماء النطاقات بدقة العنوان. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
يتم استدعاء المؤشر عند تلقّي استجابة لنظام أسماء النطاقات (DNS) لطلب بحث التصفّح (تعداد مثيلات الخدمة). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
تمثيل مبهم للردّ على طلب بحث في نظام أسماء النطاقات للتصفّح (تعداد الخدمة) |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
يمثل إعدادات طلبات بحث نظام أسماء النطاقات. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
يتم استدعاء المؤشر عند تلقّي استجابة لنظام أسماء النطاقات لطلب بحث مثيل الخدمة. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
يقدّم معلومات عن مثيل خدمة نظام أسماء النطاقات |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
تمثيل مبهم للردّ على طلب بحث لنظام أسماء النطاقات الذي تستند إليه الخدمة. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
يمثل إدخال سجلّ TXT يمثل زوجًا من المفاتيح/القيم (RFC 6763 - القسم 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
يمثّل مكرّرًا لإدخالات سجلّ TXT (أزواج المفتاح/القيمة). |
الدوال |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
الحصول على عنوان IPv6 المرتبط باستجابة نظام أسماء النطاقات لدقة العنوان.
|
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)
|
const otDnsQueryConfig *
للحصول على إعدادات الطلب التلقائية الحالية التي يستخدمها برنامج نظام أسماء النطاقات
|
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
ما يلي:
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
- 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()
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
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()
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
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
.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
الحصول على اسم المضيف الكامل المرتبط باستجابة نظام أسماء النطاقات لدقة العنوان.
يجب استخدام فقط من otDnsAddressCallback
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
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
.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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 using
otDnsbrowsingResponseGetHostAddress().
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsbrowsingResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
الحصول على مثيل خدمة مرتبط باستجابة تصفُّح نظام أسماء النطاقات (تعداد مثيل الخدمة)
يجب استخدام فقط من otDnsBrowseCallback
.
يمكن أن تتضمن الاستجابة العديد من سجلات مثيلات الخدمة. يمكن استخدام aIndex
وتكراره من خلال القائمة. ويقدّم الفهرس صفرًا للمرة الأولى. وعند الوصول إلى نهاية القائمة، يتم عرض OT_ERROR_NOT_FOUND
.
يُرجى العِلم أنّ هذه الدالة تحصل على تصنيف مثيل الخدمة وليس اسم مثيل الخدمة بالكامل، وهو على الشكل
.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsbrowsingResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
الحصول على اسم الخدمة المرتبط بتصفّح نظام أسماء النطاقات (تعداد مثيلات الخدمة)
يجب استخدام فقط من otDnsBrowseCallback
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
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
غير فارغ، يمكن ترك بعض الحقول بدون تحديد (القيمة صفر). وبعد ذلك، يتم استبدال الحقول غير المحدّدة بالقيم من الإعداد التلقائي.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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
لجميع خيارات الإعدادات ذات الصلة).
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
||
المرتجعات |
مؤشر للإعدادات التلقائية التي يستخدمها برنامج نظام أسماء النطاقات.
|
otDnsClientSolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
إرسال طلب بحث لنظام أسماء النطاقات الذي يتضمن درجة الدقة لسجلات AAAA (IPv6) لاسم مضيف معيّن.
يمكن أن تكون السمة aConfig
فارغة. في هذه الحالة، سيتم استخدام الإعدادات التلقائية (من otDnsClientGetDefaultConfig()
) كإعدادات لطلب البحث هذا. في خطأ aConfig
غير فارغ، يمكن ترك بعض الحقول بدون تحديد (القيمة صفر). وبعد ذلك، يتم استبدال الحقول غير المحدّدة بالقيم من الإعداد التلقائي.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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
غير فارغ، يمكن ترك بعض الحقول بدون تحديد (القيمة صفر). وبعد ذلك، يتم استبدال الحقول غير المحدّدة بالقيم من الإعداد التلقائي.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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()
.
التفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||
قيم الإرجاع |
|
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
عند تلقي ردود على جميع طلبات البحث (أي أنه تم إنهاء حل كل من الخدمة وعنوان المضيف).
التفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||
قيم الإرجاع |
|
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 المُختار كعنوان خادم نظام أسماء النطاقات في الإعدادات التلقائية.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
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
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
يؤدي هذا الإعداد إلى إعداد مكرّر سجلّ TXT.
يجب أن يستمر مؤشر مادّة التخزين المؤقت aTxtData
ومحتواه بدون تغيير أثناء استخدام العنصر aIterator
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
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
.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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 using
otDnsServiceResponseGetHostAddress().
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
الحصول على اسم مثيل الخدمة المرتبط باستجابة التحويل لمثيل نظام أسماء النطاقات
يجب استخدام فقط من otDnsServiceCallback
.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
otDnsSetNameضغطionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
تفعيل/إيقاف وضع "ضغط اسم نظام أسماء النطاقات"
يتم تفعيل ضغط اسم نظام أسماء النطاقات تلقائيًا. وعند إيقاف هذا الإعداد، يتم إلحاق أسماء نظام أسماء النطاقات بكاملها بدون ضغطها مطلقًا. وينطبق ذلك على وحدات عميل/نظام أسماء النطاقات (DNS) وبروتوكول SRP في OpenThread.
يُستخدم هذا الإعداد للاختبار فقط ويكون متاحًا عند تفعيل الإعداد OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
يُرجى العِلم أنّه في حال استخدام السياسة OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
، ينطبق هذا الوضع على جميع مثيلات OpenThread (أي أنّ طلب هذه الدالة يؤدي إلى تفعيل/إيقاف وضع الضغط على جميع مثيلات OpenThread).
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
وحدات ماكرو
الوقت الإضافي_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. للحصول على مزيد من المعلومات أو للمساهمة في المستندات، يمكنك الاطّلاع على المراجع.