SRP

Этот модуль включает функции, управляющие поведением клиента SRP.

Резюме

Этот модуль включает в себя функции протокола регистрации услуг.

Этот модуль включает функции для клиентских буферов SRP и пула служб.

Функции в этом модуле доступны, только если включена функция OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE.

Перечисления

anonymous enum {
OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE = 1 << 0,
OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE = 1 << 1,
OT_SRP_SERVER_SERVICE_FLAG_ACTIVE = 1 << 2,
OT_SRP_SERVER_SERVICE_FLAG_DELETED = 1 << 3
}
перечислить
anonymous enum {
OT_SRP_SERVER_FLAGS_ANY_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY = (OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE),
OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE)
}
перечислить
otSrpClientItemState {
OT_SRP_CLIENT_ITEM_STATE_TO_ADD ,
OT_SRP_CLIENT_ITEM_STATE_ADDING ,
OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH ,
OT_SRP_CLIENT_ITEM_STATE_REFRESHING ,
OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE ,
OT_SRP_CLIENT_ITEM_STATE_REMOVING ,
OT_SRP_CLIENT_ITEM_STATE_REGISTERED ,
OT_SRP_CLIENT_ITEM_STATE_REMOVED
}
перечислить
Это перечисление указывает состояние элемента клиента SRP (информация о службе или хосте).
otSrpServerAddressMode {
OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
перечислить
Это перечисление представляет режим адреса, используемый сервером SRP.
otSrpServerState {
OT_SRP_SERVER_STATE_DISABLED = 0,
OT_SRP_SERVER_STATE_RUNNING = 1,
OT_SRP_SERVER_STATE_STOPPED = 2
}
перечислить
Представляет состояние сервера SRP.

Typedefs

otSrpClientAutoStartCallback )(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
Этот тип указателя функции определяет обратный вызов, используемый SRP-клиентом для уведомления пользователя, когда он запускается или останавливается автоматически.
otSrpClientBuffersServiceEntry typedef
Эта структура представляет собой запись пула клиентских служб SRP.
otSrpClientCallback )(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
Этот тип указателя на функцию определяет обратный вызов, используемый клиентом SRP для уведомления пользователя об изменениях / событиях / ошибках.
otSrpClientHostInfo typedef
Эта структура представляет информацию о хосте клиента SRP.
otSrpClientService typedef
Эта структура представляет собой клиентскую службу SRP.
otSrpServerAddressMode typedef
Это перечисление представляет режим адресации, используемый сервером SRP.
otSrpServerHost typedef
Этот непрозрачный тип представляет хост службы SRP.
otSrpServerLeaseConfig typedef
Эта структура включает конфигурации LEASE и KEY-LEASE сервера SRP.
otSrpServerService typedef
Этот непрозрачный тип представляет службу SRP.
otSrpServerServiceFlags typedef
uint8_t
Тип флага службы, указывающий, какие службы включить или исключить при поиске (или повторении) в списке служб SRP.
otSrpServerServiceUpdateHandler )(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
Эта функция обрабатывает обновления службы SRP.
otSrpServerServiceUpdateId typedef
uint32_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)
Эта функция получает информацию о хосте.
otSrpClientGetKeyLeaseInterval ( otInstance *aInstance)
uint32_t
Эта функция получает интервал аренды ключа, используемый в запросах обновления SRP.
otSrpClientGetLeaseInterval ( otInstance *aInstance)
uint32_t
Эта функция получает интервал аренды, используемый в запросах обновления SRP.
otSrpClientGetServerAddress ( otInstance *aInstance)
const otSockAddr *
Эта функция получает адрес сокета (адрес IPv6 и номер порта) сервера SRP, который используется клиентом SRP.
otSrpClientGetServices ( otInstance *aInstance)
Эта функция получает список сервисов, которыми управляет клиент.
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
Эта функция возвращает конфигурации LEASE и KEY-LEASE сервера SRP.
otSrpServerGetNextHost ( otInstance *aInstance, const otSrpServerHost *aHost)
Эта функция возвращает следующий зарегистрированный хост на сервере 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)
Эта функция находит следующую подходящую службу на хосте.
otSrpServerHostGetAddresses (const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
Эта функция возвращает адреса данного хоста.
otSrpServerHostGetFullName (const otSrpServerHost *aHost)
const char *
Эта функция возвращает полное имя хоста.
otSrpServerHostGetNextService (const otSrpServerHost *aHost, const otSrpServerService *aService)
Эта функция возвращает следующую услугу (исключая любые услуги подтипа) данного хоста.
otSrpServerHostIsDeleted (const otSrpServerHost *aHost)
bool
Эта функция сообщает, был ли удален узел службы SRP.
otSrpServerServiceGetFullName (const otSrpServerService *aService)
const char *
Эта функция возвращает полное имя экземпляра службы.
otSrpServerServiceGetHost (const otSrpServerService *aService)
Эта функция возвращает хост, на котором находится экземпляр службы.
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 и АРЕНДА КЛЮЧА.
otSrpServerSetServiceUpdateHandler ( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
Эта функция устанавливает обработчик обновлений службы SRP на сервере SRP.

Структуры

otSrpClientBuffersServiceEntry

Эта структура представляет собой запись пула клиентских служб SRP.

otSrpClientHostInfo

Эта структура представляет информацию о хосте клиента SRP.

otSrpClientService

Эта структура представляет собой клиентскую службу SRP.

otSrpServerLeaseConfig

Эта структура включает конфигурации LEASE и KEY-LEASE сервера SRP.

Перечисления

анонимное перечисление

 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

Эта константа определяет otSrpServerServiceFlags комбинацию принимающую какую - либо услугу (базовый / подтип, активный / удален).

OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE

Эта константа определяет otSrpServerServiceFlags комбинацию принимающей любую активную службу (не удаляется).

OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE

Эта константа определяет otSrpServerServiceFlags комбинацию принимающей любой удаленный сервис.

OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY

Эта константа определяет otSrpServerServiceFlags комбинацию принимающей только базовую услугу.

OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY

Эта константа определяет otSrpServerServiceFlags комбинацию принимающую только услуги суб-типа.

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

Одноадресный режим адресации.

otSrpServerState

 otSrpServerState

Представляет состояние сервера SRP.

Характеристики
OT_SRP_SERVER_STATE_DISABLED

Сервер SRP отключен.

OT_SRP_SERVER_STATE_RUNNING

Сервер SRP запущен.

OT_SRP_SERVER_STATE_STOPPED

Сервер SRP остановлен.

Typedefs

otSrpClientAutoStartCallback

void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)

Этот тип указателя функции определяет обратный вызов, используемый SRP-клиентом для уведомления пользователя, когда он запускается или останавливается автоматически.

Это используется только тогда , когда автозапуск функция OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE включена.

Этот обратный вызов вызывается, когда включен режим автозапуска и клиент SRP либо автоматически запускается, либо останавливается.

Подробности
Параметры
[in] aServerSockAddress
Указатель, отличный от NULL, указывает на то, что сервер SRP был запущен, а указатель предоставит выбранный адрес сокета сервера. ПУСТОЙ указатель означает, что сервер SRP остановлен.
[in] aContext
Указатель на произвольный контекст (предоставленный при регистрации обратного вызова).

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, код ответа DNS (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) ОТКАЗАНО Сервер отказался по соображениям политики / безопасности -> 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 Плохое имя -> OT_ERROR_PARSE
  • (21) BADALG Плохой алгоритм -> OT_ERROR_SECURITY
  • (22) BADTRUN Неверное усечение -> 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 и связанные с ним те , для более подробной информации).

Подробности
Параметры
[in] aError
Ошибка (см. Выше).
[in] aHostInfo
Указатель на информацию о хосте.
[in] aService
Заголовок связанного списка, содержащего все сервисы (кроме удаленных). NULL, если список пуст.
[in] aRemovedServices
Глава связанного списка, содержащего все удаленные сервисы. NULL, если список пуст.
[in] aContext
Указатель на произвольный контекст (предоставленный при регистрации обратного вызова).

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

Эта структура представляет информацию о хосте клиента SRP.

otSrpClientService

struct otSrpClientService otSrpClientService

Эта структура представляет собой клиентскую службу SRP.

Значения в этой структуре, в том числе строковых буферов для имен и записей TXT - записи, должны сохраняться и постоянное пребывание после того, как экземпляр этой структуры передаются OpenThread от otSrpClientAddService() или otSrpClientRemoveService() .

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

Это перечисление представляет режим адресации, используемый сервером SRP.

Режим адреса определяет, как адрес и номер порта определяются сервером SRP и как эта информация публикуется в данных потоковой сети.

otSrpServerHost

struct otSrpServerHost otSrpServerHost

Этот непрозрачный тип представляет хост службы SRP.

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

Эта структура включает конфигурации LEASE и KEY-LEASE сервера SRP.

otSrpServerService

struct otSrpServerService otSrpServerService

Этот непрозрачный тип представляет службу SRP.

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, если какая-либо проверка не удалась. Например, рекламный прокси-сервер должен рекламировать (или удалять) хост и службы по каналу с возможностью многоадресной рассылки и возвращать конкретный код ошибки в случае сбоя.

Подробности
Параметры
[in] aId
Идентификатор транзакции обновления службы. Этот идентификатор должен быть передан обратно с otSrpServerHandleServiceUpdateResult .
[in] aHost
Указатель на объект otSrpServerHost, который содержит обновления SRP. Обработчик должен опубликовать / отменить публикацию хоста, и каждая служба указывает на этот хост по следующим правилам:
  1. Если хозяин не удаляется (обозначается otSrpServerHostIsDeleted ), то она должна быть опубликована или обновлена с MDNS. В противном случае хост не должен быть опубликован (удалите записи AAAA RR).
  2. Для каждой точки обслуживания к этому хосту, он должен быть отменен, если хост не должен быть опубликован. В противном случае, обработчик должен опубликовать или обновить службы , когда он не будет удален (обозначается otSrpServerServiceIsDeleted ) и снимите публикует его при удалении.
[in] aTimeout
Максимальное время в миллисекундах, в течение которого обработчик обработает событие службы.
[in] aContext
Указатель на контекст приложения.
Смотрите также:
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() , который удаляет хост и все сопутствующие услуги немедленно.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aService
Указатель на otSrpClientService Например , чтобы добавить.
Возвращаемые значения
OT_ERROR_NONE
Добавление службы началось успешно. otSrpClientCallback будет называться , чтобы сообщить статус.
OT_ERROR_ALREADY
Служба с такими же именами службы и экземпляра уже есть в списке.
OT_ERROR_INVALID_ARGS
Структура службы является недействительным (например, плохое имя службы или otDnsTxtEntry ).

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

Эта функция выделяет новую запись службы из пула.

Возвращенный экземпляр записи службы будет инициализирован следующим образом:

  • mService.mName будет указывать на выделенной строки буфера , который можно получить с помощью функции otSrpClientBuffersGetServiceEntryServiceNameString() .
  • mService.mInstanceName будет указывать на выделенной строки буфера , который можно получить с помощью функции otSrpClientBuffersGetServiceEntryInstanceNameString() .
  • mService.mSubTypeLabels указывает на массив , который возвращается из otSrpClientBuffersGetSubTypeLabelsArray() .
  • mService.mTxtEntries укажут mTxtEntry .
  • mService.mNumTxtEntries будет установлен в единицу.
  • Другие mService поле (порт, приоритет, вес) устанавливается в ноль.
  • mTxtEntry.mKey установлено значение NULL (значение рассматривается как уже закодированы).
  • mTxtEntry.mValue будет указывать на выделенный буфер , который может быть извлечен с помощью функции otSrpClientBuffersGetServiceEntryTxtBuffer() .
  • mTxtEntry.mValueLength устанавливается равным нулю.
  • Все связанные буферы данных / строк и массивы очищаются до нуля.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Указатель на вновь выделенную запись службы или NULL, если в пуле больше записей нет.

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

Эта функция освобождает все ранее назначенные служебные записи.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

Эта функция освобождает ранее выделенную служебную запись.

aService должен быть предварительно выделен с помощью otSrpClientBuffersAllocateService() и еще не освобождены. В противном случае поведение этой функции не определено.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aService
Указатель на бесплатную запись службы (НЕ ДОЛЖЕН быть NULL).

otSrpClientBuffersGetHostAddressesArray

otIp6Address * otSrpClientBuffersGetHostAddressesArray(
  otInstance *aInstance,
  uint8_t *aArrayLength
)

Эта функция получает массив записей адресов IPv6 для использования в качестве списка адресов хоста клиента SRP.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[out] aArrayLength
Указатель на переменную для возврата длины массива, т. Е. Количества записей IPv6-адреса в массиве (НЕ ДОЛЖЕН быть NULL).
Возврат
Указатель на массив otIp6Address записей (количество записей возвращается в aArrayLength ).

otSrpClientBuffersGetHostNameString

char * otSrpClientBuffersGetHostNameString(
  otInstance *aInstance,
  uint16_t *aSize
)

Эта функция получает строковый буфер, используемый для имени хоста клиента SRP.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[out] aSize
Указатель на переменную, возвращающую размер (количество байтов) строкового буфера (НЕ ДОЛЖЕН быть NULL).
Возврат
Указатель на буфер символов для использования в качестве имени хоста клиента SRP.

otSrpClientBuffersGetServiceEntryInstanceNameString

char * otSrpClientBuffersGetServiceEntryInstanceNameString(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Эта функция получает строковый буфер для имени экземпляра службы из записи службы.

Подробности
Параметры
[in] aEntry
Указатель на ранее выделенную запись службы (НЕ ДОЛЖЕН быть NULL).
[out] aSize
Указатель на переменную, возвращающую размер (количество байтов) строкового буфера (НЕ ДОЛЖЕН быть ПУСТОЙ).
Возврат
Указатель на строковый буфер.

otSrpClientBuffersGetServiceEntryServiceNameString

char * otSrpClientBuffersGetServiceEntryServiceNameString(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Эта функция получает строковый буфер для имени службы из записи службы.

Подробности
Параметры
[in] aEntry
Указатель на ранее выделенную запись службы (НЕ ДОЛЖЕН быть NULL).
[out] aSize
Указатель на переменную, возвращающую размер (количество байтов) строкового буфера (НЕ ДОЛЖЕН быть ПУСТОЙ).
Возврат
Указатель на строковый буфер.

otSrpClientBuffersGetServiceEntryTxtBuffer

uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Эта функция получает буфер для записи TXT из служебной записи.

Подробности
Параметры
[in] aEntry
Указатель на ранее выделенную запись службы (НЕ ДОЛЖЕН быть NULL).
[out] aSize
Указатель на переменную для возврата размера (количества байтов) буфера (НЕ ДОЛЖЕН быть ПУСТОЙ).
Возврат
Указатель на буфер.

otSrpClientBuffersGetSubTypeLabelsArray

const char ** otSrpClientBuffersGetSubTypeLabelsArray(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aArrayLength
)

Эта функция получает массив меток подтипов службы из записи службы.

Подробности
Параметры
[in] aEntry
Указатель на ранее выделенную запись службы (НЕ ДОЛЖЕН быть NULL).
[out] aArrayLength
Указатель на переменную для возврата длины массива (НЕ ДОЛЖЕН быть NULL).
Возврат
Указатель на массив.

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

Эта функция очищает всю информацию о хосте и всех службах.

В отличии от otSrpClientRemoveHostAndServices() , который посылает сообщение об обновлении на сервер , чтобы удалить всю информацию, эта функция удаляет всю информацию сразу , без какого - либо взаимодействия с сервером.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Эта функция очищает службу, немедленно удаляя ее из списка клиентских служб.

В отличии от otSrpClientRemoveService() , который посылает сообщение об обновлении на сервер , чтобы удалить службу, эта функция удаляет службу из списка сервисов клиента без какого - либо взаимодействия с сервером. При успешном вызове этой функции, otSrpClientCallback НЕ будет называться и aService запись может быть восстановлена и повторно используются вызывающим абонентом.

Эта функция может быть использована вместе с последующим вызовом otSrpClientAddService() (потенциально повторным использованием той же aService записи с теми же службой и инстанцией именами) для обновления некоторых параметров в существующей службе.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aService
Указатель на otSrpClientService Например , чтобы удалить.
Возвращаемые значения
OT_ERROR_NONE
aService успешно удален. Его можно немедленно восстановить и использовать повторно.
OT_ERROR_NOT_FOUND
Сервис не может быть найден в списке.

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

Эта функция отключает режим автозапуска.

Эта функция доступна только тогда , когда автозапуском функция OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE включена.

Отключение режима автозапуска не остановит клиента, если он уже запущен, но клиент прекращает мониторинг данных потоковой сети, чтобы убедиться, что выбранный сервер SRP все еще присутствует в нем.

Обратите внимание , что вызов otSrpClientStop() будет также отключить режим автоматического запуска.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.

otSrpClientEnableAutoStartMode

void otSrpClientEnableAutoStartMode(
  otInstance *aInstance,
  otSrpClientAutoStartCallback aCallback,
  void *aContext
)

Эта функция включает режим автозапуска.

Эта функция доступна только тогда , когда автозапуском функция OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE включена.

Config Опция OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE задает режим автоматического запуска по умолчанию (она включена ли или отключена в начале стека OT).

Когда автозапуск включен, клиент SRP будет отслеживать данные потоковой сети для записей службы сервера SRP и автоматически запускать и останавливать клиента при обнаружении сервера SRP.

Если обнаружено несколько серверов SRP, будет выбран случайный. Если выбранный сервер SRP больше не обнаруживается (больше не присутствует в данных потоковой сети), клиент SRP будет остановлен, а затем он может переключиться на другой сервер SRP (если он доступен).

Когда клиент SRP явно запускается с помощью успешного вызова otSrpClientStart() , по указанному адресу сервера SRP в otSrpClientStart() по- прежнему будет использоваться независимо от состояния режима автоматического пуска и является ли тот же адрес SRP - сервер обнаружил или нет в данных потоковой сети. В этом случае, только явный otSrpClientStop() вызов будет останавливать клиент.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aCallback
Обратный вызов для уведомления об автоматическом запуске / остановке клиента. Может иметь значение NULL, если не требуется.
[in] aContext
Контекст будет принят при вызове aCallback .

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

Эта функция получает имя домена, используемое клиентом SRP.

Эта функция требует OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE должна быть включена.

Если доменное имя не задано, будет использоваться default.service.arpa.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Строка доменного имени.

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

Эта функция получает информацию о хосте.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Указатель на информационную структуру хоста.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

Эта функция получает интервал аренды ключа, используемый в запросах обновления SRP.

Обратите внимание, что это продолжительность аренды, запрошенная клиентом SRP. Сервер может выбрать другой интервал аренды.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Интервал аренды ключа (в секундах).

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

Эта функция получает интервал аренды, используемый в запросах обновления SRP.

Обратите внимание, что это продолжительность аренды, запрошенная клиентом SRP. Сервер может выбрать другой интервал аренды.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Интервал аренды (в секундах).

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

Эта функция получает адрес сокета (адрес IPv6 и номер порта) сервера SRP, который используется клиентом SRP.

Если клиент не запущен, адрес не указан (все нулевые) с нулевым номером порта.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Указатель на адрес сокета сервера SRP (всегда отличен от NULL).

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

Эта функция получает список сервисов, которыми управляет клиент.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Указатель на заголовок связанного списка всех сервисов или NULL, если список пуст.

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

Эта функция показывает текущее состояние режима автозапуска (включено или отключено).

Эта функция доступна только тогда , когда автозапуском функция OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE включена.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
ИСТИНА, если режим автозапуска включен, иначе - ЛОЖЬ.

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

Эта функция указывает, работает ли клиент SRP.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
ИСТИНА, если клиент SRP запущен, иначе - ЛОЖЬ.

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

Этот метод указывает, включен или отключен режим «включения записи служебного ключа».

Эта функция доступна , если OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE конфигурация включена.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
ИСТИНА, если включен режим "включение записи служебного ключа", иначе - ЛОЖЬ.

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Эта функция преобразует otSrpClientItemState в строку.

Подробности
Параметры
[in] aItemState
Состояние элемента.
Возврат
Строковое представление 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 .

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aRemoveKeyLease
Логическое значение, указывающее, следует ли также удалить аренду ключа хоста.
[in] aSendUnregToServer
Логическое значение, указывающее, следует ли отправлять обновление на сервер, если информация о хосте не зарегистрирована.
Возвращаемые значения
OT_ERROR_NONE
Удаление информации о хосте и службах началось успешно. otSrpClientCallback будет называться , чтобы сообщить статус.
OT_ERROR_ALREADY
Информация о хосте уже удалена.

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Эта функция запрашивает отмену регистрации службы на сервере.

После успешного вызова этой функции, otSrpClientCallback будет называться , чтобы сообщить о состоянии запроса удалить с SRP сервером.

otSrpClientService пример того , на который указывает aService должны сохраняться и остаются неизменными после возвращения из этой функции (с OT_ERROR_NONE ). OpenThread сохранит экземпляр службы во время процесса удаления. Только после того , как otSrpClientCallback вызывается с указанием экземпляра службы удаляется из списка услуг SRP клиента и могут быть освобождены / повторно.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aService
Указатель на otSrpClientService Например , чтобы удалить.
Возвращаемые значения
OT_ERROR_NONE
Удаление службы началось успешно. otSrpClientCallback будет называться , чтобы сообщить статус.
OT_ERROR_NOT_FOUND
Сервис не может быть найден в списке.

otSrpClientSetCallback

void otSrpClientSetCallback(
  otInstance *aInstance,
  otSrpClientCallback aCallback,
  void *aContext
)

Эта функция устанавливает обратный вызов для уведомления вызывающего абонента о событиях / изменениях от клиента SRP.

Клиент SRP позволяет зарегистрировать один обратный вызов. Таким образом, последовательные вызовы этой функции перезапишут все ранее установленные функции обратного вызова.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aCallback
Обратный вызов для уведомления о событиях и изменениях. Может иметь значение NULL, если не требуется.
[in] aContext
Произвольный контекст используется с aCallback .

otSrpClientSetDomainName

otError otSrpClientSetDomainName(
  otInstance *aInstance,
  const char *aName
)

Эта функция устанавливает имя домена, которое будет использоваться клиентом SRP.

Эта функция требует OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE должна быть включена.

Если не установлен, будет использоваться default.service.arpa.

Имя строки буфера , на который указывает aName должен сохраняться и оставаться неизменным после возвращения из этой функции. OpenThread сохранит указатель на строку.

Имя домена может быть установлено перед запуском клиента или после запуска , но прежде , чем информация хоста зарегистрирована сервером (информация о хосте должна быть в любом STATE_TO_ADD или STATE_TO_REMOVE ).

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aName
Указатель на строку доменного имени. Если NULL устанавливает значение по умолчанию "default.service.arpa".
Возвращаемые значения
OT_ERROR_NONE
Ярлык доменного имени был успешно установлен.
OT_ERROR_INVALID_STATE
Информация о хосте уже зарегистрирована на сервере.

otSrpClientSetHostAddresses

otError otSrpClientSetHostAddresses(
  otInstance *aInstance,
  const otIp6Address *aIp6Addresses,
  uint8_t aNumAddresses
)

Эта функция устанавливает / обновляет список IPv6-адресов хоста.

Адреса хоста IPv6 могут быть установлены / изменены перед запуском или во время работы клиента SRP (например, для добавления / удаления или изменения ранее зарегистрированного адреса хоста), за исключением случаев, когда информация хоста удаляется (клиент занят обработкой запроса на удаление из более раннего вызов otSrpClientRemoveHostAndServices() и информация хозяин все еще находясь в любом STATE_TO_REMOVE или STATE_REMOVING состояний).

Хост IPv6 - адрес массива , на который указывает aAddresses должны сохраняться и остаются неизменными после возвращения из этой функции (с OT_ERROR_NONE ). OpenThread сохранит указатель на массив.

После успешного вызова этой функции, otSrpClientCallback будет называться , чтобы сообщить о состоянии адреса регистрации с SRP сервером.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aAddresses
Указатель на массив, содержащий IPv6-адреса хоста.
[in] aNumAddresses
Количество адресов в aAddresses массиве.
Возвращаемые значения
OT_ERROR_NONE
Изменение списка IPv6-адресов хоста началось успешно. otSrpClientCallback будет призван сообщать о состоянии регистрации адресов с сервером.
OT_ERROR_INVALID_ARGS
Список адресов недействителен (например, должен содержать хотя бы один адрес).
OT_ERROR_INVALID_STATE
Хост удаляется и поэтому не может изменить адрес хоста.

otSrpClientSetHostName

otError otSrpClientSetHostName(
  otInstance *aInstance,
  const char *aName
)

This function sets the host name label.

After a successful call to this function, otSrpClientCallback will be called to report the status of host info registration with SRP server.

The name string buffer pointed to by aName MUST persist and stay unchanged after returning from this function. OpenThread will keep the pointer to the string.

The host name can be set before client is started or after start but before host info is registered with server (host info should be in either STATE_TO_ADD or STATE_REMOVED ).

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.
[in] aName
A pointer to host name label string (MUST NOT be NULL). Pointer to the string buffer MUST persist and remain valid and constant after return from this function.
Return Values
OT_ERROR_NONE
The host name label was set successfully.
OT_ERROR_INVALID_ARGS
The aName is NULL.
OT_ERROR_INVALID_STATE
The host name is already set and registered with the server.

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

This function sets the key lease interval used in SRP update requests.

Changing the lease interval does not impact the accepted lease interval of already registered services/host-info. It only affects any future SRP update messages (ie, adding new services and/or refreshes of existing services).

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.
[in] aInterval
The key lease interval (in seconds). If zero, the default value specified by OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_KEY_LEASE would be used.

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

This function sets the lease interval used in SRP update requests.

Changing the lease interval does not impact the accepted lease interval of already registered services/host-info. It only affects any future SRP update messages (ie, adding new services and/or refreshes of the existing services).

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.
[in] aInterval
The lease interval (in seconds). If zero, the default value specified by OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_LEASE would be used.

otSrpClientSetServiceKeyRecordEnabled

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

This function enables/disables "service key record inclusion" mode.

When enabled, SRP client will include KEY record in Service Description Instructions in the SRP update messages that it sends.

This function is available when OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE configuration is enabled.

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.
[in] aEnabled
TRUE to enable, FALSE to disable the "service key record inclusion" mode.

otSrpClientStart

otError otSrpClientStart(
  otInstance *aInstance,
  const otSockAddr *aServerSockAddr
)

This function starts the SRP client operation.

SRP client will prepare and send "SRP Update" message to the SRP server once all the following conditions are met:

It does not matter in which order these functions are called. When all conditions are met, the SRP client will wait for a short delay before preparing an "SRP Update" message and sending it to server. This delay allows for user to add multiple services and/or IPv6 addresses before the first SRP Update message is sent (ensuring a single SRP Update is sent containing all the info). The config OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY specifies the delay interval.

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.
[in] aServerSockAddr
The socket address (IPv6 address and port number) of the SRP server.
Return Values
OT_ERROR_NONE
SRP client operation started successfully or it is already running with same server socket address and callback.
OT_ERROR_BUSY
SRP client is busy running with a different socket address.
OT_ERROR_FAILED
Failed to open/connect the client's UDP socket.

otSrpClientStop

void otSrpClientStop(
  otInstance *aInstance
)

This function stops the SRP client operation.

This function stops any further interactions with the SRP server. Note that it does not remove or clear host info and/or list of services. It marks all services to be added/removed again once the client is (re)started.

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.

otSrpServerGetAddressMode

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

This function returns the address mode being used by the SRP server.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
The SRP server's address mode.

otSrpServerGetAnycastModeSequenceNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

This function returns the sequence number used with anycast address mode.

The sequence number is included in "DNS/SRP Service Anycast Address" entry published in the Network Data.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
The anycast sequence number.

otSrpServerGetDomain

const char * otSrpServerGetDomain(
  otInstance *aInstance
)

This function returns the domain authorized to the SRP server.

If the domain if not set by SetDomain, "default.service.arpa." will be returned. A trailing dot is always appended even if the domain is set without it.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
A pointer to the dot-joined domain string.

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

This function returns SRP server LEASE and KEY-LEASE configurations.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[out] aLeaseConfig
A pointer to an otSrpServerLeaseConfig instance.

otSrpServerGetNextHost

const otSrpServerHost * otSrpServerGetNextHost(
  otInstance *aInstance,
  const otSrpServerHost *aHost
)

This function returns the next registered host on the SRP server.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aHost
A pointer to current host; use NULL to get the first host.
Returns
A pointer to the registered host. NULL, if no more hosts can be found.

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

This function returns the state of the SRP server.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
The current state of the SRP server.

otSrpServerHandleServiceUpdateResult

void otSrpServerHandleServiceUpdateResult(
  otInstance *aInstance,
  otSrpServerServiceUpdateId aId,
  otError aError
)

This function reports the result of processing a SRP update to the SRP server.

The Service Update Handler should call this function to return the result of its processing of a SRP update.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aId
The service update transaction ID. This should be the same ID provided via otSrpServerServiceUpdateHandler .
[in] aError
An error to be returned to the SRP server. Use OT_ERROR_DUPLICATED to represent DNS name conflicts.

otSrpServerHostFindNextService

const otSrpServerService * otSrpServerHostFindNextService(
  const otSrpServerHost *aHost,
  const otSrpServerService *aPrevService,
  otSrpServerServiceFlags aFlags,
  const char *aServiceName,
  const char *aInstanceName
)

This function finds the next matching service on the host.

The combination of flags and service and instance names enables iterating over the full list of services and/or a subset of them matching certain conditions, or finding a specific service.

To iterate over all services of a host: service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_ANY_SERVICE, NULL, NULL);

To iterate over base services only (exclude sub-types): service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, NULL, NULL);

To iterate over sub-types of a specific instance name instanceName : service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY, NULL, instanceName);

To find a specific service with service name serviceName and service instance name instanceName : service = otSrpServerHostFindNextService(host, NULL, OT_SRP_SERVER_FLAGS_ANY_SERVICE, serviceName, instanceName);

To find the base type service with a given service instance name instanceName : service = otSrpServerHostFindNextService(host, NULL, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, NULL, instanceName);

Details
Parameters
[in] aHost
A pointer to the SRP service host (MUST NOT be NULL).
[in] aPrevService
A pointer to the previous service or NULL to start from the beginning of the list.
[in] aFlags
Flags indicating which services to include (base/sub-type, active/deleted).
[in] aServiceName
The service name to match. Set to NULL to accept any name.
[in] aInstanceName
The service instance name to match. Set to NULL to accept any name.
Returns
A pointer to the next matching service or NULL if no matching service could be found.

otSrpServerHostGetAddresses

const otIp6Address * otSrpServerHostGetAddresses(
  const otSrpServerHost *aHost,
  uint8_t *aAddressesNum
)

This function returns the addresses of given host.

Details
Parameters
[in] aHost
A pointer to the SRP service host.
[out] aAddressesNum
A pointer to where we should output the number of the addresses to.
Returns
A pointer to the array of IPv6 Address.

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

This function returns the full name of the host.

Details
Parameters
[in] aHost
A pointer to the SRP service host.
Returns
A pointer to the null-terminated host name string.

otSrpServerHostGetNextService

const otSrpServerService * otSrpServerHostGetNextService(
  const otSrpServerHost *aHost,
  const otSrpServerService *aService
)

This function returns the next service (excluding any sub-type services) of given host.

Details
Parameters
[in] aHost
A pointer to the SRP service host.
[in] aService
A pointer to current SRP service instance; use NULL to get the first service.
Returns
A pointer to the next service or NULL if there is no more services.

otSrpServerHostIsDeleted

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

This function tells if the SRP service host has been deleted.

A SRP service host can be deleted but retains its name for future uses. In this case, the host instance is not removed from the SRP server/registry.

Details
Parameters
[in] aHost
A pointer to the SRP service host.
Returns
TRUE if the host has been deleted, FALSE if not.

otSrpServerServiceGetFullName

const char * otSrpServerServiceGetFullName(
  const otSrpServerService *aService
)

This function returns the full service instance name of the service.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
A pointer to the null-terminated service instance name string.

otSrpServerServiceGetHost

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

This function returns the host which the service instance reside on.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
A pointer to the host instance.

otSrpServerServiceGetInstanceName

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

This function returns the full service instance name of the service.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
A pointer to the null-terminated service instance name string.

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

This function returns the port of the service instance.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
The port of the service.

otSrpServerServiceGetPriority

uint16_t otSrpServerServiceGetPriority(
  const otSrpServerService *aService
)

This function returns the priority of the service instance.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
The priority of the service.

otSrpServerServiceGetServiceName

const char * otSrpServerServiceGetServiceName(
  const otSrpServerService *aService
)

This function returns the full service name of the service.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
A pointer to the null-terminated service name string.

otSrpServerServiceGetServiceSubTypeLabel

otError otSrpServerServiceGetServiceSubTypeLabel(
  const otSrpServerService *aService,
  char *aLabel,
  uint8_t aMaxSize
)

This function gets the sub-type label from service name.

This function is intended to be used when the aService is a sub-type, ie, otSrpServerServiceIsSubType() for the service returns TRUE. If it is not a sub-type this function returns OT_ERROR_INVALID_ARGS .

The full service name for a sub-type service follows " ._sub. . .". This function copies the into the aLabel buffer.

The aLabel is ensured to always be null-terminated after returning even in case of failure.

Details
Parameters
[in] aService
A pointer to the SRP service.
[out] aLabel
A pointer to a buffer to copy the sub-type label name into.
[in] aMaxSize
Maximum size of aLabel buffer.
Return Values
OT_ERROR_NONE
aLabel was updated successfully.
OT_ERROR_NO_BUFS
The sub-type label could not fit in aLabel buffer (number of chars from label that could fit are copied in aLabel ensuring it is null-terminated).
OT_ERROR_INVALID_ARGS
SRP service is not a sub-type.

otSrpServerServiceGetTxtData

const uint8_t * otSrpServerServiceGetTxtData(
  const otSrpServerService *aService,
  uint16_t *aDataLength
)

This function returns the TXT record data of the service instance.

Details
Parameters
[in] aService
A pointer to the SRP service.
[out] aDataLength
A pointer to return the TXT record data length. MUST NOT be NULL.
Returns
A pointer to the buffer containing the TXT record data (the TXT data length is returned in aDataLength ).

otSrpServerServiceGetWeight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

This function returns the weight of the service instance.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
The weight of the service.

otSrpServerServiceIsDeleted

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

This function indicates whether or not the SRP service has been deleted.

A SRP service can be deleted but retains its name for future uses. In this case, the service instance is not removed from the SRP server/registry. It is guaranteed that all services are deleted if the host is deleted.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
TRUE if the service has been deleted, FALSE if not.

otSrpServerServiceIsSubType

bool otSrpServerServiceIsSubType(
  const otSrpServerService *aService
)

This function indicates whether or not the SRP service is sub-type.

Details
Parameters
[in] aService
A pointer to the SRP service.
Returns
TRUE if the service is a sub-type, FALSE if not.

otSrpServerSetAddressMode

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

This function sets the address mode to be used by the SRP server.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aMode
The address mode to use.
Return Values
OT_ERROR_NONE
Successfully set the address mode.
OT_ERROR_INVALID_STATE
The SRP server is enabled and the address mode cannot be changed.

otSrpServerSetAnycastModeSequenceNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

This function sets the sequence number used with anycast address mode.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aSequenceNumber
The sequence number to use.
Return Values
OT_ERROR_NONE
Successfully set the address mode.
OT_ERROR_INVALID_STATE
The SRP server is enabled and the sequence number cannot be changed.

otSrpServerSetDomain

otError otSrpServerSetDomain(
  otInstance *aInstance,
  const char *aDomain
)

This function sets the domain on the SRP server.

A trailing dot will be appended to aDomain if it is not already there. This function should only be called before the SRP server is enabled.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aDomain
The domain to be set. MUST NOT be NULL.
Return Values
OT_ERROR_NONE
Successfully set the domain to aDomain .
OT_ERROR_INVALID_STATE
The SRP server is already enabled and the Domain cannot be changed.
OT_ERROR_INVALID_ARGS
The argument aDomain is not a valid DNS domain name.
OT_ERROR_NO_BUFS
There is no memory to store content of aDomain .

otSrpServerSetEnabled

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

This function enables/disables the SRP server.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aEnabled
A boolean to enable/disable the SRP server.

otSrpServerSetLeaseConfig

otError otSrpServerSetLeaseConfig(
  otInstance *aInstance,
  const otSrpServerLeaseConfig *aLeaseConfig
)

This function sets SRP server LEASE and KEY-LEASE configurations.

When a non-zero LEASE time is requested from a client, the granted value will be limited in range [aMinLease, aMaxLease]; and a non-zero KEY-LEASE will be granted in range [aMinKeyLease, aMaxKeyLease]. For zero LEASE or KEY-LEASE time, zero will be granted.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aLeaseConfig
A pointer to an otSrpServerLeaseConfig instance.
Return Values
OT_ERROR_NONE
Successfully set the LEASE and KEY-LEASE ranges.
OT_ERROR_INVALID_ARGS
The LEASE or KEY-LEASE range is not valid.

otSrpServerSetServiceUpdateHandler

void otSrpServerSetServiceUpdateHandler(
  otInstance *aInstance,
  otSrpServerServiceUpdateHandler aServiceHandler,
  void *aContext
)

This function sets the SRP service updates handler on SRP server.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aServiceHandler
A pointer to a service handler. Use NULL to remove the handler.
[in] aContext
A pointer to arbitrary context information. May be NULL if not used.