نسبة الظهور في الوقت الفعلي (SRP)
تتضمن هذه الوحدة وظائف تتحكم في سلوك عميل SRP.
الملخّص
تشمل هذه الوحدة وظائف بروتوكول تسجيل الخدمة.
تشمل هذه الوحدة وظائف مخازن SRP العميل وتجميع الخدمة.
لا تتوفر الدوال في هذه الوحدة إلا في حالة تفعيل الميزة PHONEWORD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE.
التعدادات |
|
---|---|
anonymous enum{
|
تعداد |
anonymous enum{
|
تعداد |
otSrpClientItemState{
|
تعداد تحدِّد هذه القائمة حالة عنصر عميل SRP (معلومات الخدمة أو المضيف). |
otSrpServerAddressMode{
|
تعداد يمثل هذا العدد وضع الوضع الذي يستخدمه خادم SRP. |
otSrpServerState{
|
تعداد يمثل حالة خادم SRP. |
مواقد الخط |
|
---|---|
otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
|
مَعلمة typetypevoid(*
يحدّد نوع مؤشر الدالة هذا معاودة الاتصال التي يستخدمها برنامج SRP لإعلام المستخدم عند بدء تشغيله تلقائيًا أو إيقافه. |
otSrpClientBuffersServiceEntry
|
مَعلمة typetype تمثل هذه البنية إدخالاً لمجموعة خدمة عملاء SRP. |
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
|
مَعلمة typetypevoid(*
يحدّد نوع مؤشر الوظائف هذا معاودة الاتصال التي يستخدمها برنامج SRP لإعلام المستخدم بالتغييرات/الأحداث/الأخطاء. |
otSrpClientHostInfo
|
مَعلمة typetypestruct otSrpClientHostInfo
تمثل هذه البنية معلومات مضيف عميل SRP. |
otSrpClientService
|
مَعلمة typetypestruct otSrpClientService
تمثل هذه البنية خدمة عميل SRP. |
otSrpServerAddressMode
|
مَعلمة typetype يمثل هذا العدد وضع الوضع الذي يستخدمه خادم SRP. |
otSrpServerHost
|
مَعلمة typetypestruct otSrpServerHost
ويمثّل هذا النوع غير الشفاف مضيف خدمة SRP. |
otSrpServerLeaseConfig
|
مَعلمة typetypestruct otSrpServerLeaseConfig
تتضمن هذه البنية عمليات ضبط خادم SRP LEASE وKEY-LEASE. |
otSrpServerService
|
مَعلمة typetypestruct otSrpServerService
يمثل هذا النوع معتم خدمة SRP. |
otSrpServerServiceFlags
|
مَعلمة typetypeuint8_t
نوع علامة الخدمة للإشارة إلى الخدمات المطلوب تضمينها أو استبعادها عند البحث في قائمة خدمات SRP أو (تكرارها) |
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
|
مَعلمة typetypevoid(*
تتعامل هذه الدالة مع تحديثات خدمة SRP. |
otSrpServerServiceUpdateId
|
مَعلمة typetypeuint32_t
الرقم التعريفي لمعاملة تحديث خدمة SRP على خادم SRP. |
الدوال |
|
---|---|
otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
|
تضيف هذه الوظيفة خدمةً ليتم تسجيلها مع الخادم.
|
otSrpClientBuffersAllocateService(otInstance *aInstance)
|
تخصص هذه الدالة إدخال خدمة جديدًا من المجموعة.
|
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
|
void
توفّر هذه الدالة جميع إدخالات الخدمات التي تم تخصيصها سابقًا.
|
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
|
void
توفّر هذه الدالة إدخال خدمة مخصَّصًا سابقًا.
|
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
|
تحصل هذه الدالة على مصفوفة من إدخالات عنوان IPv6 لاستخدامها كقائمة عناوين مضيف عميل SRP.
|
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
|
char *
تحصل هذه الدالة على سلسلة المخزن المؤقت لاستخدامها لاسم مضيف عميل SRP.
|
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
char *
تحصل هذه الدالة على سلسلة المخزن المؤقت لاسم مثيل الخدمة من إدخال خدمة.
|
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
char *
تحصل هذه الدالة على السلسلة المؤقتة لاسم الخدمة من إدخال الخدمة.
|
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
uint8_t *
تحصل هذه الدالة على المخزن المؤقت لسجلّ TXT من إدخال خدمة.
|
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
|
const char **
تحصل هذه الدالة على المصفوفة لتصنيفات الأنواع الفرعية من إدخال الخدمة.
|
otSrpClientClearHostAndServices(otInstance *aInstance)
|
void
والهدف من هذه الدالة هو محو جميع معلومات المضيف وجميع الخدمات.
|
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
|
تعمل هذه الدالة على محو الخدمة، ما يؤدي إلى إزالتها على الفور من قائمة خدمات العملاء.
|
otSrpClientDisableAutoStartMode(otInstance *aInstance)
|
void
وتؤدي هذه الوظيفة إلى إيقاف وضع التشغيل التلقائي.
|
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
|
void
تتيح هذه الوظيفة تفعيل وضع البدء التلقائي.
|
otSrpClientGetDomainName(otInstance *aInstance)
|
const char *
تحصل هذه الدالة على اسم النطاق الذي يستخدمه برنامج SRP.
|
otSrpClientGetHostInfo(otInstance *aInstance)
|
const otSrpClientHostInfo *
تحصل هذه الدالة على معلومات المضيف.
|
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
|
uint32_t
تحصل هذه الدالة على الفاصل الزمني لتأجير المفاتيح المستخدم في طلبات تحديث SRP.
|
otSrpClientGetLeaseInterval(otInstance *aInstance)
|
uint32_t
تحصل هذه الدالة على الفاصل الزمني للتأجير المستخدم في طلبات تحديث SRP.
|
otSrpClientGetServerAddress(otInstance *aInstance)
|
const otSockAddr *
تحصل هذه الدالة على عنوان المقبس (عنوان IPv6 ورقم المنفذ) لخادم SRP الذي يستخدمه عميل SRP.
|
otSrpClientGetServices(otInstance *aInstance)
|
const otSrpClientService *
تحصل هذه الدالة على قائمة الخدمات التي يديرها العميل.
|
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
|
bool
تشير هذه الدالة إلى الحالة الحالية لوضع التشغيل التلقائي (مفعّلة أو غير مفعّلة).
|
otSrpClientIsRunning(otInstance *aInstance)
|
bool
تشير هذه الدالة إلى ما إذا كان عميل SRP قيد التشغيل أم لا.
|
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
|
bool
تشير هذه الطريقة إلى ما إذا كان وضع "تضمين سجلّ الخدمة" مفعّلاً أو موقوفًا.
|
otSrpClientItemStateToString(otSrpClientItemState aItemState)
|
const char *
تحوِّل هذه الدالة
otSrpClientItemState إلى سلسلة. |
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
|
تبدأ هذه الوظيفة عملية إزالة معلومات المضيف وجميع الخدمات.
|
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
|
تطلب هذه الدالة إلغاء تسجيل خدمة مع الخادم.
|
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
|
void
تضبط هذه الدالة رد الاتصال لإشعار المتصل بالأحداث/التغييرات من برنامج SRP.
|
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
|
تحدد هذه الدالة اسم النطاق لاستخدامه في برنامج SRP.
|
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
|
تعمل هذه الدالة على إعداد/تعديل قائمة عناوين IPv6 للمضيف.
|
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
|
تحدد هذه الدالة تصنيف اسم المضيف.
|
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
|
void
تحدد هذه الدالة الفاصل الزمني لتأجير المفاتيح المستخدم في طلبات تحديث SRP.
|
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
|
void
تحدد هذه الدالة الفاصل الزمني للتأجير المستخدم في طلبات تحديث SRP.
|
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
|
void
تتيح هذه الوظيفة تفعيل/إيقاف وضع "تضمين سجلّ الخدمة".
|
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
|
تبدأ هذه الدالة عملية عميل SRP.
|
otSrpClientStop(otInstance *aInstance)
|
void
توقف هذه الدالة تشغيل عملية عميل SRP.
|
otSrpServerGetAddressMode(otInstance *aInstance)
|
تعرض هذه الدالة وضع العنوان الذي يستخدمه خادم SRP.
|
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
|
uint8_t
تعرض هذه الدالة رقم التسلسل المستخدم مع وضع عنوان الإرسال.
|
otSrpServerGetDomain(otInstance *aInstance)
|
const char *
تعرض هذه الدالة النطاق المُصرّح به لخادم SRP.
|
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
|
void
تعرض هذه الدالة عمليات إعداد SRP LEASE وKEY-LEASE.
|
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
|
const otSrpServerHost *
تعرض هذه الدالة المضيف المُسجِّل التالي على خادم SRP.
|
otSrpServerGetState(otInstance *aInstance)
|
تعرض هذه الدالة حالة خادم SRP.
|
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
|
void
تشير هذه الدالة إلى نتيجة معالجة تحديث SRP لخادم SRP.
|
otSrpServerHostFindNextService(const otSrpServerHost *aHost, const otSrpServerService *aPrevService, otSrpServerServiceFlags aFlags, const char *aServiceName, const char *aInstanceName)
|
const otSrpServerService *
تبحث هذه الدالة عن خدمة المطابقة التالية على المضيف.
|
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
|
const otIp6Address *
تعرض هذه الدالة عناوين المضيف المحدّد.
|
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
|
const char *
تعرض هذه الدالة الاسم الكامل للمضيف.
|
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
|
const otSrpServerService *
تعرض هذه الدالة الخدمة التالية (باستثناء أي خدمات من نوع فرعي) للمضيف المحدد.
|
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
|
bool
تخبرك هذه الدالة ما إذا تم حذف مضيف خدمة SRP.
|
otSrpServerServiceGetFullName(const otSrpServerService *aService)
|
const char *
تعرض هذه الدالة اسم النسخة الكاملة للخدمة من الخدمة.
|
otSrpServerServiceGetHost(const otSrpServerService *aService)
|
const otSrpServerHost *
تعرض هذه الدالة المضيف الذي يتوفّر به مثيل الخدمة.
|
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
|
const char *
تعرض هذه الدالة اسم النسخة الكاملة للخدمة من الخدمة.
|
otSrpServerServiceGetPort(const otSrpServerService *aService)
|
uint16_t
تعرض هذه الدالة منفذ نسخة الخدمة.
|
otSrpServerServiceGetPriority(const otSrpServerService *aService)
|
uint16_t
تعرض هذه الدالة أولوية مثال الخدمة.
|
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
|
const char *
تعرض هذه الدالة اسم الخدمة الكامل للخدمة.
|
otSrpServerServiceGetServiceSubTypeLabel(const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize)
|
تحصل هذه الدالة على تصنيف النوع الفرعي من اسم الخدمة.
|
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
|
const uint8_t *
تعرض هذه الدالة بيانات سجلّ TXT لمثيل الخدمة.
|
otSrpServerServiceGetWeight(const otSrpServerService *aService)
|
uint16_t
تعرض هذه الدالة وزن مثيل الخدمة.
|
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
|
bool
تشير هذه الدالة إلى ما إذا تم حذف خدمة SRP أم لا.
|
otSrpServerServiceIsSubType(const otSrpServerService *aService)
|
bool
تشير هذه الدالة إلى ما إذا كانت خدمة SRP من النوع الفرعي أم لا.
|
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
|
تحدد هذه الدالة وضع العنوان لكي يستخدمه خادم SRP.
|
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
|
تحدّد هذه الدالة رقم التسلسل المستخدَم في وضع عنوان الإرسال.
|
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
|
تحدد هذه الدالة النطاق على خادم SRP.
|
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
تعمل هذه الدالة على تفعيل/إيقاف خادم SRP.
|
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
|
توجِّه هذه الدالة عمليات ضبط خادم SRP LEASE وKEY-LEASE.
|
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
|
void
توجِّه هذه الدالة معالج تحديثات خدمة SRP على خادم SRP.
|
التشريعات |
|
---|---|
otSrpClientBuffersServiceEntry |
تمثل هذه البنية إدخالاً لمجموعة خدمة عملاء SRP. |
otSrpClientHostInfo |
تمثل هذه البنية معلومات مضيف عميل SRP. |
otSrpClientService |
تمثل هذه البنية خدمة عميل SRP. |
otSrpServerLeaseConfig |
تتضمن هذه البنية عمليات ضبط خادم SRP LEASE وKEY-LEASE. |
التعدادات
عدد مجهول
anonymous enum
المنشآت الفندقية | |
---|---|
OT_SRP_SERVER_SERVICE_FLAG_ACTIVE
|
تتضمن خدمات نشطة (غير محذوفة). |
OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE
|
تضمين الخدمات الأساسية (ليس نوعًا فرعيًا). |
OT_SRP_SERVER_SERVICE_FLAG_DELETED
|
تتضمن الخدمات المحذوفة. |
OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE
|
ضمِّن خدمات من النوع الفرعي. |
عدد مجهول
anonymous enum
المنشآت الفندقية | |
---|---|
OT_SRP_SERVER_FLAGS_ANY_SERVICE
|
يعرّف هذا الثابت مجموعة |
OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE
|
يُعرّف هذا الثابت مجموعة |
OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE
|
يُعرّف هذا الثابت تركيبة |
OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY
|
يُعرِّف هذا الثابت مجموعة |
OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY
|
يعرّف هذا الثابت مجموعة |
otSrpClientItemState
otSrpClientItemState
تحدِّد هذه القائمة حالة عنصر عميل SRP (معلومات الخدمة أو المضيف).
المنشآت الفندقية | |
---|---|
OT_SRP_CLIENT_ITEM_STATE_ADDING
|
تتم إضافة/تسجيل العنصر. |
OT_SRP_CLIENT_ITEM_STATE_REFRESHING
|
تتم إعادة تحميل العنصر. |
OT_SRP_CLIENT_ITEM_STATE_REGISTERED
|
تم تسجيل العنصر في الخادم. |
OT_SRP_CLIENT_ITEM_STATE_REMOVED
|
تمت إزالة السلعة. |
OT_SRP_CLIENT_ITEM_STATE_REMOVING
|
جارٍ إزالة العنصر. |
OT_SRP_CLIENT_ITEM_STATE_TO_ADD
|
العنصر الذي ستتم إضافته/تسجيله |
OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH
|
ستتم إعادة تحميل العنصر (عليك إعادة التسجيل لتجديد العقد). |
OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE
|
العنصر الذي ستتم إزالته. |
otSrpServerAddressMode
otSrpServerAddressMode
يمثل هذا العدد وضع الوضع الذي يستخدمه خادم SRP.
يحدّد "وضع العنوان" كيفية تحديد العنوان ورقم المنفذ بواسطة خادم SRP وكيفية نشر هذه المعلومات في بيانات شبكة سلاسل المحادثات.
المنشآت الفندقية | |
---|---|
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST
|
وضع عنوان أي بث. |
OT_SRP_SERVER_ADDRESS_MODE_UNICAST
|
وضع عنوان Unicast. |
otSrpServerState
otSrpServerState
يمثل حالة خادم SRP.
المنشآت الفندقية | |
---|---|
OT_SRP_SERVER_STATE_DISABLED
|
تم إيقاف خادم SRP. |
OT_SRP_SERVER_STATE_RUNNING
|
خادم SRP قيد التشغيل. |
OT_SRP_SERVER_STATE_STOPPED
|
تم إيقاف خادم SRP. |
مواقد الخط
otSrpClientAutoStartCallback
void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
يحدّد نوع مؤشر الوظائف هذا معاودة الاتصال التي يستخدمها برنامج SRP لإعلام المستخدم عند بدء تشغيله تلقائيًا أو إيقافه.
لا يُستخدم إلا عند تفعيل ميزة التشغيل التلقائي OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
يتم استدعاء معاودة الاتصال هذه عند تفعيل وضع التشغيل التلقائي ويكون برنامج SRP إما قيد التشغيل أو الإيقاف تلقائيًا.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
otSrpClientBuffersServiceEntry
struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry
تمثل هذه البنية إدخالاً لمجموعة خدمة عملاء SRP.
otSrpClientCallback
void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
يحدّد نوع مؤشر الوظائف هذا معاودة الاتصال التي يستخدمها برنامج SRP لإعلام المستخدم بالتغييرات/الأحداث/الأخطاء.
يتم استدعاء معاودة الاتصال هذه عند تسجيل تحديث ناجح (أي إضافة/إزالة معلومات المضيف و/أو بعض الخدمات) باستخدام خادم SRP، أو في حال حدوث خطأ أو خطأ (على سبيل المثال، رفض الخادم تحديثًا). تنتهي مهلة الطلب أو العميل في انتظار الرد وغير ذلك).
وفي حال إعادة تسجيل تحديث بنجاح، سيتم معلمة aError
OT_ERROR_NONE
وتكون معلومات المضيف وقائمة الخدمات الكاملة هي معلَمات إدخال لمعاودة الاتصال. يُرجى العِلم بأنّ كل من معلومات وخدمات المضيف تتتبّع حالتها الخاصة في متغيّر عضو mState
المقابل لبنية البيانات ذات الصلة (الولاية التي تشير إلى ما إذا كان المضيف/معلومات/الخدمة مسجّلة أو تمت إزالتها أو لا تزال تتم إضافتها/إزالتها، وما إلى ذلك).
يتم تمرير قائمة الخدمات المُزالة كقائمة مرتبطة خاصة بها aRemovedServices
في معاودة الاتصال. تجدر الإشارة إلى أنه عند استدعاء معاودة الاتصال، يتم تنفيذ برنامج SRP (تنفيذ Openthread) مع مثيلات الخدمة المُدرجة فيaRemovedServices
ولم يعد يتتبّع/يخزنها (أي إذا طلبنا من معاودة الاتصالotSrpClientGetServices()
الخدمات التي تمت إزالتها لن تكون موجودة في القائمة التي يتم إرجاعها). يساعد تقديم قائمة منفصلة من الخدمات التي تمت إزالتها في معاودة الاتصال على الإشارة إلى العناصر التي تمت إزالتها الآن والسماح للمستخدم بإعادة المطالبة/إعادة استخدام الحالات.
إذا رفض الخادم طلب تحديث SRP، يتم ربط رمز استجابة نظام أسماء النطاقات (RFC 2136) بالأخطاء التالية:
- (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 بعض RRset التي كان يجب أن تكون موجودة، غير موجودة -> OT_ERROR_NOT_FOUND
- (9) خدمة NOTAUTH غير موثوقة للمنطقة -> OT_ERROR_ Security
- (10) NOTZONE A اسم غير موجود في المنطقة -> OT_ERROR_PARSE
- (20) اسم غير صالح لـ BADNAME -> OT_ERROR_PARSE
- (21) خوارزمية BADALG غير صالحة -> OT_ERROR_Security
- (22) BADTRUN Bad اقتطاع -> OT_ERROR_PARSE
- رموز الاستجابة الأخرى -> OT_ERROR_FAILED
قد تحدث الأخطاء التالية أيضًا:
- OT_ERROR_RESPONSE_TIMEOUT : انتهت مهلة انتظار الرد من الخادم (سيواصل العميل إعادة المحاولة).
- OT_ERROR_INVALID_ARGS : بنية الخدمة المقدمة غير صالحة (مثل اسم الخدمة غير الصحيح أو
otDnsTxtEntry
). - OT_ERROR_NO_BUFS : المخزن المؤقت غير كافٍ لإعداد رسالة التحديث أو إرسالها.
تجدر الإشارة إلى أنه في حالة حدوث أي فشل، يواصل العميل العملية، أي يستعد و (يعيد) إرسال رسالة تحديث SRP إلى الخادم، بعد بعض الفاصل الزمني للانتظار. يبدأ الفاصل الزمني لإعادة المحاولة من الحد الأدنى للقيمة، وتتم زيادته من خلال عامل النمو مع كل إخفاق حتى الحد الأقصى للقيمة (يُرجى الاطّلاع على معلمة الإعداد OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL
والمعلمات ذات الصلة للحصول على المزيد من التفاصيل).
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
otSrpClientHostInfo
struct otSrpClientHostInfo otSrpClientHostInfo
تمثل هذه البنية معلومات مضيف عميل SRP.
otSrpClientService
struct otSrpClientService otSrpClientService
تمثل هذه البنية خدمة عميل SRP.
يجب أن تظل القيم في هذه البنية، بما في ذلك مخازن السلسلة للأسماء وإدخالات سجل TXT، ثابتة وثابتة بعد تمرير مثيل هذه البنية إلى Openthread من otSrpClientAddService()
أو otSrpClientRemoveService()
.
otSrpServerAddressMode
enum otSrpServerAddressMode otSrpServerAddressMode
يمثل هذا العدد وضع الوضع الذي يستخدمه خادم SRP.
يحدّد "وضع العنوان" كيفية تحديد العنوان ورقم المنفذ بواسطة خادم SRP وكيفية نشر هذه المعلومات في بيانات شبكة سلاسل المحادثات.
otSrpServerLeaseConfig
struct otSrpServerLeaseConfig otSrpServerLeaseConfig
تتضمن هذه البنية عمليات ضبط خادم SRP LEASE وKEY-LEASE.
otSrpServerServiceFlags
uint8_t otSrpServerServiceFlags
نوع علامة الخدمة للإشارة إلى الخدمات المطلوب تضمينها أو استبعادها عند البحث في قائمة خدمات SRP أو (تكرارها)
هذه مجموعة من علامات البت. يتم تعريف علامات البت الخاصة في التعداد العددي OT_SRP_SERVER_FLAG_*
.
otSrpServerServiceUpdateHandler
void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
تتعامل هذه الدالة مع تحديثات خدمة SRP.
يُطلق على هذه الوظيفة اسم خادم SRP لإعلام أنه يتم تحديث مضيف SRP وربما خدمات SRP. من المهم ألا يتم الالتزام بتحديثات SRP حتى تعرض المعالج النتيجة من خلال استدعاء otSrpServerHandleServiceUpdateResult أو تنتهي المهلة بعد aTimeout
.
يجب على مراقب خدمة SRP دائمًا استدعاء otSrpServerHandleServiceUpdateResult برمز الخطأ OT_ERROR_NONE مباشرةً بعد استلام أحداث التحديث.
قد يُجري معالج أكثر عمومية عمليات تحقق على مضيف/خدمات SRP ويرفض تحديثات SRP في حالة فشل أي تحقق. على سبيل المثال، يجب على الخادم الوكيل للإعلانات الإعلان عن المضيف والخدمات (أو إزالته) على رابط قادر على البث المتعدد وعرض رمز خطأ محدّد في حال حدوث أي إخفاق.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult
otSrpServerServiceUpdateId
uint32_t otSrpServerServiceUpdateId
الرقم التعريفي لمعاملة تحديث خدمة SRP على خادم SRP.
الدوال
otSrpClientAddService
otError otSrpClientAddService( otInstance *aInstance, otSrpClientService *aService )
تضيف هذه الوظيفة خدمةً ليتم تسجيلها مع الخادم.
بعد إجراء استدعاء ناجح لهذه الدالة، سيتم استدعاء otSrpClientCallback
للإبلاغ عن حالة إضافة/تسجيل الخدمة باستخدام خادم SRP.
يجب أن يظل المثال otSrpClientService
الذي يتم الإشارة إليه من قِبل aService
ساريًا بدون تغيير، بعد الرجوع من هذه الدالة (باستخدام OT_ERROR_NONE
). ستحفظ Openthread المؤشر على مثيل الخدمة.
لم يعد يتم تتبّع مثيل otSrpClientService
من خلال Openthread ولا يمكن استرداده إلا عند
- وتتم إزالته بشكل صريح من خلال استدعاء إلى
otSrpClientRemoveService()
أو تتم إزالته إلى جانب خدمات أخرى من خلال استدعاءotSrpClientRemoveHostAndServices() and only after the
otSrpClientCallback` يشير إلى أنه تمت إزالة الخدمة. أو - استدعاء إلى
otSrpClientClearHostAndServices()
يزيل المضيف وجميع الخدمات ذات الصلة على الفور.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||
قيم الإرجاع |
|
otSrpClientBuffersAllocateService
otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService( otInstance *aInstance )
تخصص هذه الدالة إدخال خدمة جديدًا من المجموعة.
سيتم إعداد النسخة الافتراضية من إدخال الخدمة المعروضة كما يلي:
- سيشير
mService.mName
إلى المخزن المؤقت للسلسلة المخصصة الذي يمكن استرداده باستخدام الدالةotSrpClientBuffersGetServiceEntryServiceNameString()
. - سيشير
mService.mInstanceName
إلى المخزن المؤقت للسلسلة المخصصة الذي يمكن استرداده باستخدام الدالةotSrpClientBuffersGetServiceEntryInstanceNameString()
. - يشير
mService.mSubTypeLabels
إلى مصفوفة تم عرضها منotSrpClientBuffersGetSubTypeLabelsArray()
. - سيشير
mService.mTxtEntries
إلىmTxtEntry
. - سيتم ضبط
mService.mNumTxtEntries
على قيمة واحدة. - يتم ضبط الحقول الأخرى في
mService
(المنفذ والأولوية والوزن) على صفر. - تم ضبط
mTxtEntry.mKey
على "فارغ" (يتم التعامل مع القيمة على أنها مُشفَّرة من قبل). - سيشير
mTxtEntry.mValue
إلى مخزن مؤقت مخصص يمكن استرداده باستخدام الدالةotSrpClientBuffersGetServiceEntryTxtBuffer()
. - تم ضبط
mTxtEntry.mValueLength
على صفر. - يتم محو جميع البيانات المخزّنة مؤقتًا والمصفوفات ذات الصلة إلى كل الصفر.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشر لإدخال الخدمة المخصص حديثًا أو فارغ إذا لم يتوفر إدخال آخر في المجموعة.
|
otSrpClientBuffersFreeAllServices
void otSrpClientBuffersFreeAllServices( otInstance *aInstance )
توفّر هذه الدالة جميع إدخالات الخدمات التي تم تخصيصها سابقًا.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
otSrpClientBuffersFreeService
void otSrpClientBuffersFreeService( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService )
توفّر هذه الدالة إدخال خدمة مخصَّصًا سابقًا.
يجب أن يكون قد تم تخصيص aService
في السابق باستخدام otSrpClientBuffersAllocateService()
ولم يتم إخلاؤه بعد. ويكون سلوك هذه الدالة غير محدد.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
otSrpClientBuffersGetHostAddressesArray
otIp6Address * otSrpClientBuffersGetHostAddressesArray( otInstance *aInstance, uint8_t *aArrayLength )
تحصل هذه الدالة على مصفوفة من إدخالات عنوان IPv6 لاستخدامها كقائمة عناوين مضيف عميل SRP.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
مؤشر إلى مصفوفة من إدخالات
otIp6Address (يتم عرض عدد الإدخالات في aArrayLength ). |
otSrpClientBuffersGetHostNameString
char * otSrpClientBuffersGetHostNameString( otInstance *aInstance, uint16_t *aSize )
تحصل هذه الدالة على سلسلة المخزن المؤقت لاستخدامها لاسم مضيف عميل SRP.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
إشارة إلى الحرف المخزن مؤقتًا لاستخدامها في اسم مضيف عميل SRP.
|
otSrpClientBuffersGetServiceEntryInstanceNameString
char * otSrpClientBuffersGetServiceEntryInstanceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
تحصل هذه الدالة على سلسلة المخزن المؤقت لاسم مثيل الخدمة من إدخال خدمة.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
مؤشر إلى سلسلة التخزين المؤقت.
|
otSrpClientBuffersGetServiceEntryServiceNameString
char * otSrpClientBuffersGetServiceEntryServiceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
تحصل هذه الدالة على السلسلة المؤقتة لاسم الخدمة من إدخال الخدمة.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
مؤشر إلى سلسلة التخزين المؤقت.
|
otSrpClientBuffersGetServiceEntryTxtBuffer
uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
تحصل هذه الدالة على المخزن المؤقت لسجلّ TXT من إدخال خدمة.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
مؤشر إلى المخزن المؤقت.
|
otSrpClientBuffersGetSubTypeLabelsArray
const char ** otSrpClientBuffersGetSubTypeLabelsArray( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength )
تحصل هذه الدالة على المصفوفة لتصنيفات الأنواع الفرعية من إدخال الخدمة.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
مؤشر إلى المصفوفة
|
otSrpClientClearHostAndServices
void otSrpClientClearHostAndServices( otInstance *aInstance )
والهدف من هذه الدالة هو محو جميع معلومات المضيف وجميع الخدمات.
وبخلاف otSrpClientRemoveHostAndServices()
التي ترسل رسالة تحديث إلى الخادم لإزالة جميع المعلومات، تعمل هذه الوظيفة على محو جميع المعلومات فورًا بدون أي تفاعل مع الخادم.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
otSrpClientClearService
otError otSrpClientClearService( otInstance *aInstance, otSrpClientService *aService )
تعمل هذه الدالة على محو الخدمة، ما يؤدي إلى إزالتها على الفور من قائمة خدمات العملاء.
وبخلاف otSrpClientRemoveService()
التي ترسل رسالة تحديث إلى الخادم لإزالة الخدمة، ستمحو هذه الدالة الخدمة من قائمة خدمات العميل بدون أي تفاعل مع الخادم. عند استدعاء ناجح لهذه الدالة، لن يتم استدعاء otSrpClientCallback
ويمكن استرداد إدخال aService
وإعادة استخدامه من قِبل المتصل فورًا.
يمكن استخدام هذه الدالة مع استدعاء لاحق إلى otSrpClientAddService()
(يُحتمل أن تتم إعادة استخدام إدخال aService
نفسه مع اسم الخدمة نفسه ومثيلات منها) لتعديل بعض المعلمات في خدمة حالية.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
قيم الإرجاع |
|
otSrpClientDisableAutoStartMode
void otSrpClientDisableAutoStartMode( otInstance *aInstance )
وتؤدي هذه الوظيفة إلى إيقاف وضع التشغيل التلقائي.
ولا يتوفر هذا إلا عند تفعيل ميزة التشغيل التلقائي OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
لن يؤدي إيقاف وضع البدء التلقائي إلى إيقاف العميل إذا كان قيد التشغيل فعلاً، ولكن توقف العميل عن مراقبة بيانات شبكة سلاسل المحادثات للتحقق من أن خادم SRP المحدّد لا يزال موجودًا فيه.
ملاحظة: سيؤدي الاتصال برقم otSrpClientStop()
إلى إيقاف وضع التشغيل التلقائي أيضًا.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
otSrpClientEnableAutoStartMode
void otSrpClientEnableAutoStartMode( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext )
تتيح هذه الوظيفة تفعيل وضع البدء التلقائي.
ولا يتوفر هذا إلا عند تفعيل ميزة التشغيل التلقائي OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
يحدِّد خيار الإعداد OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE
وضع التشغيل التلقائي التلقائي (سواء كان مفعَّلاً أو موقوفًا في بداية OT Stack).
عندما يتم تفعيل التشغيل التلقائي، يراقب عميل SRP بيانات سلسلة محادثات الشبكة لإدخالات خادم خادم SRP ويشغّل العميل ويوقفه تلقائيًا عندما يتم اكتشاف خادم SRP.
إذا تم العثور على عدة خوادم SRP، سيتم اختيار خادم عشوائي. إذا لم يعد يتم اكتشاف خادم SRP المحدّد (لم يعد موجودًا في بيانات شبكة سلاسل المحادثات)، سيتم إيقاف برنامج SRP ثم يمكن أن ينتقل إلى خادم SRP آخر (إن وجد).
عندما يبدأ عميل SRP بشكل صريح من خلال استدعاء ناجح إلى otSrpClientStart()
، سيستمر استخدام عنوان خادم SRP في otSrpClientStart()
بغض النظر عن حالة وضع التشغيل التلقائي وما إذا تم اكتشاف عنوان خادم SRP نفسه. أم لا في بيانات شبكة سلاسل المحادثات. في هذه الحالة، سيؤدي طلب otSrpClientStop()
صريح فقط إلى إيقاف البرنامج.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
otSrpClientGetIDENTIFIER
const char * otSrpClientGetDomainName( otInstance *aInstance )
تحصل هذه الدالة على اسم النطاق الذي يستخدمه برنامج SRP.
تتطلب هذه الدالة تفعيل OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
.
إذا لم يتم ضبط اسم النطاق، فسيتم استخدام "default.service.arpa".
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
سلسلة اسم النطاق.
|
otSrpClientGetHostInfo
const otSrpClientHostInfo * otSrpClientGetHostInfo( otInstance *aInstance )
تحصل هذه الدالة على معلومات المضيف.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشر لاستضافة بنية المعلومات.
|
otSrpClientGetKeyLeaseInterval
uint32_t otSrpClientGetKeyLeaseInterval( otInstance *aInstance )
تحصل هذه الدالة على الفاصل الزمني لتأجير المفاتيح المستخدم في طلبات تحديث SRP.
يُرجى العلم بأنّ هذه هي مدة الاستخدام التي طلبها عميل SRP. قد يختار الخادم قبول فاصل زمني مختلف للتأجير.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
الفاصل الزمني لتأجير المفاتيح (بالثواني).
|
otSrpClientGetLeaseInterval
uint32_t otSrpClientGetLeaseInterval( otInstance *aInstance )
تحصل هذه الدالة على الفاصل الزمني للتأجير المستخدم في طلبات تحديث SRP.
يُرجى العلم بأنّ هذه هي مدة الاستخدام التي طلبها عميل SRP. قد يختار الخادم قبول فترة تأجير مختلفة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
الفاصل الزمني للتأجير (بالثواني).
|
otSrpClientGetServerAddress
const otSockAddr * otSrpClientGetServerAddress( otInstance *aInstance )
تحصل هذه الدالة على عنوان المقبس (عنوان IPv6 ورقم المنفذ) لخادم SRP الذي يستخدمه عميل SRP.
في حال عدم تشغيل العميل، يكون العنوان غير مُحدَّد (كل الصفر) بدون رقم منفذ.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشر إلى عنوان مقبس خادم SRP (يكون دائمًا غير فارغ).
|
otSrpClientGetServices
const otSrpClientService * otSrpClientGetServices( otInstance *aInstance )
تحصل هذه الدالة على قائمة الخدمات التي يديرها العميل.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشر إلى رأس القائمة المرتبطة لجميع الخدمات أو فارغ إذا كانت القائمة فارغة.
|
otSrpClientIsAutoStartModeEnabled
bool otSrpClientIsAutoStartModeEnabled( otInstance *aInstance )
تشير هذه الدالة إلى الحالة الحالية لوضع التشغيل التلقائي (مفعّلة أو غير مفعّلة).
ولا يتوفر هذا إلا عند تفعيل ميزة التشغيل التلقائي OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
صواب إذا كان وضع التشغيل التلقائي مفعّلاً، أو خطأ بخلاف ذلك.
|
otSrpClientisقيد التشغيل
bool otSrpClientIsRunning( otInstance *aInstance )
تشير هذه الدالة إلى ما إذا كان عميل SRP قيد التشغيل أم لا.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
صواب إذا كان برنامج SRP قيد التشغيل، أو خطأ، في الحالات الأخرى.
|
otSrpClientIsServiceKeyRecordEnabled
bool otSrpClientIsServiceKeyRecordEnabled( otInstance *aInstance )
تشير هذه الطريقة إلى ما إذا كان وضع "تضمين سجلّ الخدمة" مفعّلاً أو موقوفًا.
تتوفّر هذه الدالة عند تفعيل إعداد OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
صواب إذا كان وضع "تضمين سجلّ الخدمة" مفعّلاً، على FALSE.
|
otSrpClientItemStateToString
const char * otSrpClientItemStateToString( otSrpClientItemState aItemState )
تحوِّل هذه الدالة otSrpClientItemState
إلى سلسلة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
تمثّل هذه السمة سلسلة
aItemState . |
otSrpClientRemoveHostAndServices
otError otSrpClientRemoveHostAndServices( otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer )
تبدأ هذه الوظيفة عملية إزالة معلومات المضيف وجميع الخدمات.
بعد الرجوع من هذه الدالة، سيتم استدعاء otSrpClientCallback
للإبلاغ عن حالة طلب الإزالة باستخدام خادم SRP.
إذا كانت معلومات المضيف ستتم إزالتها نهائيًا من الخادم، يجب ضبط aRemoveKeyLease
على true
، ما يؤدي إلى إزالة مفتاح التأجير المرتبط بالمضيف على الخادم. وبخلاف ذلك، يتم الاحتفاظ بسجلّ تأجير المفاتيح كما في السابق، ما يضمن أنّ الخادم يحتفظ باسم المضيف المحجوز في الوقت الذي يتمكَّن فيه العميل مرة أخرى من تقديم خدماته وتسجيلها.
يحدّد aSendUnregToServer
السلوك عندما لا تكون معلومات المضيف مسجّلة حتى الآن مع الخادم. في حال ضبط aSendUnregToServer
على false
(القيمة التلقائية/المتوقعة)، سيزيل عميل SRP فورًا معلومات وخدمات المضيف بدون إرسال رسالة تحديث إلى الخادم (لن تكون هناك حاجة إلى تحديث الخادم إذا لم يكن هناك أي شيء). مسجّلة فيه). إذا تم ضبط aSendUnregToServer
على true
، سيرسل برنامج SRP رسالة تحديث إلى الخادم. تجدر الإشارة إلى أنه إذا تم تسجيل معلومات المضيف، لا يهم قيمة aSendUnregToServer
وسيرسل برنامج SRP دائمًا رسالة تحديث إلى الخادم يطلب إزالة جميع المعلومات.
عندما يكون aSendUnregToServer
مفيدًا في إعادة ضبط الجهاز أو إعادة تشغيله، قد يحتاج المتصل إلى إزالة أي خدمات مسجّلة من قبل من الخادم. في هذه الحالة، يمكن للمتصل otSrpClientSetHostName()
، ثم طلب otSrpClientRemoveHostAndServices()
من خلال aSendUnregToServer
كـ true
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||
قيم الإرجاع |
|
otSrpClientRemoveService
otError otSrpClientRemoveService( otInstance *aInstance, otSrpClientService *aService )
تطلب هذه الدالة إلغاء تسجيل خدمة مع الخادم.
بعد إجراء استدعاء ناجح لهذه الدالة، سيتم استدعاء otSrpClientCallback
للإبلاغ عن حالة طلب الإزالة باستخدام خادم SRP.
يجب أن يظل المثال otSrpClientService
الذي يتم الإشارة إليه من قِبل aService
ساريًا بدون تغيير، بعد الرجوع من هذه الدالة (باستخدام OT_ERROR_NONE
). ستحتفظ OpenString بمثيل الخدمة أثناء عملية الإزالة. فقط بعد استدعاء otSrpClientCallback
، ما يشير إلى أنه تمت إزالة مثيل الخدمة من قائمة خدمات عملاء SRP ويمكن إعادة استخدامه/إعادة استخدامه.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
قيم الإرجاع |
|
otSrpClientSetCallback
void otSrpClientSetCallback( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext )
تضبط هذه الدالة رد الاتصال لإشعار المتصل بالأحداث/التغييرات من برنامج SRP.
يسمح عميل SRP بتسجيل استدعاء واحد. لذا، ستحل الاستدعاءات المتتالية لهذه الدالة محل أي من وظائف معاودة الاتصال التي تم إعدادها سابقًا.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
otSrpClientSetEnterprise
otError otSrpClientSetDomainName( otInstance *aInstance, const char *aName )
تحدد هذه الدالة اسم النطاق لاستخدامه في برنامج SRP.
تتطلب هذه الدالة تفعيل OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
.
إذا لم يتم ضبط القيمة "default.service.arpa"، سيتم استخدامها.
"يجب" أن يستمر التخزين المؤقت لسلسلة الاسم الذي يشير إليه aName
بدون أي تغيير وأن يظل بدون تغيير بعد الرجوع من هذه الدالة. ستحتفظ Openسلسلة المؤشر بسلسلة البيانات.
يمكن إعداد اسم النطاق قبل بدء البرنامج أو بعد بدئه ولكن قبل تسجيل معلومات المضيف في الخادم (يجب أن تكون معلومات المضيف إما في STATE_TO_ADD
أو STATE_TO_REMOVE
).
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
قيم الإرجاع |
|
otSrpClientSetHostAddresses
otError otSrpClientSetHostAddresses( otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses )
تعمل هذه الدالة على إعداد/تعديل قائمة عناوين IPv6 للمضيف.
يمكن ضبط/تغيير عناوين IPv6 المضيفة قبل بدء برنامج SRP أو أثناء تشغيله (مثل إضافة/إزالة عنوان مضيف مسجّل سابقًا أو تغييره)، إلا إذا كانت معلومات المضيف قيد الإزالة (يتعامل العميل مع طلب إزالة من طلب سابق الاتصال بـ otSrpClientRemoveHostAndServices()
واستضافة المعلومات التي لا تزال في حالة STATE_TO_REMOVE
أو STATE_REMOVING
.
يجب أن يظل مصفوفة عنوان IPv6 المُشار إليها من قِبل aIp6Addresses
مستمرة بدون تغيير بعد الرجوع من هذه الدالة (باستخدام OT_ERROR_NONE
). ستحفظ OpenThread المؤشر إلى الصفيف.
بعد إجراء استدعاء ناجح لهذه الدالة، سيتم استدعاء otSrpClientCallback
للإبلاغ عن حالة تسجيل العنوان في خادم SRP.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||
قيم الإرجاع |
|
otSrpClientSetHostName
otError otSrpClientSetHostName( otInstance *aInstance, const char *aName )
تحدد هذه الدالة تصنيف اسم المضيف.
بعد إجراء استدعاء ناجح لهذه الدالة، سيتم استدعاء otSrpClientCallback
للإبلاغ عن حالة تسجيل معلومات المضيف باستخدام خادم SRP.
"يجب" أن يستمر التخزين المؤقت لسلسلة الاسم الذي يشير إليه aName
بدون أي تغيير وأن يظل بدون تغيير بعد الرجوع من هذه الدالة. ستحتفظ Openسلسلة المؤشر بسلسلة البيانات.
يمكن ضبط اسم المضيف قبل بدء العميل أو بعد بدئه ولكن قبل تسجيل معلومات المضيف في الخادم (يجب أن تكون معلومات المضيف إما في STATE_TO_ADD
أو STATE_REMOVED
).
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||
قيم الإرجاع |
|
otSrpClientSetKeyLeaseInterval
void otSrpClientSetKeyLeaseInterval( otInstance *aInstance, uint32_t aInterval )
تحدد هذه الدالة الفاصل الزمني لتأجير المفاتيح المستخدم في طلبات تحديث SRP.
لا يؤثّر تغيير الفاصل الزمني للتأجير في الفاصل الزمني للتأجير المقبول للخدمات/المضيف المسجَّل من قبل. ويؤثر ذلك فقط في أي رسائل مستقبلية لتحديث SRP (مثل إضافة خدمات جديدة و/أو إعادة تحميل الخدمات الحالية).
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
otSrpClientSetLeaseInterval
void otSrpClientSetLeaseInterval( otInstance *aInstance, uint32_t aInterval )
تحدد هذه الدالة الفاصل الزمني للتأجير المستخدم في طلبات تحديث SRP.
لا يؤثر تغيير الفاصل الزمني للتأجير في الفاصل الزمني المقبول للتأجير للخدمات/المضيف/المعلومات المسجّلة من قبل. ويؤثر ذلك فقط في أي رسائل خاصة بتحديث SRP في المستقبل (أي إضافة خدمات جديدة و/أو إعادة تحميل الخدمات الحالية).
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
otSrpClientSetServiceKeyRecordEnabled
void otSrpClientSetServiceKeyRecordEnabled( otInstance *aInstance, bool aEnabled )
تتيح هذه الوظيفة تفعيل/إيقاف وضع "تضمين سجلّ الخدمة".
عند التفعيل، سيضم برنامج SRP سجل KEY في إرشادات وصف الخدمة في رسائل تحديث SRP التي يرسلها.
تتوفّر هذه الدالة عند تفعيل إعداد OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
otSrpClientStart
otError otSrpClientStart( otInstance *aInstance, const otSockAddr *aServerSockAddr )
تبدأ هذه الدالة عملية عميل SRP.
سيعدّ عميل SRP رسالة "تحديث SRP" ويرسلها إلى خادم SRP بعد استيفاء جميع الشروط التالية:
- بدأ عميل SRP - وتم استدعاء
otSrpClientStart()
. - تم ضبط اسم المضيف - تم استدعاء
otSrpClientSetHostName()
. - تم ضبط عنوان IPv6 واحد على الأقل - وتم استدعاء
otSrpClientSetHostName()
. - تمت إضافة خدمة واحدة على الأقل، وتُسمى
otSrpClientAddService()
.
ولا يهم الترتيب الذي تسمى به هذه الدوال. عند استيفاء جميع الشروط، سينتظر برنامج SRP وقتًا قصيرًا قبل إعداد رسالة "تحديث SRP" وإرساله إلى الخادم. يتيح هذا التأخير للمستخدم إمكانية إضافة خدمات و/أو عناوين IPv6 متعددة قبل إرسال أول رسالة تحديث SRP (التأكد من إرسال تحديث SRP واحد يحتوي على جميع المعلومات). يحدد الإعداد OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY
الفاصل الزمني للتأخير.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||
قيم الإرجاع |
|
otSrpClientStop
void otSrpClientStop( otInstance *aInstance )
توقف هذه الدالة تشغيل عملية عميل SRP.
توقف هذه الدالة أي تفاعلات إضافية مع خادم SRP. وتجدر الإشارة إلى أن ذلك لا يؤدي إلى إزالة معلومات المضيف و/أو قائمة الخدمات أو محوها. ويضع علامة على جميع الخدمات لإضافتها/إزالتها مرة أخرى بمجرد بدء العميل (إعادة التشغيل).
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
otSrpServerGetAddressMode
otSrpServerAddressMode otSrpServerGetAddressMode( otInstance *aInstance )
تعرض هذه الدالة وضع العنوان الذي يستخدمه خادم SRP.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
وضع عنوان خادم SRP.
|
otSrpServerGetGetcastModeStringNumber
uint8_t otSrpServerGetAnycastModeSequenceNumber( otInstance *aInstance )
تعرض هذه الدالة رقم التسلسل المستخدم مع وضع عنوان الإرسال.
يتم تضمين الرقم التسلسلي في الإدخال "DNS/SRP Service Anycast" (عنوان نظام أسماء النطاقات/خدمة SRP) الذي تم نشره في بيانات الشبكة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
رقم تسلسل ancast
|
otSrpServerGetDomain
const char * otSrpServerGetDomain( otInstance *aInstance )
تعرض هذه الدالة النطاق المُصرّح به لخادم SRP.
إذا لم يتم ضبط النطاق من قِبل SetDomain، "default.service.arpa." سيتم إرجاعه. يتم دائمًا إلحاق نقطة لاحقة حتى إذا تم ضبط النطاق بدونها.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشر إلى سلسلة النطاق المرتبطة بالنقطة.
|
otSrpServerGetLeaseConfig
void otSrpServerGetLeaseConfig( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig )
تعرض هذه الدالة عمليات إعداد خادم SRP LEASE وKEY-LEASE.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
otSrpServerGetNextHost
const otSrpServerHost * otSrpServerGetNextHost( otInstance *aInstance, const otSrpServerHost *aHost )
تعرض هذه الدالة المضيف المُسجِّل التالي على خادم SRP.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
يشير إلى المضيف المسجل. فارغ، إذا تعذّر العثور على أي مضيف آخر.
|
otSrpServerGetState
otSrpServerState otSrpServerGetState( otInstance *aInstance )
تعرض هذه الدالة حالة خادم SRP.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
الحالة الحالية لخادم SRP.
|
otSrpServerHandleServiceUpdateالنتيجة
void otSrpServerHandleServiceUpdateResult( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError )
تشير هذه الدالة إلى نتيجة معالجة تحديث SRP لخادم SRP.
يجب أن يستدعي معالج تحديث الخدمة هذه الدالة لإرجاع نتيجة معالجة تحديث SRP.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
otSrpServerHostNextService
const otSrpServerService * otSrpServerHostFindNextService( const otSrpServerHost *aHost, const otSrpServerService *aPrevService, otSrpServerServiceFlags aFlags, const char *aServiceName, const char *aInstanceName )
تبحث هذه الدالة عن خدمة المطابقة التالية على المضيف.
يتيح الجمع بين العلامات وأسماء الخدمة والمثيلات تكرار القائمة الكاملة للخدمات و/أو مجموعة فرعية منها تتوافق مع شروط معينة، أو العثور على خدمة محددة.
لإدخال تعديلات على جميع خدمات المضيف: service = otSrpServerHostNextService(host, service, OT_SRP_SERVER_FLAGS_ANY_SERVICE, null, null);
للإعلان عبر الخدمات الأساسية فقط (استبعاد الأنواع الفرعية): service = otSrpServerHostNextService(host, service, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, null, null);
وتكرار أنواع فرعية من اسم مثال معيّن instanceName
: service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY, null, instanceName);
للعثور على خدمة معينة باسم الخدمة serviceName
واسم مثيل الخدمة instanceName
: service = otSrpServerHostNextService(host, null, OT_SRP_SERVER_FLAGS_ANY_SERVICE, serviceName, instanceName)
للعثور على خدمة النوع الأساسي باسم مثيل خدمة معيّن instanceName
: الخدمة = otSrpServerHostNextService(host, null, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, null, instanceName);
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||||
طلبات الإرجاع |
مؤشر إلى الخدمة المطابقة التالية أو فارغ إذا لم يتم العثور على خدمة متطابقة.
|
otSrpServerHostGetAddresses
const otIp6Address * otSrpServerHostGetAddresses( const otSrpServerHost *aHost, uint8_t *aAddressesNum )
تعرض هذه الدالة عناوين المضيف المحدّد.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
مؤشر إلى مصفوفة عنوان IPv6.
|
otSrpServerHostGetFullName
const char * otSrpServerHostGetFullName( const otSrpServerHost *aHost )
تعرض هذه الدالة الاسم الكامل للمضيف.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشّر يشير إلى سلسلة اسم المضيف التي لم يتمّ إنهاؤها.
|
otSrpServerHostGetService
const otSrpServerService * otSrpServerHostGetNextService( const otSrpServerHost *aHost, const otSrpServerService *aService )
تعرض هذه الدالة الخدمة التالية (باستثناء أي خدمات من نوع فرعي) للمضيف المحدد.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
مؤشر للخدمة التالية أو فارغ إذا لم تكن هناك خدمات أخرى.
|
otSrpServerHostIsDeleted
bool otSrpServerHostIsDeleted( const otSrpServerHost *aHost )
تخبرك هذه الدالة ما إذا تم حذف مضيف خدمة SRP.
يمكن حذف مضيف خدمة SRP ولكن يحتفظ باسمه للاستخدامات المستقبلية. في هذه الحالة، لن تتم إزالة مثيل المضيف من سجلّات SRP/قاعدة بيانات المسجّلين.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
TRUE إذا تم حذف المضيف، أو FALSE إذا لم يتم حذفها.
|
otSrpServerServiceGetFullName
const char * otSrpServerServiceGetFullName( const otSrpServerService *aService )
تعرض هذه الدالة اسم النسخة الكاملة للخدمة من الخدمة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشر إلى سلسلة اسم النسخة الافتراضية للخدمة التي تم إنهاؤها.
|
otSrpServerServiceGetHost
const otSrpServerHost * otSrpServerServiceGetHost( const otSrpServerService *aService )
تعرض هذه الدالة المضيف الذي يتوفّر به مثيل الخدمة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
يشير إلى مثيل المضيف.
|
otSrpServerServiceGetInstanceName
const char * otSrpServerServiceGetInstanceName( const otSrpServerService *aService )
تعرض هذه الدالة اسم النسخة الكاملة للخدمة من الخدمة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشر إلى سلسلة اسم النسخة الافتراضية للخدمة التي تم إنهاؤها.
|
otSrpServerServiceGetPort
uint16_t otSrpServerServiceGetPort( const otSrpServerService *aService )
تعرض هذه الدالة منفذ نسخة الخدمة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
منفذ الخدمة.
|
otSrpServerServiceGetPriority
uint16_t otSrpServerServiceGetPriority( const otSrpServerService *aService )
تعرض هذه الدالة أولوية مثال الخدمة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
أولوية الخدمة.
|
otSrpServerServiceGetServiceName
const char * otSrpServerServiceGetServiceName( const otSrpServerService *aService )
تعرض هذه الدالة اسم الخدمة الكامل للخدمة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
مؤشّر يؤدي إلى سلسلة اسم الخدمة التي تم إنهاؤها.
|
otSrpServerServiceGetServiceSubTypeLabel
otError otSrpServerServiceGetServiceSubTypeLabel( const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize )
تحصل هذه الدالة على تصنيف النوع الفرعي من اسم الخدمة.
وتُستخدَم هذه الدالة عندما تكون السمة aService
نوعًا فرعيًا، أي otSrpServerServiceIsSubType()
للخدمة تعرض TRUE. إذا لم تكن نوعًا فرعيًا، تعرض هذه الدالة OT_ERROR_INVALID_ARGS
.
يتبع اسم الخدمة الكامل للخدمة الفرعية نوع "
إلى المخزن المؤقت aLabel
.
من المضمون أن يتمّ إنهاء الحقل aLabel
دائمًا بعد إرجاع السلع حتى في حال تعذّر إتمام العملية.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||
قيم الإرجاع |
|
otSrpServerServiceGetTxtData
const uint8_t * otSrpServerServiceGetTxtData( const otSrpServerService *aService, uint16_t *aDataLength )
تعرض هذه الدالة بيانات سجلّ TXT لمثيل الخدمة.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
طلبات الإرجاع |
مؤشر إلى المخزن المؤقت يحتوي على بيانات سجلّ TXT (يتم عرض طول بيانات TXT باللغة
aDataLength ). |
otSrpServerServiceGetweight
uint16_t otSrpServerServiceGetWeight( const otSrpServerService *aService )
تعرض هذه الدالة وزن مثيل الخدمة.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
وزن الخدمة.
|
otSrpServerServiceIsDeleted
bool otSrpServerServiceIsDeleted( const otSrpServerService *aService )
تشير هذه الدالة إلى ما إذا تم حذف خدمة SRP أم لا.
يمكن حذف خدمة SRP ولكن تحتفظ باسمها للاستخدامات المستقبلية. في هذه الحالة، لن تتم إزالة مثيل الخدمة من سجلّ خادم SRP. ومن المضمون أن يتم حذف جميع الخدمات في حال حذف المضيف.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
صواب إذا تم حذف الخدمة، أو خطأ إذا لم يتم حذفها.
|
otSrpServerServiceIsSubType
bool otSrpServerServiceIsSubType( const otSrpServerService *aService )
تشير هذه الدالة إلى ما إذا كانت خدمة SRP من النوع الفرعي أم لا.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
طلبات الإرجاع |
True إذا كانت الخدمة من نوع فرعي، أو FALSE إذا لم تكن كذلك.
|
otSrpServerSetAddressMode
otError otSrpServerSetAddressMode( otInstance *aInstance, otSrpServerAddressMode aMode )
تحدد هذه الدالة وضع العنوان لكي يستخدمه خادم SRP.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
قيم الإرجاع |
|
otSrpServerSetAnycastModeStringNumber
otError otSrpServerSetAnycastModeSequenceNumber( otInstance *aInstance, uint8_t aSequenceNumber )
تحدّد هذه الدالة رقم التسلسل المستخدَم في وضع عنوان الإرسال.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
قيم الإرجاع |
|
otSrpServerSetDomain
otError otSrpServerSetDomain( otInstance *aInstance, const char *aDomain )
تحدد هذه الدالة النطاق على خادم SRP.
سيتم إلحاق نقطة لاحقة بـ aDomain
إذا لم تكن موجودة. يجب استدعاء هذه الدالة فقط قبل تفعيل خادم SRP.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||
قيم الإرجاع |
|
otSrpServerSetEnabledEnabled
void otSrpServerSetEnabled( otInstance *aInstance, bool aEnabled )
تعمل هذه الدالة على تفعيل/إيقاف خادم SRP.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
otSrpServerSetLeaseConfig
otError otSrpServerSetLeaseConfig( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig )
توجِّه هذه الدالة عمليات ضبط خادم SRP LEASE وKEY-LEASE.
عند طلب وقت من غير الصفر من عميل، سيتم تحديد القيمة الممنوحة في النطاق [aMinLease, MaxMaxEase]; وسيتم منح مفتاح KEY-LEASE غير صفر في النطاق [aMinKeyLease, AMaxKeyLease]. بقيمة صفرية أو لـ KEY-LEASE، سيتم منح الصفر.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
قيم الإرجاع |
|
otSrpServerSetServiceUpdateHandler
void otSrpServerSetServiceUpdateHandler( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext )
توجِّه هذه الدالة معالج تحديثات خدمة SRP على خادم SRP.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
المراجع
تنشأ مواضيع واجهة برمجة التطبيقات المرجعية لـ OpenThread من رمز المصدر، المتوفر على GitHub. للاطّلاع على مزيد من المعلومات أو للمساهمة في مستنداتنا، يُرجى الرجوع إلى المراجع.