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(*
يتم استدعاء المؤشر عند تلقّي استجابة نظام أسماء النطاقات (DNS) لطلب تحليل مثيل خدمة. |
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)
|
لإرسال استعلام تصفح DNS (تعداد مثيلات الخدمة) لاسم خدمة معينة.
|
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
لضبط إعدادات طلب البحث التلقائية على برنامج نظام أسماء النطاقات.
|
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
على ما يلي:
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
- 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()
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
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()
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
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
.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
الحصول على اسم المضيف الكامل المرتبط باستجابة نظام أسماء النطاقات لتحليل العنوان.
يجب الاستخدام من otDnsAddressCallback
فقط.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
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
.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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 using
otDnsBrowseResponseGetHostAddress()`.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
للحصول على مثيل خدمة مرتبط باستجابة تصفُّح نظام أسماء النطاقات (تعداد مثيلات الخدمة).
يجب الاستخدام من otDnsBrowseCallback
فقط.
قد تتضمن الاستجابة العديد من سجلّات مثيلات الخدمة. يمكن استخدام aIndex
للتكرار في القائمة. يعطي الفهرس صفر السجل الأول. عند الوصول إلى نهاية القائمة، يتم عرض OT_ERROR_NOT_FOUND
.
لاحظ أن هذه الدالة تحصل على تصنيف مثيل الخدمة وليس على اسم مثيل الخدمة الكامل الذي يكون بالصيغة
.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
للحصول على اسم الخدمة المرتبط باستجابة تصفُّح نظام أسماء النطاقات (تعداد مثيلات الخدمة).
يجب الاستخدام من otDnsBrowseCallback
فقط.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
لإرسال استعلام تصفح DNS (تعداد مثيلات الخدمة) لاسم خدمة معينة.
تتوفّر هذه الميزة عند تفعيل "OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
".
يمكن أن تكون قيمة aConfig
فارغة (NULL). في هذه الحالة، سيتم استخدام الإعداد التلقائي (من otDnsClientGetDefaultConfig()
) كإعدادات لطلب البحث هذا. في حقل aConfig
بقيمة غير فارغة، يمكن ترك بعض الحقول بدون تحديد (القيمة صفر). وبعد ذلك، يتم استبدال الحقول غير المحدّدة بالقيم من الإعدادات التلقائية.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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
للاطّلاع على جميع خيارات الضبط ذات الصلة).
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
||
المرتجعات |
مؤشر يشير إلى الإعدادات التلقائية الحالية التي يستخدمها برنامج نظام أسماء النطاقات.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
يتم إرسال طلب بحث نظام أسماء النطاقات لتحليل العنوان لسجلّات AAAA (IPv6) لاسم مضيف معيَّن.
يمكن أن تكون قيمة aConfig
فارغة (NULL). في هذه الحالة، سيتم استخدام الإعداد التلقائي (من otDnsClientGetDefaultConfig()
) كإعدادات لطلب البحث هذا. في حقل aConfig
بقيمة غير فارغة، يمكن ترك بعض الحقول بدون تحديد (القيمة صفر). وبعد ذلك، يتم استبدال الحقول غير المحدّدة بالقيم من الإعدادات التلقائية.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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
بقيمة غير فارغة، يمكن ترك بعض الحقول بدون تحديد (القيمة صفر). وبعد ذلك، يتم استبدال الحقول غير المحدّدة بالقيم من الإعدادات التلقائية.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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()
.
التفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||
قيم الإرجاع |
|
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
عند تلقي ردود لجميع طلبات البحث (أي الانتهاء من معالجة كلٍّ من عنوانَي الخدمة والمضيف).
التفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||
قيم الإرجاع |
|
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 المحدد كعنوان خادم نظام أسماء النطاقات في التهيئة التلقائية.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
يؤدي إلى ترميز قائمة معيّنة من إدخالات سجلّ TXT (أزواج المفتاح/القيمة) في بيانات TXT (باتّباع التنسيق المحدَّد في RFC 6763).
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
يحلّل بيانات TXT من المكرر ويحصل على إدخال سجل TXT التالي (زوج المفتاح/القيمة).
يجب إعداد aIterator
باستخدام otDnsInitTxtEntryIterator()
قبل استدعاء هذه الدالة، ويجب أن يستمر المخزن المؤقت لبيانات TXT المُستخدَم في إعداد المكرّر ويظل بدون تغيير. وبخلاف ذلك، يكون سلوك هذه الدالة غير معرَّف.
إذا كان طول سلسلة المفتاح الذي تم تحليله أصغر من أو يساوي OT_DNS_TXT_KEY_ITER_MAX_LENGTH
، سيتم عرض سلسلة المفتاح في mKey
في aEntry
. وإذا كان المفتاح أطول، سيتم ضبط mKey
على "NULL" (فارغ)، وسيتم عرض سلسلة إدخال TXT المشفرة بالكامل في mValue
وmValueLength
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
تهيئة تكرار سجل TXT.
يجب أن يظل مؤشر المخزن المؤقت aTxtData
ومحتواه كما هو أثناء استخدام الكائن aIterator
ويظل بدون تغيير.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
يشير إلى ما إذا كان وضع "ضغط اسم نظام أسماء النطاقات" مفعَّلاً أم لا.
هذه الميزة مخصّصة للاختبار فقط ولا تتوفّر عند تفعيل إعدادات 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
.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
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 using
otDnsServiceResponseGetHostAddress()`.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
للحصول على اسم مثيل الخدمة المرتبط باستجابة تحليل مثيل خدمة نظام أسماء النطاقات.
يجب الاستخدام من otDnsServiceCallback
فقط.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
لتفعيل/إيقاف وضع "ضغط اسم نظام أسماء النطاقات".
يكون ضغط اسم نظام أسماء النطاقات مفعَّلاً بشكل تلقائي. عند الإيقاف، يتم إلحاق أسماء نظام أسماء النطاقات بأنّها كاملة وغير مضغوطة مطلقًا. وهذا ينطبق على وحدات DNS وSRP الخاصة بخادم OpenThread.
هذه الميزة مخصّصة للاختبار فقط ولا تتوفّر عند تفعيل إعدادات OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
تجدر الإشارة إلى أنّه في حال استخدام OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
، ينطبق هذا الوضع على جميع مثيلات OpenThread (أي أنّ استدعاء هذه الدالة يؤدي إلى تفعيل/إيقاف وضع الضغط على جميع مثيلات OpenThread).
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
وحدات ماكرو
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. للحصول على مزيد من المعلومات أو للمساهمة في مستنداتنا، يمكنك الاطّلاع على المراجع.