O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

SRP

Este módulo inclui funções que controlam o comportamento do cliente SRP.

Resumo

Este módulo inclui funções do Protocolo de Registro de Serviço.

Este módulo inclui funções para buffers de cliente SRP e pool de serviços.

As funções deste módulo só estão disponíveis quando o recurso OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE está habilitado.

Enumerações

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
}
enumerar
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)
}
enumerar
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
}
enumerar
Essa enumeração especifica um estado de item de cliente SRP (serviço ou informações de host).
otSrpServerAddressMode {
OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enumerar
Essa enumeração representa o modo de endereço usado pelo servidor SRP.
otSrpServerState {
OT_SRP_SERVER_STATE_DISABLED = 0,
OT_SRP_SERVER_STATE_RUNNING = 1,
OT_SRP_SERVER_STATE_STOPPED = 2
}
enumerar
Representa o estado de um servidor SRP.

Typedefs

otSrpClientAutoStartCallback )(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
Esse tipo de ponteiro de função define o retorno de chamada usado pelo cliente SRP para notificar o usuário quando ele é iniciado ou interrompido automaticamente.
otSrpClientBuffersServiceEntry typedef
Essa estrutura representa uma entrada do pool de serviços do cliente SRP.
otSrpClientCallback )(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
Esse tipo de ponteiro de função define o retorno de chamada usado pelo cliente SRP para notificar o usuário sobre alterações/eventos/erros.
otSrpClientHostInfo typedef
Essa estrutura representa uma informação de host do cliente SRP.
otSrpClientService typedef
Essa estrutura representa um serviço de cliente SRP.
otSrpServerAddressMode typedef
Essa enumeração representa o modo de endereço usado pelo servidor SRP.
otSrpServerHost typedef
Esse tipo opaco representa um host de serviço SRP.
otSrpServerLeaseConfig typedef
Essa estrutura inclui as configurações de LEASE e KEY-LEASE do servidor SRP.
otSrpServerService typedef
Este tipo opaco representa um serviço SRP.
otSrpServerServiceFlags typedef
uint8_t
O tipo de sinalizador de serviço para indicar quais serviços incluir ou excluir ao pesquisar (ou iterar) na lista de serviços SRP.
otSrpServerServiceUpdateHandler )(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
Esta função trata das atualizações do serviço SRP.
otSrpServerServiceUpdateId typedef
uint32_t
A ID de uma transação de atualização de serviço SRP no servidor SRP.

Funções

otSrpClientAddService ( otInstance *aInstance, otSrpClientService *aService)
Esta função adiciona um serviço a ser registrado no servidor.
otSrpClientBuffersAllocateService ( otInstance *aInstance)
Esta função aloca uma nova entrada de serviço do pool.
otSrpClientBuffersFreeAllServices ( otInstance *aInstance)
void
Esta função libera todas as entradas de serviço alocadas anteriormente.
otSrpClientBuffersFreeService ( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
Esta função libera uma entrada de serviço previamente alocada.
otSrpClientBuffersGetHostAddressesArray ( otInstance *aInstance, uint8_t *aArrayLength)
Esta função obtém a matriz de entradas de endereço IPv6 para usar como lista de endereços de host do cliente SRP.
otSrpClientBuffersGetHostNameString ( otInstance *aInstance, uint16_t *aSize)
char *
Esta função obtém o buffer de string a ser usado para o nome do host do cliente SRP.
otSrpClientBuffersGetServiceEntryInstanceNameString ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Essa função obtém o buffer de string para o nome da instância de serviço de uma entrada de serviço.
otSrpClientBuffersGetServiceEntryServiceNameString ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Esta função obtém o buffer de string para o nome do serviço de uma entrada de serviço.
otSrpClientBuffersGetServiceEntryTxtBuffer ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
Esta função obtém o buffer para o registro TXT de uma entrada de serviço.
otSrpClientBuffersGetSubTypeLabelsArray ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
Essa função obtém a matriz para rótulos de subtipo de serviço da entrada de serviço.
otSrpClientClearHostAndServices ( otInstance *aInstance)
void
Esta função limpa todas as informações do host e todos os serviços.
otSrpClientClearService ( otInstance *aInstance, otSrpClientService *aService)
Esta função limpa um serviço, removendo-o imediatamente da lista de serviços do cliente.
otSrpClientDisableAutoStartMode ( otInstance *aInstance)
void
Esta função desativa o modo de início automático.
otSrpClientEnableAutoStartMode ( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
Esta função ativa o modo de início automático.
otSrpClientGetDomainName ( otInstance *aInstance)
const char *
Esta função obtém o nome de domínio que está sendo usado pelo cliente SRP.
otSrpClientGetHostInfo ( otInstance *aInstance)
Esta função obtém as informações do host.
otSrpClientGetKeyLeaseInterval ( otInstance *aInstance)
uint32_t
Essa função obtém o intervalo de concessão de chave usado nas solicitações de atualização de SRP.
otSrpClientGetLeaseInterval ( otInstance *aInstance)
uint32_t
Essa função obtém o intervalo de concessão usado nas solicitações de atualização do SRP.
otSrpClientGetServerAddress ( otInstance *aInstance)
const otSockAddr *
Esta função obtém o endereço do soquete (endereço IPv6 e número da porta) do servidor SRP que está sendo usado pelo cliente SRP.
otSrpClientGetServices ( otInstance *aInstance)
Esta função obtém a lista de serviços que estão sendo gerenciados pelo cliente.
otSrpClientIsAutoStartModeEnabled ( otInstance *aInstance)
bool
Esta função indica o estado atual do modo de inicialização automática (ativado ou desativado).
otSrpClientIsRunning ( otInstance *aInstance)
bool
Esta função indica se o cliente SRP está em execução ou não.
otSrpClientIsServiceKeyRecordEnabled ( otInstance *aInstance)
bool
Este método indica se o modo "inclusão de registro de chave de serviço" está habilitado ou desabilitado.
otSrpClientItemStateToString ( otSrpClientItemState aItemState)
const char *
Esta função converte um otSrpClientItemState em uma string.
otSrpClientRemoveHostAndServices ( otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
Esta função inicia o processo de remoção das informações do host e de todos os serviços.
otSrpClientRemoveService ( otInstance *aInstance, otSrpClientService *aService)
Esta função solicita que um serviço seja desregistrado no servidor.
otSrpClientSetCallback ( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
Esta função define o retorno de chamada para notificar o chamador sobre eventos/alterações do cliente SRP.
otSrpClientSetDomainName ( otInstance *aInstance, const char *aName)
Esta função define o nome de domínio a ser usado pelo cliente SRP.
otSrpClientSetHostAddresses ( otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
Esta função configura/atualiza a lista de endereços IPv6 do host.
otSrpClientSetHostName ( otInstance *aInstance, const char *aName)
Esta função define o rótulo do nome do host.
otSrpClientSetKeyLeaseInterval ( otInstance *aInstance, uint32_t aInterval)
void
Essa função define o intervalo de concessão de chave usado nas solicitações de atualização de SRP.
otSrpClientSetLeaseInterval ( otInstance *aInstance, uint32_t aInterval)
void
Essa função define o intervalo de concessão usado nas solicitações de atualização do SRP.
otSrpClientSetServiceKeyRecordEnabled ( otInstance *aInstance, bool aEnabled)
void
Esta função ativa/desativa o modo "inclusão de registro de chave de serviço".
otSrpClientStart ( otInstance *aInstance, const otSockAddr *aServerSockAddr)
Esta função inicia a operação do cliente SRP.
otSrpClientStop ( otInstance *aInstance)
void
Esta função interrompe a operação do cliente SRP.
otSrpServerGetAddressMode ( otInstance *aInstance)
Esta função retorna o modo de endereço que está sendo usado pelo servidor SRP.
otSrpServerGetAnycastModeSequenceNumber ( otInstance *aInstance)
uint8_t
Esta função retorna o número de sequência usado com o modo de endereço anycast.
otSrpServerGetDomain ( otInstance *aInstance)
const char *
Esta função retorna o domínio autorizado ao servidor SRP.
otSrpServerGetLeaseConfig ( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
Esta função retorna as configurações de LEASE e KEY-LEASE do servidor SRP.
otSrpServerGetNextHost ( otInstance *aInstance, const otSrpServerHost *aHost)
Esta função retorna o próximo host registrado no servidor SRP.
otSrpServerGetState ( otInstance *aInstance)
Esta função retorna o estado do servidor SRP.
otSrpServerHandleServiceUpdateResult ( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
Esta função relata o resultado do processamento de uma atualização SRP para o servidor SRP.
otSrpServerHostFindNextService (const otSrpServerHost *aHost, const otSrpServerService *aPrevService, otSrpServerServiceFlags aFlags, const char *aServiceName, const char *aInstanceName)
Esta função encontra o próximo serviço correspondente no host.
otSrpServerHostGetAddresses (const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
Esta função retorna os endereços de um determinado host.
otSrpServerHostGetFullName (const otSrpServerHost *aHost)
const char *
Esta função retorna o nome completo do host.
otSrpServerHostGetNextService (const otSrpServerHost *aHost, const otSrpServerService *aService)
Esta função retorna o próximo serviço (excluindo quaisquer serviços de subtipo) de determinado host.
otSrpServerHostIsDeleted (const otSrpServerHost *aHost)
bool
Esta função informa se o host do serviço SRP foi excluído.
otSrpServerServiceGetFullName (const otSrpServerService *aService)
const char *
Esta função retorna o nome completo da instância de serviço do serviço.
otSrpServerServiceGetHost (const otSrpServerService *aService)
Essa função retorna o host no qual a instância de serviço reside.
otSrpServerServiceGetInstanceName (const otSrpServerService *aService)
const char *
Esta função retorna o nome completo da instância de serviço do serviço.
otSrpServerServiceGetPort (const otSrpServerService *aService)
uint16_t
Esta função retorna a porta da instância de serviço.
otSrpServerServiceGetPriority (const otSrpServerService *aService)
uint16_t
Esta função retorna a prioridade da instância de serviço.
otSrpServerServiceGetServiceName (const otSrpServerService *aService)
const char *
Esta função retorna o nome completo do serviço.
otSrpServerServiceGetServiceSubTypeLabel (const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize)
Esta função obtém o rótulo do subtipo do nome do serviço.
otSrpServerServiceGetTxtData (const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
Essa função retorna os dados do registro TXT da instância de serviço.
otSrpServerServiceGetWeight (const otSrpServerService *aService)
uint16_t
Esta função retorna o peso da instância de serviço.
otSrpServerServiceIsDeleted (const otSrpServerService *aService)
bool
Esta função indica se o serviço SRP foi excluído ou não.
otSrpServerServiceIsSubType (const otSrpServerService *aService)
bool
Esta função indica se o serviço SRP é ou não de subtipo.
otSrpServerSetAddressMode ( otInstance *aInstance, otSrpServerAddressMode aMode)
Esta função define o modo de endereço a ser usado pelo servidor SRP.
otSrpServerSetAnycastModeSequenceNumber ( otInstance *aInstance, uint8_t aSequenceNumber)
Esta função define o número de sequência usado com o modo de endereço anycast.
otSrpServerSetDomain ( otInstance *aInstance, const char *aDomain)
Esta função define o domínio no servidor SRP.
otSrpServerSetEnabled ( otInstance *aInstance, bool aEnabled)
void
Esta função habilita/desabilita o servidor SRP.
otSrpServerSetLeaseConfig ( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
Esta função define as configurações de LEASE e KEY-LEASE do servidor SRP.
otSrpServerSetServiceUpdateHandler ( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
Esta função define o manipulador de atualizações do serviço SRP no servidor SRP.

Estruturas

otSrpClientBuffersServiceEntry

Essa estrutura representa uma entrada do pool de serviços do cliente SRP.

otSrpClientHostInfo

Essa estrutura representa uma informação de host do cliente SRP.

otSrpClientService

Essa estrutura representa um serviço de cliente SRP.

otSrpServerLeaseConfig

Essa estrutura inclui as configurações de LEASE e KEY-LEASE do servidor SRP.

Enumerações

enumeração anônima

 anonymous enum
Propriedades
OT_SRP_SERVER_SERVICE_FLAG_ACTIVE

Inclua serviços ativos (não excluídos).

OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE

Incluir serviços básicos (não um subtipo).

OT_SRP_SERVER_SERVICE_FLAG_DELETED

Incluir serviços excluídos.

OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE

Incluir serviços de subtipo.

enumeração anônima

 anonymous enum
Propriedades
OT_SRP_SERVER_FLAGS_ANY_SERVICE

Esta constante define uma combinação otSrpServerServiceFlags aceitando qualquer serviço (base/subtipo, ativo/excluído).

OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE

Essa constante define uma combinação otSrpServerServiceFlags aceitando qualquer serviço ativo (não excluído).

OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE

Essa constante define uma combinação otSrpServerServiceFlags aceitando qualquer serviço excluído.

OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY

Essa constante define uma combinação otSrpServerServiceFlags aceita apenas o serviço base.

OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY

Essa constante define uma combinação otSrpServerServiceFlags aceitando apenas o serviço de subtipo.

otSrpClientItemState

 otSrpClientItemState

Essa enumeração especifica um estado de item de cliente SRP (serviço ou informações de host).

Propriedades
OT_SRP_CLIENT_ITEM_STATE_ADDING

O item está sendo adicionado/registrado.

OT_SRP_CLIENT_ITEM_STATE_REFRESHING

O item está sendo atualizado.

OT_SRP_CLIENT_ITEM_STATE_REGISTERED

O item está registrado no servidor.

OT_SRP_CLIENT_ITEM_STATE_REMOVED

O item é removido.

OT_SRP_CLIENT_ITEM_STATE_REMOVING

O item está sendo removido.

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

Item a ser adicionado/registrado.

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

Item a ser atualizado (registre-se novamente para renovar o aluguel).

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

Item a ser removido.

otSrpServerAddressMode

 otSrpServerAddressMode

Essa enumeração representa o modo de endereço usado pelo servidor SRP.

O modo de endereço especifica como o endereço e o número da porta são determinados pelo servidor SRP e como essas informações são publicadas nos dados de rede de thread.

Propriedades
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST

Modo de endereço Anycast.

OT_SRP_SERVER_ADDRESS_MODE_UNICAST

Modo de endereço unicast.

otSrpServerState

 otSrpServerState

Representa o estado de um servidor SRP.

Propriedades
OT_SRP_SERVER_STATE_DISABLED

O servidor SRP está desabilitado.

OT_SRP_SERVER_STATE_RUNNING

O servidor SRP está em execução.

OT_SRP_SERVER_STATE_STOPPED

O servidor SRP está parado.

Typedefs

otSrpClientAutoStartCallback

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

Esse tipo de ponteiro de função define o retorno de chamada usado pelo cliente SRP para notificar o usuário quando ele é iniciado ou interrompido automaticamente.

Isso só é usado quando o recurso de inicialização automática OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está ativado.

Esse retorno de chamada é invocado quando o modo de inicialização automática está habilitado e o cliente SRP é iniciado ou interrompido automaticamente.

Detalhes
Parâmetros
[in] aServerSockAddr
Um ponteiro não NULL indica que o servidor SRP foi iniciado e o ponteiro fornecerá o endereço do soquete do servidor selecionado. Um ponteiro NULL indica que o servidor SRP foi interrompido.
[in] aContext
Um ponteiro para um contexto arbitrário (fornecido quando o retorno de chamada foi registrado).

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

Essa estrutura representa uma entrada do pool de serviços do cliente SRP.

otSrpClientCallback

void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)

Esse tipo de ponteiro de função define o retorno de chamada usado pelo cliente SRP para notificar o usuário sobre alterações/eventos/erros.

Este retorno de chamada é invocado em um registro bem-sucedido de uma atualização (por exemplo, adicionar/remover informações do host e/ou alguns serviços) com o servidor SRP, ou se houver uma falha ou erro (por exemplo, o servidor rejeita uma atualização solicitação ou cliente expira esperando por resposta, etc).

No caso de um novo registro bem-sucedido de uma atualização, o parâmetro aError seria OT_ERROR_NONE e as informações do host e a lista completa de serviços são fornecidas como parâmetros de entrada para o retorno de chamada. Observe que as informações e serviços do host rastreiam seu próprio estado na variável de membro mState correspondente da estrutura de dados relacionada (o estado que indica se o host-info/serviço está registrado ou removido ou ainda está sendo adicionado/removido, etc).

A lista de serviços removidos é passada como sua própria lista vinculada aRemovedServices no retorno de chamada. Observe que quando o retorno de chamada é invocado, o cliente SRP (implementação OpenThread) é feito com as instâncias de serviço removidas listadas em aRemovedServices e não as rastreia/armazena mais (ou seja, se do retorno de chamada chamamos otSrpClientGetServices() os serviços removidos não serão presente na lista retornada). Fornecer uma lista separada de serviços removidos no retorno de chamada ajuda a indicar ao usuário quais itens foram removidos e permite que o usuário reivindique/reutilize as instâncias.

Se o servidor rejeitar uma solicitação de atualização do SRP, o código de resposta do DNS (RFC 2136) será mapeado para os seguintes erros:

  • (0) NOERROR Sucesso (sem condição de erro) -> OT_ERROR_NONE
  • (1) FORMERR Server incapaz de interpretar devido a erro de formato -> OT_ERROR_PARSE
  • (2) O servidor SERVFAIL encontrou uma falha interna -> OT_ERROR_FAILED
  • (3) NXDOMAIN Nome que deveria existir, não existe -> OT_ERROR_NOT_FOUND
  • (4) O NOTIMP Server não suporta o tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) REFUSED Servidor recusado por motivos de política/segurança -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Algum nome que não deveria existir, existe -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Algum RRset que não deveria existir, existe -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Algum RRset que deveria existir, não existe -> OT_ERROR_NOT_FOUND
  • (9) O serviço NOTAUTH não é autoritativo para a zona -> OT_ERROR_SECURITY
  • (10) NOTZONE Um nome não está na zona -> OT_ERROR_PARSE
  • (20) BADNAME Nome inválido -> OT_ERROR_PARSE
  • (21) BADALG Algoritmo incorreto -> OT_ERROR_SECURITY
  • (22) BADTRUN Truncamento incorreto -> OT_ERROR_PARSE
  • Outros códigos de resposta -> OT_ERROR_FAILED

Os seguintes erros também são possíveis:

  • OT_ERROR_RESPONSE_TIMEOUT: Tempo limite esgotado aguardando resposta do servidor (o cliente continuaria tentando novamente).
  • OT_ERROR_INVALID_ARGS : A estrutura de serviço fornecida é inválida (por exemplo, nome de serviço incorreto ou otDnsTxtEntry ).
  • OT_ERROR_NO_BUFS : Buffer insuficiente para preparar ou enviar a mensagem de atualização.

Observe que em caso de alguma falha, o cliente continua a operação, ou seja, prepara e (re)transmite a mensagem de atualização do SRP para o servidor, após algum intervalo de espera. O intervalo de espera de repetição começa no valor mínimo e é aumentado pelo fator de crescimento a cada falha até o valor máximo (consulte o parâmetro de configuração OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL e os relacionados para obter mais detalhes).

Detalhes
Parâmetros
[in] aError
O erro (veja acima).
[in] aHostInfo
Um ponteiro para informações do host.
[in] aServices
O cabeçalho da lista encadeada contendo todos os serviços (excluindo os removidos). NULL se a lista estiver vazia.
[in] aRemovedServices
O cabeçalho da lista encadeada contendo todos os serviços removidos. NULL se a lista estiver vazia.
[in] aContext
Um ponteiro para um contexto arbitrário (fornecido quando o retorno de chamada foi registrado).

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

Essa estrutura representa uma informação de host do cliente SRP.

otSrpClientService

struct otSrpClientService otSrpClientService

Essa estrutura representa um serviço de cliente SRP.

Os valores nessa estrutura, incluindo os buffers de string para os nomes e as entradas do registro TXT, DEVEM persistir e permanecer constantes após uma instância dessa estrutura ser passada para OpenThread de otSrpClientAddService() ou otSrpClientRemoveService() .

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

Essa enumeração representa o modo de endereço usado pelo servidor SRP.

O modo de endereço especifica como o endereço e o número da porta são determinados pelo servidor SRP e como essas informações são publicadas nos dados de rede de thread.

otSrpServerHost

struct otSrpServerHost otSrpServerHost

Esse tipo opaco representa um host de serviço SRP.

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

Essa estrutura inclui as configurações de LEASE e KEY-LEASE do servidor SRP.

otSrpServerService

struct otSrpServerService otSrpServerService

Este tipo opaco representa um serviço SRP.

otSrpServerServiceFlags

uint8_t otSrpServerServiceFlags

O tipo de sinalizador de serviço para indicar quais serviços incluir ou excluir ao pesquisar (ou iterar) na lista de serviços SRP.

Esta é uma combinação de sinalizadores de bits. Os bit-flags específicos são definidos na enumeração OT_SRP_SERVER_FLAG_* .

otSrpServerServiceUpdateHandler

void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)

Esta função trata das atualizações do serviço SRP.

Essa função é chamada pelo servidor SRP para notificar que um host SRP e possivelmente serviços SRP estão sendo atualizados. É importante que as atualizações SRP não sejam confirmadas até que o manipulador retorne o resultado chamando otSrpServerHandleServiceUpdateResult ou expire após aTimeout .

Um observador de serviço SRP deve sempre chamar otSrpServerHandleServiceUpdateResult com o código de erro OT_ERROR_NONE imediatamente após receber os eventos de atualização.

Um manipulador mais genérico pode realizar validações no host/serviços SRP e rejeitar as atualizações SRP se alguma validação falhar. Por exemplo, um Proxy de Publicidade deve anunciar (ou remover) o host e os serviços em um link compatível com multicast e retornar um código de erro específico se ocorrer alguma falha.

Detalhes
Parâmetros
[in] aId
O ID da transação de atualização do serviço. Esse ID deve ser passado de volta com otSrpServerHandleServiceUpdateResult .
[in] aHost
Um ponteiro para o objeto otSrpServerHost que contém as atualizações do SRP. O manipulador deve publicar/cancelar a publicação do host e cada serviço aponta para este host com as regras abaixo:
  1. Se o host não for excluído (indicado por otSrpServerHostIsDeleted ), ele deverá ser publicado ou atualizado com mDNS. Caso contrário, o host deve ser despublicado (remover AAAA RRs).
  2. Para cada ponto de serviço para este host, ele deve ser despublicado se o host tiver que ser despublicado. Caso contrário, o manipulador deve publicar ou atualizar o serviço quando não for excluído (indicado por otSrpServerServiceIsDeleted ) e despublicá-lo quando excluído.
[in] aTimeout
O tempo máximo em milissegundos para o manipulador processar o evento de serviço.
[in] aContext
Um ponteiro para o contexto específico do aplicativo.
Veja também:
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId

uint32_t otSrpServerServiceUpdateId

A ID de uma transação de atualização de serviço SRP no servidor SRP.

Funções

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Esta função adiciona um serviço a ser registrado no servidor.

Após uma chamada bem-sucedida para esta função, otSrpClientCallback será chamado para relatar o status da adição/registro do serviço com o servidor SRP.

A instância otSrpClientService apontada por aService DEVE persistir e permanecer inalterada após retornar desta função (com OT_ERROR_NONE ). OpenThread salvará o ponteiro para a instância de serviço.

A instância otSrpClientService não é mais rastreada pelo OpenThread e pode ser recuperada somente quando

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aService
Um ponteiro para uma instância otSrpClientService a ser adicionada.
Valores de retorno
OT_ERROR_NONE
A adição do serviço foi iniciada com sucesso. O otSrpClientCallback será chamado para relatar o status.
OT_ERROR_ALREADY
Um serviço com os mesmos nomes de serviço e instância já está na lista.
OT_ERROR_INVALID_ARGS
A estrutura do serviço é inválida (por exemplo, nome de serviço incorreto ou otDnsTxtEntry ).

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

Esta função aloca uma nova entrada de serviço do pool.

A instância de entrada de serviço retornada será inicializada da seguinte forma:

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
Um ponteiro para a entrada de serviço recém-alocada ou NULL se não houver mais entrada disponível no pool.

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

Esta função libera todas as entradas de serviço alocadas anteriormente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

Esta função libera uma entrada de serviço previamente alocada.

O aService DEVE ser previamente alocado usando otSrpClientBuffersAllocateService() e ainda não liberado. Caso contrário, o comportamento desta função é indefinido.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aService
Um ponteiro para a entrada do serviço para liberar (NÃO DEVE ser NULL).

otSrpClientBuffersGetHostAddressesArray

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

Esta função obtém a matriz de entradas de endereço IPv6 para usar como lista de endereços de host do cliente SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[out] aArrayLength
Ponteiro para uma variável para retornar o tamanho do array, ou seja, o número de entradas de endereço IPv6 no array (NÃO DEVE ser NULL).
Devoluções
Um ponteiro para uma matriz de entradas otIp6Address (o número de entradas é retornado em aArrayLength ).

otSrpClientBuffersGetHostNameString

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

Esta função obtém o buffer de string a ser usado para o nome do host do cliente SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[out] aSize
Ponteiro para uma variável para retornar o tamanho (número de bytes) do buffer de string (NÃO DEVE ser NULL).
Devoluções
Um ponteiro para char buffer a ser usado para o nome do host do cliente SRP.

otSrpClientBuffersGetServiceEntryInstanceNameString

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

Essa função obtém o buffer de string para o nome da instância de serviço de uma entrada de serviço.

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço previamente alocada (NÃO DEVE ser NULL).
[out] aSize
Um ponteiro para uma variável para retornar o tamanho (número de bytes) do buffer de string (NÃO DEVE ser NULL).
Devoluções
Um ponteiro para o buffer de string.

otSrpClientBuffersGetServiceEntryServiceNameString

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

Esta função obtém o buffer de string para o nome do serviço de uma entrada de serviço.

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço previamente alocada (NÃO DEVE ser NULL).
[out] aSize
Um ponteiro para uma variável para retornar o tamanho (número de bytes) do buffer de string (NÃO DEVE ser NULL).
Devoluções
Um ponteiro para o buffer de string.

otSrpClientBuffersGetServiceEntryTxtBuffer

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

Esta função obtém o buffer para o registro TXT de uma entrada de serviço.

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço previamente alocada (NÃO DEVE ser NULL).
[out] aSize
Um ponteiro para uma variável para retornar o tamanho (número de bytes) do buffer (NÃO DEVE ser NULL).
Devoluções
Um ponteiro para o buffer.

otSrpClientBuffersGetSubTypeLabelsArray

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

Essa função obtém a matriz para rótulos de subtipo de serviço da entrada de serviço.

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço previamente alocada (NÃO DEVE ser NULL).
[out] aArrayLength
Um ponteiro para uma variável para retornar o comprimento da matriz (NÃO DEVE ser NULL).
Devoluções
Um ponteiro para a matriz.

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

Esta função limpa todas as informações do host e todos os serviços.

Ao contrário otSrpClientRemoveHostAndServices() que envia uma mensagem de atualização ao servidor para remover todas as informações, esta função limpa todas as informações imediatamente sem qualquer interação com o servidor.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Esta função limpa um serviço, removendo-o imediatamente da lista de serviços do cliente.

Ao contrário otSrpClientRemoveService() que envia uma mensagem de atualização ao servidor para remover o serviço, esta função limpa o serviço da lista de serviços do cliente sem qualquer interação com o servidor. Em uma chamada bem-sucedida para essa função, o otSrpClientCallback NÃO será chamado e a entrada aService poderá ser recuperada e reutilizada pelo chamador imediatamente.

Essa função pode ser usada junto com uma chamada subsequente para otSrpClientAddService() (potencialmente reutilizando a mesma entrada aService com o mesmo serviço e nomes de instância) para atualizar alguns dos parâmetros em um serviço existente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aService
Um ponteiro para uma instância otSrpClientService a ser excluída.
Valores de retorno
OT_ERROR_NONE
O aService foi excluído com sucesso. Pode ser recuperado e reutilizado imediatamente.
OT_ERROR_NOT_FOUND
O serviço não foi encontrado na lista.

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

Esta função desativa o modo de início automático.

Isso só está disponível quando o recurso de inicialização automática OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está ativado.

A desativação do modo de inicialização automática não interromperá o cliente se ele já estiver em execução, mas o cliente interromperá o monitoramento dos dados de rede de thread para verificar se o servidor SRP selecionado ainda está presente nele.

Observe que uma chamada para otSrpClientStop() também desabilitará o modo de inicialização automática.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.

otSrpClientEnableAutoStartMode

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

Esta função ativa o modo de início automático.

Isso só está disponível quando o recurso de inicialização automática OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está ativado.

A opção de configuração OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE especifica o modo de inicialização automática padrão (se está ativado ou desativado no início da pilha OT).

Quando a inicialização automática está habilitada, o cliente SRP monitorará os dados de rede de thread para entradas de serviço de servidor SRP e iniciará e interromperá automaticamente o cliente quando um servidor SRP for detectado.

Se vários servidores SRP forem encontrados, um aleatório será selecionado. Se o servidor SRP selecionado não for mais detectado (não estiver mais presente nos dados da rede de threads), o cliente SRP será interrompido e poderá alternar para outro servidor SRP (se disponível).

Quando o cliente SRP é iniciado explicitamente por meio de uma chamada bem-sucedida para otSrpClientStart() , o endereço do servidor SRP fornecido em otSrpClientStart() continuará a ser usado independentemente do estado do modo de inicialização automática e se o mesmo endereço do servidor SRP for descoberto ou não nos dados da rede de threads. Nesse caso, apenas uma chamada explícita otSrpClientStop() interromperá o cliente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aCallback
Um retorno de chamada para notificar quando o cliente é iniciado/parado automaticamente. Pode ser NULL se não for necessário.
[in] aContext
Um contexto a ser passado ao invocar aCallback .

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

Esta função obtém o nome de domínio que está sendo usado pelo cliente SRP.

Esta função requer que OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE esteja habilitada.

Se o nome de domínio não for definido, "default.service.arpa" será usado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
A cadeia de caracteres do nome de domínio.

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

Esta função obtém as informações do host.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
Um ponteiro para hospedar a estrutura de informações.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

Essa função obtém o intervalo de concessão de chave usado nas solicitações de atualização de SRP.

Observe que esta é a duração da concessão solicitada pelo cliente SRP. O servidor pode optar por aceitar um intervalo de concessão diferente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
O intervalo de concessão da chave (em segundos).

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

Essa função obtém o intervalo de concessão usado nas solicitações de atualização do SRP.

Observe que esta é a duração da concessão solicitada pelo cliente SRP. O servidor pode optar por aceitar um intervalo de concessão diferente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
O intervalo de concessão (em segundos).

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

Esta função obtém o endereço do soquete (endereço IPv6 e número da porta) do servidor SRP que está sendo usado pelo cliente SRP.

Se o cliente não estiver em execução, o endereço não será especificado (todo zero) com número de porta zero.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
Um ponteiro para o endereço de soquete do servidor SRP (é sempre não NULL).

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

Esta função obtém a lista de serviços que estão sendo gerenciados pelo cliente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
Um ponteiro para o cabeçalho da lista vinculada de todos os serviços ou NULL se a lista estiver vazia.

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

Esta função indica o estado atual do modo de inicialização automática (ativado ou desativado).

Isso só está disponível quando o recurso de inicialização automática OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
TRUE se o modo de inicialização automática estiver ativado, FALSE caso contrário.

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

Esta função indica se o cliente SRP está em execução ou não.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
TRUE se o cliente SRP estiver em execução, FALSE caso contrário.

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

Este método indica se o modo "inclusão de registro de chave de serviço" está habilitado ou desabilitado.

Esta função está disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE está habilitada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
TRUE se o modo "inclusão de registro de chave de serviço" estiver ativado, FALSE caso contrário.

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Esta função converte um otSrpClientItemState em uma string.

Detalhes
Parâmetros
[in] aItemState
Um estado de item.
Devoluções
Uma representação de string de aItemState .

otSrpClientRemoveHostAndServices

otError otSrpClientRemoveHostAndServices(
  otInstance *aInstance,
  bool aRemoveKeyLease,
  bool aSendUnregToServer
)

Esta função inicia o processo de remoção das informações do host e de todos os serviços.

Após retornar desta função, otSrpClientCallback será chamado para relatar o status da solicitação de remoção com o servidor SRP.

Se as informações do host devem ser removidas permanentemente do servidor, aRemoveKeyLease deve ser definido como true , o que remove a concessão de chave associada ao host no servidor. Caso contrário, o registro de concessão de chave é mantido como antes, o que garante que o servidor mantenha o nome do host em reserva para quando o cliente puder novamente fornecer e registrar seu(s) serviço(s).

O aSendUnregToServer determina o comportamento quando as informações do host ainda não estão registradas no servidor. Se aSendUnregToServer for definido como false (que é o valor padrão/esperado), o cliente SRP removerá imediatamente as informações e os serviços do host sem enviar uma mensagem de atualização ao servidor (não é necessário atualizar o servidor se ainda não houver nada registrado). Se aSendUnregToServer for definido como true , o cliente SRP enviará uma mensagem de atualização ao servidor. Observe que, se as informações do host estiverem registradas, o valor de aSendUnregToServer não importa e o cliente SRP sempre enviará uma mensagem de atualização ao servidor solicitando a remoção de todas as informações.

Uma situação em que aSendUnregToServer pode ser útil é em uma reinicialização/reinicialização do dispositivo, o chamador pode querer remover quaisquer serviços registrados anteriormente com o servidor. Nesse caso, o chamador pode otSrpClientSetHostName() e, em seguida, solicitar otSrpClientRemoveHostAndServices() com aSendUnregToServer como true .

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aRemoveKeyLease
Um booleano indicando se a concessão da chave do host também deve ser removida.
[in] aSendUnregToServer
Um booleano que indica se a atualização deve ser enviada ao servidor quando as informações do host não estão registradas.
Valores de retorno
OT_ERROR_NONE
A remoção de informações e serviços do host foi iniciada com sucesso. O otSrpClientCallback será chamado para relatar o status.
OT_ERROR_ALREADY
As informações do host já foram removidas.

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Esta função solicita que um serviço seja desregistrado no servidor.

Após uma chamada bem-sucedida para esta função, otSrpClientCallback será chamado para relatar o status da solicitação de remoção com o servidor SRP.

A instância otSrpClientService apontada por aService DEVE persistir e permanecer inalterada após retornar desta função (com OT_ERROR_NONE ). O OpenThread manterá a instância de serviço durante o processo de remoção. Somente depois que otSrpClientCallback é chamado, indicando que a instância de serviço foi removida da lista de serviços do cliente SRP e pode ser liberada/reutilizada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aService
Um ponteiro para uma instância otSrpClientService a ser removida.
Valores de retorno
OT_ERROR_NONE
A remoção do serviço foi iniciada com sucesso. O otSrpClientCallback será chamado para relatar o status.
OT_ERROR_NOT_FOUND
O serviço não foi encontrado na lista.

otSrpClientSetCallback

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

Esta função define o retorno de chamada para notificar o chamador sobre eventos/alterações do cliente SRP.

O cliente SRP permite que um único retorno de chamada seja registrado. Portanto, chamadas consecutivas para essa função substituirão quaisquer funções de retorno de chamada definidas anteriormente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aCallback
O retorno de chamada para notificar eventos e alterações. Pode ser NULL se não for necessário.
[in] aContext
Um contexto arbitrário usado com aCallback .

otSrpClientSetDomainName

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

Esta função define o nome de domínio a ser usado pelo cliente SRP.

Esta função requer que OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE esteja habilitada.

Se não for definido "default.service.arpa" será usado.

O buffer de string de nome apontado por aName DEVE persistir e permanecer inalterado após retornar desta função. OpenThread manterá o ponteiro para a string.

O nome de domínio pode ser definido antes que o cliente seja iniciado ou após o início, mas antes que as informações do host sejam registradas no servidor (as informações do host devem estar em STATE_TO_ADD ou STATE_TO_REMOVE ).

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aName
Um ponteiro para a string do nome de domínio. Se NULL definir como padrão "default.service.arpa".
Valores de retorno
OT_ERROR_NONE
O rótulo do nome de domínio foi definido com sucesso.
OT_ERROR_INVALID_STATE
As informações do host já estão registradas no servidor.

otSrpClientSetHostAddresses

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

Esta função configura/atualiza a lista de endereços IPv6 do host.

Os endereços IPv6 do host podem ser definidos/alterados antes do início ou durante a operação do cliente SRP (por exemplo, para adicionar/remover ou alterar um endereço de host registrado anteriormente), exceto quando as informações do host estão sendo removidas (o cliente está ocupado lidando com uma solicitação de remoção de um chamada para otSrpClientRemoveHostAndServices() e as informações do host ainda estão nos estados STATE_TO_REMOVE ou STATE_REMOVING ).

A matriz de endereços IPv6 do host apontada por aIp6Addresses DEVE persistir e permanecer inalterada após o retorno desta função (com OT_ERROR_NONE ). OpenThread salvará o ponteiro para a matriz.

Após uma chamada bem-sucedida para esta função, otSrpClientCallback será chamado para relatar o status do registro do endereço no servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aIp6Addresses
Um ponteiro para uma matriz contendo os endereços IPv6 do host.
[in] aNumAddresses
O número de endereços na matriz aIp6Addresses .
Valores de retorno
OT_ERROR_NONE
A alteração da lista de endereços IPv6 do host foi iniciada com êxito. O otSrpClientCallback será chamado para relatar o status do registro de endereços no servidor.
OT_ERROR_INVALID_ARGS
A lista de endereços é inválida (por exemplo, deve conter pelo menos um endereço).
OT_ERROR_INVALID_STATE
O host está sendo removido e, portanto, não pode alterar o endereço do host.

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.

Resources

OpenThread API Reference topics originate from the source code, available on GitHub . For more information, or to contribute to our documentation, refer to Resources .