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ço.

As funções neste módulo estão disponíveis apenas 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
}
enum
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)
}
enum
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
}
enum
Esta enumeração especifica um estado de item de cliente SRP (informações de serviço ou host).
otSrpServerAddressMode {
OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enum
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
}
enum
Representa o estado de um servidor SRP.

Typedefs

otSrpClientAutoStartCallback )(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
Este 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
Esta estrutura representa uma entrada do pool de serviço do cliente SRP.
otSrpClientCallback )(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
Este 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
Esta estrutura representa as informações do host do cliente SRP.
otSrpClientService typedef
Esta 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
Este tipo opaco representa um host de serviço SRP.
otSrpServerLeaseConfig typedef
Essa estrutura inclui as configurações 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 lida com atualizações de serviço SRP.
otSrpServerServiceUpdateId typedef
uint32_t
O 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 de cliente SRP.
otSrpClientBuffersGetHostNameString ( otInstance *aInstance, uint16_t *aSize)
char *
Esta função obtém o buffer de string para usar como nome de host do cliente SRP.
otSrpClientBuffersGetServiceEntryInstanceNameString ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Esta 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 **
Esta função obtém a matriz para rótulos de subtipos 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 inicialização automática.
otSrpClientEnableAutoStartMode ( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
Esta função ativa o modo de inicialização automática.
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
Esta função obtém o intervalo de concessão de chave usado em solicitações de atualização de SRP.
otSrpClientGetLeaseInterval ( otInstance *aInstance)
uint32_t
Esta função obtém o intervalo de concessão usado nas solicitações de atualização SRP.
otSrpClientGetServerAddress ( otInstance *aInstance)
const otSockAddr *
Esta função obtém o endereço de socket (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 gerenciados pelo cliente.
otSrpClientIsAutoStartModeEnabled ( otInstance *aInstance)
bool
Esta função indica o estado atual do modo de partida automática (habilitado ou desabilitado).
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 a uma corda.
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 cancelado no servidor.
otSrpClientSetCallback ( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
Esta função define o retorno de chamada para notificar o chamador de 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 define / 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
Esta função define o intervalo de concessão de chave usado em solicitações de atualização SRP.
otSrpClientSetLeaseInterval ( otInstance *aInstance, uint32_t aInterval)
void
Esta função define o intervalo de aluguel usado nas solicitações de atualização 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 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)
Esta função retorna o host no qual reside a instância do serviço.
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 do serviço.
otSrpServerServiceGetPriority (const otSrpServerService *aService)
uint16_t
Esta função retorna a prioridade da instância do serviço.
otSrpServerServiceGetServiceName (const otSrpServerService *aService)
const char *
Esta função retorna o nome de serviço completo do serviço.
otSrpServerServiceGetServiceSubTypeLabel (const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize)
Esta função obtém o rótulo de subtipo do nome do serviço.
otSrpServerServiceGetTxtData (const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
Esta função retorna os dados do registro TXT da instância do 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 um 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 ativa / desativa o servidor SRP.
otSrpServerSetLeaseConfig ( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
Esta função define as configurações 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.

Structs

otSrpClientBuffersServiceEntry

Esta estrutura representa uma entrada do pool de serviço do cliente SRP.

otSrpClientHostInfo

Esta estrutura representa as informações do host do cliente SRP.

otSrpClientService

Esta estrutura representa um serviço de cliente SRP.

otSrpServerLeaseConfig

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

Enumerações

enum anônimo

 anonymous enum
Propriedades
OT_SRP_SERVER_SERVICE_FLAG_ACTIVE

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

OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE

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

OT_SRP_SERVER_SERVICE_FLAG_DELETED

Inclui serviços excluídos.

OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE

Inclui serviços de subtipo.

enum anônimo

 anonymous enum
Propriedades
OT_SRP_SERVER_FLAGS_ANY_SERVICE

Esta constante define uma otSrpServerServiceFlags combinação de aceitar qualquer serviço (base / sub-tipo, / activo excluído).

OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE

Esta constante define uma otSrpServerServiceFlags combinação de aceitar qualquer serviço activo (não suprimidas).

OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE

Esta constante define um otSrpServerServiceFlags combinação aceitar qualquer serviço excluído.

OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY

Esta constante define uma otSrpServerServiceFlags combinação aceitar serviço de base única.

OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY

Esta constante define uma otSrpServerServiceFlags combinação aceitar serviço de sub-tipo única.

otSrpClientItemState

 otSrpClientItemState

Esta enumeração especifica um estado de item de cliente SRP (informações de serviço ou 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 foi 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 da Rede de Threads.

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á desativado.

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)

Este 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 auto-start OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está habilitado.

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] aServerSockAddress
Um ponteiro não NULL indica que o servidor SRP foi iniciado e o ponteiro fornecerá o endereço de 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

Esta estrutura representa uma entrada do pool de serviço do cliente SRP.

otSrpClientCallback

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

Este 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 (ou seja, 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 a solicitação ou o cliente atinge o tempo limite esperando por uma resposta, etc.).

No caso de um recadastramento bem sucedida de uma atualização, aError parâmetro seria OT_ERROR_NONE e a informação de acolhimento e a lista completa de serviços é fornecido como parâmetros de entrada para a chamada de retorno. Note-se que informação e serviços de acolhimento cada controlar o seu próprio estado no correspondente mState variável membro da estrutura de dados relacionada (o estado indica se o hospedeiro-Informação / serviço está registado ou removido ou ainda sendo adicionados / removidos, etc).

A lista de serviços removidos é passado como seus próprios lista ligada aRemovedServices no retorno de chamada. Note-se que quando o retorno de chamada é invocado, o cliente SRP (implementação OpenThread) é feito com as instâncias removidas de serviços enumeradas no aRemovedServices e há faixas mais longas / lojas-los (ou seja, se a partir do retorno de chamada que chamamos otSrpClientGetServices() os serviços removidos não será presente na lista devolvida). 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 SRP, o código de resposta 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) NOTIMP Server não suporta o tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) RECUSADO Servidor recusado por razões 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 tem autoridade para a zona -> OT_ERROR_SECURITY
  • (10) NOTZONE Um nome não está na zona -> OT_ERROR_PARSE
  • (20) Mau nome de BADNAME -> OT_ERROR_PARSE
  • (21) BADALG Algoritmo ruim -> OT_ERROR_SECURITY
  • (22) BADTRUN Truncamento ruim -> 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 ao aguardar a resposta do servidor (o cliente continuaria a tentar novamente).
  • OT_ERROR_INVALID_ARGS: A estrutura de serviço fornecido é inválido (por exemplo, nome do serviço ruim ou otDnsTxtEntry ).
  • OT_ERROR_NO_BUFS: Buffer insuficiente para preparar ou enviar a mensagem de atualização.

Observe que em caso de 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. A repetição esperar começa intervalo entre o valor mínimo e é aumentada pelo fator de crescimento cada fracasso, até o valor máximo (consulte configuração de parâmetros OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL e aqueles relacionados para mais detalhes).

Detalhes
Parâmetros
[in] aError
O erro (veja acima).
[in] aHostInfo
Um ponteiro para informações do host.
[in] aService
O chefe da lista vinculada contendo todos os serviços (excluindo os removidos). NULL se a lista estiver vazia.
[in] aRemovedServices
O chefe da lista vinculada 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

Esta estrutura representa as informações do host do cliente SRP.

otSrpClientService

struct otSrpClientService otSrpClientService

Esta estrutura representa um serviço de cliente SRP.

Os valores nesta estrutura, incluindo os buffers de cadeias para os nomes e as entradas de registo TXT, deve persistir e estadia constante após um exemplo desta estrutura é passado 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 da Rede de Threads.

otSrpServerHost

struct otSrpServerHost otSrpServerHost

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

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

Essa estrutura inclui as configurações 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. O bit de sinalizadores 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 lida com atualizações de serviço SRP.

Esta 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 são confirmadas até que o manipulador retorna o resultado chamando otSrpServerHandleServiceUpdateResult ou o tempo limite 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 qualquer validação falhar. Por exemplo, um Advertising Proxy deve anunciar (ou remover) o host e os serviços em um link compatível com multicast e retorna o 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. Este ID deve ser passado para trás com otSrpServerHandleServiceUpdateResult .
[in] aHost
Um ponteiro para o objeto otSrpServerHost que contém as atualizações 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 é eliminado (indicado por otSrpServerHostIsDeleted ), então ele deve ser publicado ou atualizado com mDNS. Caso contrário, o host não deve ser publicado (remova AAAA RRs).
  2. Para cada serviço que aponta para este host, a publicação deve ser cancelada se a publicação do host for cancelada. Caso contrário, o manipulador deve publicar ou atualizar o serviço quando ele não é excluído (indicado por otSrpServerServiceIsDeleted ) e un publicar-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

O 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 de serviço / Registro com o servidor SRP.

O otSrpClientService instância que está sendo apontado por aService deve persistir e permanecer inalterada depois de voltar de esta função (com OT_ERROR_NONE ). OpenThread salvará o ponteiro para a instância do serviço.

O otSrpClientService instância não é mais controlado pelo OpenThread e somente quando pode ser recuperado

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aService
Um ponteiro para uma otSrpClientService exemplo, para adicionar.
Valores Retornados
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 o mesmo serviço e nomes de instância já está na lista.
OT_ERROR_INVALID_ARGS
A estrutura de serviço é inválido (por exemplo, nome do serviço ruim 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 maneira:

  • mService.mName irá apontar para uma memória intermédia de cadeia alocado que pode ser recuperado usando a função otSrpClientBuffersGetServiceEntryServiceNameString() .
  • mService.mInstanceName irá apontar para uma memória intermédia de cadeia alocado que pode ser recuperado usando a função otSrpClientBuffersGetServiceEntryInstanceNameString() .
  • mService.mSubTypeLabels pontos a uma matriz que é devolvido a partir otSrpClientBuffersGetSubTypeLabelsArray() .
  • mService.mTxtEntries irá apontar para mTxtEntry .
  • mService.mNumTxtEntries será definido para um.
  • Outros mService campos (porta, prioridade, em peso) são postos a zero.
  • mTxtEntry.mKey é definido como NULL (valor é tratado como já codificado).
  • mTxtEntry.mValue irá apontar para uma memória intermédia atribuída, que pode ser recuperado usando a função otSrpClientBuffersGetServiceEntryTxtBuffer() .
  • mTxtEntry.mValueLength está definido para zero.
  • Todos os dados / buffers de string e matrizes relacionados são zerados.

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 entradas disponíveis 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 alocados usando otSrpClientBuffersAllocateService() e ainda não liberados. 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 de serviço livre (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 de cliente SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[out] aArrayLength
Ponteiro para uma variável para retornar o comprimento da matriz, ou seja, o número de entradas de endereço IPv6 na matriz (NÃO DEVE ser NULL).
Devoluções
Um ponteiro para uma matriz de otIp6Address entradas (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 de 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 o buffer de char a ser usado para o nome do host do cliente SRP.

otSrpClientBuffersGetServiceEntryInstanceNameString

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

Esta 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 alocada anteriormente (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 alocada anteriormente (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 alocada anteriormente (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
)

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

Detalhes
Parâmetros
[in] aEntry
Um ponteiro para uma entrada de serviço alocada anteriormente (NÃO DEVE ser NULL).
[out] aArrayLength
Um ponteiro para uma variável para retornar o comprimento do array (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 para o servidor para remover toda a informação, esta função apaga 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 para o servidor para remover o serviço, esta função limpa a serviço da lista de serviços do cliente, sem qualquer interação com o servidor. Em uma chamada bem-sucedida para esta função, o otSrpClientCallback não será chamado eo aService entrada pode ser recuperada e reutilizada pelo chamador imediatamente.

Esta função pode ser usada juntamente com uma chamada subsequente para otSrpClientAddService() (potencialmente reutilizando o mesmo aService entrada com os mesmos nomes de serviços e de instância) para atualizar alguns dos parâmetros de um serviço já existente.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aService
Um ponteiro para uma otSrpClientService instância para excluir.
Valores Retornados
OT_ERROR_NONE
O aService é 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 inicialização automática.

Isto só está disponível quando o recurso de auto-start OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está habilitado.

Desativar o 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 do thread para verificar se o servidor SRP selecionado ainda está presente nele.

Note-se que uma chamada para otSrpClientStop() também irá desativar o modo de auto-start.

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 inicialização automática.

Isto só está disponível quando o recurso de auto-start OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está habilitado.

Configuração opção OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE Especifica o modo de auto-start padrão (se ele está ativado ou desativado no início da OT pilha).

Quando a inicialização automática está habilitada, o cliente SRP monitora os Thread Network Data para entradas de serviço do servidor SRP e inicia e interrompe automaticamente o cliente quando um servidor SRP é 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 no Thread Network Data), o cliente SRP será interrompido e, em seguida, poderá alternar para outro servidor SRP (se disponível).

Quando o cliente SRP é explicitamente começou através de uma chamada bem-sucedida para otSrpClientStart() , o dado endereço do servidor SRP em otSrpClientStart() continuará a ser utilizado independentemente do estado do modo de auto-start e se o mesmo endereço do servidor SRP é descoberto ou não nos dados da rede do segmento. Neste caso, apenas uma explícita otSrpClientStop() chamada vai parar 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 / interrompido automaticamente. Pode ser NULL se não for necessário.
[in] aContext
Um contexto para ser passado ao chamar 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 OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE para ser ativado.

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 string 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 a estrutura de informações do host.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

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

Observe que esta é a duração do aluguel solicitada pelo cliente SRP. O servidor pode escolher aceitar um intervalo de aluguel 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
)

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

Observe que esta é a duração do aluguel solicitada pelo cliente SRP. O servidor pode escolher aceitar um intervalo de aluguel diferente.

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

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

Esta função obtém o endereço de 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 é 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 diferente de NULL).

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

Esta função obtém a lista de serviços 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 partida automática (habilitado ou desabilitado).

Isto só está disponível quando o recurso de auto-start OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está habilitado.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
Devoluções
TRUE se o modo de partida automática estiver habilitado, 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 OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE configuração é habilitado.

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 habilitado, FALSE caso contrário.

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Esta função converte um otSrpClientItemState a uma corda.

Detalhes
Parâmetros
[in] aItemState
Um estado de item.
Devoluções
A representação de cadeia 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.

Depois de voltar de esta função, otSrpClientCallback será chamado para relatar o status da solicitação de remoção com o servidor SRP.

Se a informação de acolhimento deve ser permanentemente removidos do servidor, aRemoveKeyLease deve ser definido como true que remove o arrendamento chave associada com o anfitrião no servidor. Caso contrário, o registro de aluguel da chave é mantido como antes, o que garante que o servidor mantenha o nome do host em reserva para quando o cliente for mais uma vez capaz de fornecer e registrar seu (s) serviço (s).

O aSendUnregToServer determina o comportamento quando a informação de acolhimento ainda não está registrado com o servidor. Se aSendUnregToServer está definido como false (que é o / valor esperado padrão), então o cliente SRP irá remover imediatamente a informação e os serviços de acolhimento sem enviar uma mensagem de atualização de servidor (não há necessidade de atualizar o servidor, se nada for registrado ainda com ele). Se aSendUnregToServer está definido como true , em seguida, o cliente SRP irá enviar uma mensagem de atualização para o servidor. Observe que, se a informação de acolhimento é registrado, em seguida, o valor de aSendUnregToServer não importa e o cliente SRP sempre enviar uma mensagem de atualização para o servidor solicitar a remoção de todas as informações.

Uma situação onde aSendUnregToServer pode ser útil é em uma redefinição do dispositivo / reboot, chamador pode querer remover quaisquer serviços previamente registrado com o servidor. Neste caso, 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 que indica 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 Retornados
OT_ERROR_NONE
A remoção das 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 cancelado 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.

O otSrpClientService instância que está sendo apontado por aService deve persistir e permanecer inalterada depois de voltar de esta função (com OT_ERROR_NONE ). OpenThread manterá a instância do serviço durante o processo de remoção. Somente após a otSrpClientCallback é chamado indicando a instância de serviço é removido da lista de atendimento ao cliente SRP e pode ser ser libertado / reutilizados.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aService
Um apontador para um otSrpClientService exemplo para remover.
Valores Retornados
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 de eventos / alterações do cliente SRP.

O cliente SRP permite que um único retorno de chamada seja registrado. Portanto, chamadas consecutivas para esta 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 sobre eventos e mudanças. Pode ser NULL se não for necessário.
[in] aContext
Um contexto arbitrário utilizado 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 OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE para ser ativado.

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

O buffer de nome string apontada por aName deve persistir e permanecer inalterada depois de voltar de esta função. OpenThread manterá o ponteiro para a string.

O nome de domínio pode ser definido antes cliente é iniciado ou após a largada, mas antes de informações de host é registrado com o servidor (informações do anfitrião deve ser em qualquer 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 define como padrão "default.service.arpa".
Valores Retornados
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 define / 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 anterior chamada para otSrpClientRemoveHostAndServices() e informações de acolhimento continuam a ser em qualquer STATE_TO_REMOVE ou STATE_REMOVING estados).

A matriz de endereços IPv6 anfitrião apontado por aAddresses deve persistir e permanecer inalterada depois de voltar de esta 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 de endereço com o servidor SRP.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a instância OpenThread.
[in] aAddresses
Um ponteiro para uma matriz que contém os endereços IPv6 do host.
[in] aNumAddresses
O número de endereços na aAddresses matriz.
Valores Retornados
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 de registro de endereços com o 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.