Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

SRP

Este módulo incluye funciones que controlan el comportamiento del cliente SRP.

Resumen

Este módulo incluye funciones del Protocolo de registro de servicios.

Este módulo incluye funciones para los búferes de clientes de SRP y el grupo de servicios.

Las funciones de este módulo solo están disponibles cuando la función OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE está habilitada.

Enumeraciones

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
}
enumeración
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)
}
enumeración
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
}
enumeración
Esta enumeración especifica el estado de un elemento de cliente SRP (información de servicio o de host).
otSrpServerAddressMode {
OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enumeración
Esta enumeración representa el modo de dirección utilizado por el servidor SRP.
otSrpServerState {
OT_SRP_SERVER_STATE_DISABLED = 0,
OT_SRP_SERVER_STATE_RUNNING = 1,
OT_SRP_SERVER_STATE_STOPPED = 2
}
enumeración
Representa el estado de un servidor SRP.

Typedefs

otSrpClientAutoStartCallback )(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
Este tipo de puntero de función define la devolución de llamada utilizada por el cliente SRP para notificar al usuario cuando se inicia o se detiene automáticamente.
otSrpClientBuffersServiceEntry typedef
Esta estructura representa una entrada de grupo de servicios de cliente de SRP.
otSrpClientCallback )(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
Este tipo de puntero de función define la devolución de llamada utilizada por el cliente SRP para notificar al usuario de cambios / eventos / errores.
otSrpClientHostInfo typedef
Esta estructura representa la información del host del cliente SRP.
otSrpClientService typedef
Esta estructura representa un servicio de cliente SRP.
otSrpServerAddressMode typedef
Esta enumeración representa el modo de dirección utilizado por el servidor SRP.
otSrpServerHost typedef
Este tipo opaco representa un host de servicio SRP.
otSrpServerLeaseConfig typedef
Esta estructura incluye configuraciones de ARRENDAMIENTO de servidor SRP y ARRENDAMIENTO DE LLAVE.
otSrpServerService typedef
Este tipo opaco representa un servicio SRP.
otSrpServerServiceFlags typedef
uint8_t
El tipo de indicador de servicio para indicar qué servicios incluir o excluir al buscar (o iterar sobre) la lista de servicios SRP.
otSrpServerServiceUpdateHandler )(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
Esta función maneja las actualizaciones del servicio SRP.
otSrpServerServiceUpdateId typedef
uint32_t
El ID de una transacción de actualización del servicio SRP en el servidor SRP.

Funciones

otSrpClientAddService ( otInstance *aInstance, otSrpClientService *aService)
Esta función agrega un servicio para ser registrado con el servidor.
otSrpClientBuffersAllocateService ( otInstance *aInstance)
Esta función asigna una nueva entrada de servicio del grupo.
otSrpClientBuffersFreeAllServices ( otInstance *aInstance)
void
Esta función libera todas las entradas de servicio asignadas previamente.
otSrpClientBuffersFreeService ( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
Esta función libera una entrada de servicio previamente asignada.
otSrpClientBuffersGetHostAddressesArray ( otInstance *aInstance, uint8_t *aArrayLength)
Esta función obtiene la matriz de entradas de direcciones IPv6 para usar como lista de direcciones de host del cliente SRP.
otSrpClientBuffersGetHostNameString ( otInstance *aInstance, uint16_t *aSize)
char *
Esta función obtiene el búfer de cadena que se utilizará para el nombre de host del cliente SRP.
otSrpClientBuffersGetServiceEntryInstanceNameString ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Esta función obtiene el búfer de cadena para el nombre de la instancia de servicio de una entrada de servicio.
otSrpClientBuffersGetServiceEntryServiceNameString ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Esta función obtiene el búfer de cadena para el nombre del servicio de una entrada de servicio.
otSrpClientBuffersGetServiceEntryTxtBuffer ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
Esta función obtiene el búfer para el registro TXT de una entrada de servicio.
otSrpClientBuffersGetSubTypeLabelsArray ( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
Esta función obtiene la matriz de etiquetas de subtipo de servicio de la entrada de servicio.
otSrpClientClearHostAndServices ( otInstance *aInstance)
void
Esta función borra toda la información del host y todos los servicios.
otSrpClientClearService ( otInstance *aInstance, otSrpClientService *aService)
Esta función borra un servicio, eliminándolo inmediatamente de la lista de servicios del cliente.
otSrpClientDisableAutoStartMode ( otInstance *aInstance)
void
Esta función desactiva el modo de inicio automático.
otSrpClientEnableAutoStartMode ( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
Esta función habilita el modo de inicio automático.
otSrpClientGetDomainName ( otInstance *aInstance)
const char *
Esta función obtiene el nombre de dominio que utiliza el cliente SRP.
otSrpClientGetHostInfo ( otInstance *aInstance)
Esta función obtiene la información del host.
otSrpClientGetKeyLeaseInterval ( otInstance *aInstance)
uint32_t
Esta función obtiene el intervalo de concesión de claves que se utiliza en las solicitudes de actualización de SRP.
otSrpClientGetLeaseInterval ( otInstance *aInstance)
uint32_t
Esta función obtiene el intervalo de concesión utilizado en las solicitudes de actualización de SRP.
otSrpClientGetServerAddress ( otInstance *aInstance)
const otSockAddr *
Esta función obtiene la dirección de socket (dirección IPv6 y número de puerto) del servidor SRP que está siendo utilizado por el cliente SRP.
otSrpClientGetServices ( otInstance *aInstance)
Esta función obtiene la lista de servicios gestionados por el cliente.
otSrpClientIsAutoStartModeEnabled ( otInstance *aInstance)
bool
Esta función indica el estado actual del modo de inicio automático (habilitado o deshabilitado).
otSrpClientIsRunning ( otInstance *aInstance)
bool
Esta función indica si el cliente SRP se está ejecutando o no.
otSrpClientIsServiceKeyRecordEnabled ( otInstance *aInstance)
bool
Este método indica si el modo "inclusión de registro de clave de servicio" está habilitado o deshabilitado.
otSrpClientItemStateToString ( otSrpClientItemState aItemState)
const char *
Esta función convierte un otSrpClientItemState en una cadena.
otSrpClientRemoveHostAndServices ( otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
Esta función inicia el proceso de eliminación de la información del host y todos los servicios.
otSrpClientRemoveService ( otInstance *aInstance, otSrpClientService *aService)
Esta función solicita que se anule el registro de un servicio con el servidor.
otSrpClientSetCallback ( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
Esta función establece la devolución de llamada para notificar a la persona que llama sobre eventos / cambios del cliente SRP.
otSrpClientSetDomainName ( otInstance *aInstance, const char *aName)
Esta función establece el nombre de dominio que utilizará el cliente SRP.
otSrpClientSetHostAddresses ( otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
Esta función establece / actualiza la lista de direcciones IPv6 del host.
otSrpClientSetHostName ( otInstance *aInstance, const char *aName)
Esta función establece la etiqueta del nombre de host.
otSrpClientSetKeyLeaseInterval ( otInstance *aInstance, uint32_t aInterval)
void
Esta función establece el intervalo de concesión de claves que se utiliza en las solicitudes de actualización de SRP.
otSrpClientSetLeaseInterval ( otInstance *aInstance, uint32_t aInterval)
void
Esta función establece el intervalo de concesión utilizado en las solicitudes de actualización de SRP.
otSrpClientSetServiceKeyRecordEnabled ( otInstance *aInstance, bool aEnabled)
void
Esta función habilita / deshabilita el modo "inclusión de registro de clave de servicio".
otSrpClientStart ( otInstance *aInstance, const otSockAddr *aServerSockAddr)
Esta función inicia la operación del cliente SRP.
otSrpClientStop ( otInstance *aInstance)
void
Esta función detiene la operación del cliente SRP.
otSrpServerGetAddressMode ( otInstance *aInstance)
Esta función devuelve el modo de dirección que está utilizando el servidor SRP.
otSrpServerGetAnycastModeSequenceNumber ( otInstance *aInstance)
uint8_t
Esta función devuelve el número de secuencia utilizado con el modo de dirección anycast.
otSrpServerGetDomain ( otInstance *aInstance)
const char *
Esta función devuelve el dominio autorizado al servidor SRP.
otSrpServerGetLeaseConfig ( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
Esta función devuelve las configuraciones LEASE y KEY-LEASE del servidor SRP.
otSrpServerGetNextHost ( otInstance *aInstance, const otSrpServerHost *aHost)
Esta función devuelve el siguiente host registrado en el servidor SRP.
otSrpServerGetState ( otInstance *aInstance)
Esta función devuelve el estado del servidor SRP.
otSrpServerHandleServiceUpdateResult ( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
Esta función informa el resultado del procesamiento de una actualización de SRP al servidor de SRP.
otSrpServerHostFindNextService (const otSrpServerHost *aHost, const otSrpServerService *aPrevService, otSrpServerServiceFlags aFlags, const char *aServiceName, const char *aInstanceName)
Esta función busca el siguiente servicio coincidente en el host.
otSrpServerHostGetAddresses (const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
Esta función devuelve las direcciones de un host dado.
otSrpServerHostGetFullName (const otSrpServerHost *aHost)
const char *
Esta función devuelve el nombre completo del host.
otSrpServerHostGetNextService (const otSrpServerHost *aHost, const otSrpServerService *aService)
Esta función devuelve el siguiente servicio (excluyendo cualquier subtipo de servicios) del host dado.
otSrpServerHostIsDeleted (const otSrpServerHost *aHost)
bool
Esta función indica si se ha eliminado el host del servicio SRP.
otSrpServerServiceGetFullName (const otSrpServerService *aService)
const char *
Esta función devuelve el nombre completo de la instancia de servicio del servicio.
otSrpServerServiceGetHost (const otSrpServerService *aService)
Esta función devuelve el host en el que reside la instancia de servicio.
otSrpServerServiceGetInstanceName (const otSrpServerService *aService)
const char *
Esta función devuelve el nombre completo de la instancia de servicio del servicio.
otSrpServerServiceGetPort (const otSrpServerService *aService)
uint16_t
Esta función devuelve el puerto de la instancia de servicio.
otSrpServerServiceGetPriority (const otSrpServerService *aService)
uint16_t
Esta función devuelve la prioridad de la instancia de servicio.
otSrpServerServiceGetServiceName (const otSrpServerService *aService)
const char *
Esta función devuelve el nombre de servicio completo del servicio.
otSrpServerServiceGetServiceSubTypeLabel (const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize)
Esta función obtiene la etiqueta de subtipo del nombre del servicio.
otSrpServerServiceGetTxtData (const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
Esta función devuelve los datos del registro TXT de la instancia de servicio.
otSrpServerServiceGetWeight (const otSrpServerService *aService)
uint16_t
Esta función devuelve el peso de la instancia de servicio.
otSrpServerServiceIsDeleted (const otSrpServerService *aService)
bool
Esta función indica si se ha eliminado o no el servicio SRP.
otSrpServerServiceIsSubType (const otSrpServerService *aService)
bool
Esta función indica si el servicio SRP es un subtipo.
otSrpServerSetAddressMode ( otInstance *aInstance, otSrpServerAddressMode aMode)
Esta función establece el modo de dirección que utilizará el servidor SRP.
otSrpServerSetAnycastModeSequenceNumber ( otInstance *aInstance, uint8_t aSequenceNumber)
Esta función establece el número de secuencia utilizado con el modo de dirección anycast.
otSrpServerSetDomain ( otInstance *aInstance, const char *aDomain)
Esta función establece el dominio en el servidor SRP.
otSrpServerSetEnabled ( otInstance *aInstance, bool aEnabled)
void
Esta función habilita / deshabilita el servidor SRP.
otSrpServerSetLeaseConfig ( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
Esta función establece las configuraciones LEASE y KEY-LEASE del servidor SRP.
otSrpServerSetServiceUpdateHandler ( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
Esta función establece el controlador de actualizaciones del servicio SRP en el servidor SRP.

Estructuras

otSrpClientBuffersServiceEntry

Esta estructura representa una entrada de grupo de servicios de cliente de SRP.

otSrpClientHostInfo

Esta estructura representa la información del host del cliente SRP.

otSrpClientService

Esta estructura representa un servicio de cliente SRP.

otSrpServerLeaseConfig

Esta estructura incluye configuraciones de ARRENDAMIENTO de servidor SRP y ARRENDAMIENTO DE LLAVE.

Enumeraciones

enumeración anónima

 anonymous enum
Propiedades
OT_SRP_SERVER_SERVICE_FLAG_ACTIVE

Incluya servicios activos (no eliminados).

OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE

Incluya los servicios básicos (no un subtipo).

OT_SRP_SERVER_SERVICE_FLAG_DELETED

Incluir servicios eliminados.

OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE

Incluya servicios de subtipo.

enumeración anónima

 anonymous enum
Propiedades
OT_SRP_SERVER_FLAGS_ANY_SERVICE

Esta constante define un otSrpServerServiceFlags combinación de aceptar cualquier servicio (base / sub-tipo, / activo suprimido).

OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE

Esta constante define un otSrpServerServiceFlags combinación de aceptar cualquier servicio activo (no se elimina).

OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE

Esta constante define un otSrpServerServiceFlags combinación de aceptar cualquier servicio eliminado.

OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY

Esta constante define un otSrpServerServiceFlags combinación aceptar el servicio de base solamente.

OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY

Esta constante define un otSrpServerServiceFlags combinación aceptar el servicio sub-tipo solamente.

otSrpClientItemState

 otSrpClientItemState

Esta enumeración especifica el estado de un elemento de cliente de SRP (información de servicio o de host).

Propiedades
OT_SRP_CLIENT_ITEM_STATE_ADDING

Se está agregando / registrando el artículo.

OT_SRP_CLIENT_ITEM_STATE_REFRESHING

El artículo se está actualizando.

OT_SRP_CLIENT_ITEM_STATE_REGISTERED

El artículo está registrado en el servidor.

OT_SRP_CLIENT_ITEM_STATE_REMOVED

Se quita el artículo.

OT_SRP_CLIENT_ITEM_STATE_REMOVING

Se está quitando el artículo.

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

Artículo para agregar / registrar.

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

Artículo que se actualizará (vuelva a registrarse para renovar el contrato de arrendamiento).

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

Elemento que se eliminará.

otSrpServerAddressMode

 otSrpServerAddressMode

Esta enumeración representa el modo de dirección utilizado por el servidor SRP.

El modo de dirección especifica cómo el servidor SRP determina la dirección y el número de puerto y cómo se publica esta información en Thread Network Data.

Propiedades
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST

Modo de dirección Anycast.

OT_SRP_SERVER_ADDRESS_MODE_UNICAST

Modo de dirección unidifusión.

otSrpServerState

 otSrpServerState

Representa el estado de un servidor SRP.

Propiedades
OT_SRP_SERVER_STATE_DISABLED

El servidor SRP está desactivado.

OT_SRP_SERVER_STATE_RUNNING

El servidor SRP se está ejecutando.

OT_SRP_SERVER_STATE_STOPPED

El servidor SRP está detenido.

Typedefs

otSrpClientAutoStartCallback

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

Este tipo de puntero de función define la devolución de llamada utilizada por el cliente SRP para notificar al usuario cuando se inicia o se detiene automáticamente.

Esto sólo se utiliza cuando la función de inicio automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está activado.

Esta devolución de llamada se invoca cuando el modo de inicio automático está habilitado y el cliente SRP se inicia o detiene automáticamente.

Detalles
Parámetros
[in] aServerSockAddress
Un puntero no NULL indica que se inició el servidor SRP y el puntero dará la dirección del socket del servidor seleccionado. Un puntero NULL indica que el servidor SRP se detuvo.
[in] aContext
Un puntero a un contexto arbitrario (proporcionado cuando se registró la devolución de llamada).

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

Esta estructura representa una entrada de grupo de servicios de cliente de SRP.

otSrpClientCallback

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

Este tipo de puntero de función define la devolución de llamada utilizada por el cliente SRP para notificar al usuario de cambios / eventos / errores.

Esta devolución de llamada se invoca en un registro exitoso de una actualización (es decir, agregar / eliminar información de host y / o algunos servicios) con el servidor SRP, o si hay una falla o error (por ejemplo, el servidor rechaza una actualización la solicitud o el cliente agota el tiempo de espera de respuesta, etc.).

En caso de un nuevo registro con éxito de una actualización, aError parámetro sería OT_ERROR_NONE y la información de host y la lista completa de los servicios se proporcionan como parámetros de entrada a la devolución de llamada. Nótese que información y servicios anfitrión cada pista su propio estado en el correspondiente mState variable miembro de la estructura de datos relacionado (el estado que indica si el host-info / servicio se ha registrado o retirado o todavía ser añadido / eliminado, etc).

La lista de servicios retirados se pasa como sus propios lista enlazada aRemovedServices en la devolución de llamada. Tenga en cuenta que cuando se invoca la devolución de llamada, el cliente de SRP (aplicación OpenThread) se realiza con los casos extraídos de servicios que figuran en aRemovedServices y no hay pistas más largas / tiendas de ellos (es decir, si es de la devolución de llamada que llamamos otSrpClientGetServices() los servicios eliminados no será presente en la lista devuelta). Proporcionar una lista separada de servicios eliminados en la devolución de llamada ayuda a indicar al usuario qué elementos se eliminan ahora y permite al usuario volver a reclamar / reutilizar las instancias.

Si el servidor rechaza una solicitud de actualización de SRP, el código de respuesta de DNS (RFC 2136) se asigna a los siguientes errores:

  • (0) NOERROR Correcto (sin condición de error) -> OT_ERROR_NONE
  • (1) El servidor FORMERR no puede interpretar debido a un error de formato -> OT_ERROR_PARSE
  • (2) El servidor SERVFAIL encontró una falla interna -> OT_ERROR_FAILED
  • (3) NXDOMAIN Nombre que debería existir, no existe -> OT_ERROR_NOT_FOUND
  • (4) El servidor NOTIMP no admite el tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) RECHAZADO Servidor rechazado por motivos de política / seguridad -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Algún nombre que no debería existir, existe -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Algún RRset que no debería existir, existe -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Algún RRset que debería existir, no existe -> OT_ERROR_NOT_FOUND
  • (9) NOTAUTH El servicio no está autorizado para la zona -> OT_ERROR_SECURITY
  • (10) NOTZONE Un nombre no está en la zona -> OT_ERROR_PARSE
  • (20) BADNAME Mal nombre -> OT_ERROR_PARSE
  • (21) BADALG Mal algoritmo -> OT_ERROR_SECURITY
  • (22) BADTRUN Truncamiento incorrecto -> OT_ERROR_PARSE
  • Otros códigos de respuesta -> OT_ERROR_FAILED

También son posibles los siguientes errores:

  • OT_ERROR_RESPONSE_TIMEOUT: Se agotó el tiempo de espera para la respuesta del servidor (el cliente continuaría reintentando).
  • OT_ERROR_INVALID_ARGS: La estructura de servicio proporcionado no es válido (por ejemplo, el nombre del servicio o mala otDnsTxtEntry ).
  • OT_ERROR_NO_BUFS: Búfer insuficiente para preparar o enviar el mensaje de actualización.

Tenga en cuenta que en caso de cualquier falla, el cliente continúa la operación, es decir, prepara y (re) transmite el mensaje de actualización de SRP al servidor, después de un intervalo de espera. El reintento esperar aperturas intervalo desde el valor mínimo y se incrementa por el factor de crecimiento de cada fracaso hasta el valor máximo (por favor ver la configuración de parámetros OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL y los relacionados para más detalles).

Detalles
Parámetros
[in] aError
El error (ver arriba).
[in] aHostInfo
Un puntero para alojar información.
[in] aService
El encabezado de la lista vinculada que contiene todos los servicios (excepto los eliminados). NULL si la lista está vacía.
[in] aRemovedServices
El encabezado de la lista vinculada que contiene todos los servicios eliminados. NULL si la lista está vacía.
[in] aContext
Un puntero a un contexto arbitrario (proporcionado cuando se registró la devolución de llamada).

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

Esta estructura representa la información del host del cliente SRP.

otSrpClientService

struct otSrpClientService otSrpClientService

Esta estructura representa un servicio de cliente SRP.

Los valores de esta estructura, incluyendo las memorias intermedias de cadena para los nombres y las entradas de registro TXT, deben persistir y estancia constante después de una instancia de esta estructura se pasa a OpenThread de otSrpClientAddService() o otSrpClientRemoveService() .

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

Esta enumeración representa el modo de dirección utilizado por el servidor SRP.

El modo de dirección especifica cómo el servidor SRP determina la dirección y el número de puerto y cómo se publica esta información en Thread Network Data.

otSrpServerHost

struct otSrpServerHost otSrpServerHost

Este tipo opaco representa un host de servicio SRP.

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

Esta estructura incluye configuraciones de ARRENDAMIENTO y ARRENDAMIENTO DE LLAVE del servidor SRP.

otSrpServerService

struct otSrpServerService otSrpServerService

Este tipo opaco representa un servicio SRP.

otSrpServerServiceFlags

uint8_t otSrpServerServiceFlags

El tipo de indicador de servicio para indicar qué servicios incluir o excluir al buscar (o iterar) en la lista de servicios SRP.

Esta es una combinación de indicadores de bits. Los bits indicadores específicos se definen en la enumeración OT_SRP_SERVER_FLAG_* .

otSrpServerServiceUpdateHandler

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

Esta función maneja las actualizaciones del servicio SRP.

El servidor SRP llama a esta función para notificar que se están actualizando un host SRP y posiblemente los servicios SRP. Es importante que las actualizaciones de SRP no están comprometidos hasta que el controlador devuelve el resultado llamando otSrpServerHandleServiceUpdateResult o el tiempo de espera después de aTimeout .

Un observador del servicio SRP siempre debe llamar a otSrpServerHandleServiceUpdateResult con el código de error OT_ERROR_NONE inmediatamente después de recibir los eventos de actualización.

Un manejador más genérico puede realizar validaciones en el host / servicios de SRP y rechazar las actualizaciones de SRP si falla alguna validación. Por ejemplo, un proxy de publicidad debe anunciar (o eliminar) el host y los servicios en un enlace con capacidad de multidifusión y devolver un código de error específico si se produce alguna falla.

Detalles
Parámetros
[in] aId
El ID de transacción de actualización del servicio. Este ID se debe pasar de vuelta con otSrpServerHandleServiceUpdateResult .
[in] aHost
Un puntero al objeto otSrpServerHost que contiene las actualizaciones de SRP. El controlador debe publicar / anular la publicación del host y cada servicio apunta a este host con las siguientes reglas:
  1. Si el host no se elimina (indicado por otSrpServerHostIsDeleted ), entonces debería ser publicado o actualiza con mDNS. De lo contrario, se debe anular la publicación del host (eliminar AAAA RR).
  2. Para cada punto de servicio a este host, se debe anular la publicación si se desea anular la publicación del host. De lo contrario, el controlador debe publicar o actualizar el servicio cuando no se elimina (indicado por otSrpServerServiceIsDeleted ) y ONU-publico cuando se suprime.
[in] aTimeout
El tiempo máximo en milisegundos para que el controlador procese el evento de servicio.
[in] aContext
Un puntero al contexto específico de la aplicación.
Ver también:
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId

uint32_t otSrpServerServiceUpdateId

El ID de una transacción de actualización del servicio SRP en el servidor SRP.

Funciones

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Esta función agrega un servicio para ser registrado con el servidor.

Después de una llamada exitosa a esta función, otSrpClientCallback será llamado para reportar el estado de la adición de servicios / registro con el servidor SRP.

El otSrpClientService instancia que se está apuntado por aService deben persistir y permanecer sin cambios después de regresar de esta función (con OT_ERROR_NONE ). OpenThread guardará el puntero a la instancia del servicio.

El otSrpClientService instancia no está ya rastreado por OpenThread y se puede recuperar sólo cuando

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aService
Un puntero a una otSrpClientService ejemplo para agregar.
Valores devueltos
OT_ERROR_NONE
La adición del servicio se inició con éxito. El otSrpClientCallback será llamado para informar del estado.
OT_ERROR_ALREADY
Un servicio con el mismo servicio y los mismos nombres de instancia ya está en la lista.
OT_ERROR_INVALID_ARGS
La estructura de servicio no es válido (por ejemplo, el nombre del servicio o mala otDnsTxtEntry ).

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

Esta función asigna una nueva entrada de servicio del grupo.

La instancia de entrada de servicio devuelta se inicializará de la siguiente manera:

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
Un puntero a la entrada de servicio recién asignada o NULL si no hay más entradas disponibles en el grupo.

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

Esta función libera todas las entradas de servicio asignadas previamente.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

Esta función libera una entrada de servicio previamente asignada.

El aService deben asignarse previamente usando otSrpClientBuffersAllocateService() y aún no liberado. De lo contrario, el comportamiento de esta función no está definido.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aService
Un puntero a la entrada de servicio para liberar (NO DEBE ser NULO).

otSrpClientBuffersGetHostAddressesArray

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

Esta función obtiene la matriz de entradas de direcciones IPv6 para usar como lista de direcciones de host del cliente SRP.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[out] aArrayLength
Puntero a una variable para devolver la longitud de la matriz, es decir, el número de entradas de dirección IPv6 en la matriz (NO DEBE ser NULL).
Devoluciones
Un puntero a una matriz de otIp6Address entradas (número de entradas se devuelve en aArrayLength ).

otSrpClientBuffersGetHostNameString

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

Esta función obtiene el búfer de cadena que se utilizará para el nombre de host del cliente SRP.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[out] aSize
Puntero a una variable para devolver el tamaño (número de bytes) del búfer de cadena (NO DEBE ser NULL).
Devoluciones
Un puntero al búfer de caracteres que se utilizará para el nombre de host del cliente SRP.

otSrpClientBuffersGetServiceEntryInstanceNameString

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

Esta función obtiene el búfer de cadena para el nombre de la instancia de servicio de una entrada de servicio.

Detalles
Parámetros
[in] aEntry
Un puntero a una entrada de servicio previamente asignada (NO DEBE ser NULO).
[out] aSize
Un puntero a una variable para devolver el tamaño (número de bytes) del búfer de cadena (NO DEBE ser NULL).
Devoluciones
Un puntero al búfer de cadena.

otSrpClientBuffersGetServiceEntryServiceNameString

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

Esta función obtiene el búfer de cadena para el nombre del servicio de una entrada de servicio.

Detalles
Parámetros
[in] aEntry
Un puntero a una entrada de servicio previamente asignada (NO DEBE ser NULO).
[out] aSize
Un puntero a una variable para devolver el tamaño (número de bytes) del búfer de cadena (NO DEBE ser NULL).
Devoluciones
Un puntero al búfer de cadena.

otSrpClientBuffersGetServiceEntryTxtBuffer

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

Esta función obtiene el búfer para el registro TXT de una entrada de servicio.

Detalles
Parámetros
[in] aEntry
Un puntero a una entrada de servicio previamente asignada (NO DEBE ser NULO).
[out] aSize
Un puntero a una variable para devolver el tamaño (número de bytes) del búfer (NO DEBE ser NULO).
Devoluciones
Un puntero al búfer.

otSrpClientBuffersGetSubTypeLabelsArray

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

Esta función obtiene la matriz de etiquetas de subtipo de servicio de la entrada de servicio.

Detalles
Parámetros
[in] aEntry
Un puntero a una entrada de servicio previamente asignada (NO DEBE ser NULO).
[out] aArrayLength
Un puntero a una variable para devolver la longitud de la matriz (NO DEBE ser NULL).
Devoluciones
Un puntero a la matriz.

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

Esta función borra toda la información del host y todos los servicios.

A diferencia de otSrpClientRemoveHostAndServices() que envía un mensaje de actualización al servidor para eliminar toda la información, esta función borra toda la información de inmediato sin ningún tipo de interacción con el servidor.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Esta función borra un servicio, eliminándolo inmediatamente de la lista de servicios del cliente.

A diferencia de otSrpClientRemoveService() que envía un mensaje de actualización al servidor para quitar el servicio, esta función borra el servicio de lista de servicio del cliente sin ningún tipo de interacción con el servidor. En una llamada con éxito a esta función, el otSrpClientCallback no será llamado y el aService entrada puede ser recuperado y reutilizado por el llamador inmediato.

Esta función se puede utilizar junto con una llamada posterior a otSrpClientAddService() (potencialmente la reutilización de la misma aService entrada con el mismo servicio y nombres de instancia) para actualizar algunos de los parámetros en un servicio existente.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aService
Un puntero a una otSrpClientService ejemplo para borrar.
Valores devueltos
OT_ERROR_NONE
El aService se elimina correctamente. Puede recuperarse y reutilizarse inmediatamente.
OT_ERROR_NOT_FOUND
El servicio no se pudo encontrar en la lista.

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

Esta función desactiva el modo de inicio automático.

Esto sólo está disponible cuando la función de inicio automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está activado.

La desactivación del modo de inicio automático no detendrá al cliente si ya se está ejecutando, pero el cliente deja de monitorear los datos de la red de subprocesos para verificar que el servidor SRP seleccionado todavía está presente en él.

Tenga en cuenta que una llamada a otSrpClientStop() también desactivará el modo de inicio automático.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.

otSrpClientEnableAutoStartMode

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

Esta función habilita el modo de inicio automático.

Esto sólo está disponible cuando la función de inicio automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está activado.

Config opción OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE especifica el modo de auto-arranque por defecto (si está activado o desactivado en el inicio de pila OT).

Cuando el inicio automático está habilitado, el cliente SRP monitoreará los datos de la red de subprocesos para las entradas del servicio del servidor SRP e iniciará y detendrá automáticamente el cliente cuando se detecte un servidor SRP.

Si se encuentran varios servidores SRP, se seleccionará uno al azar. Si el servidor SRP seleccionado ya no se detecta (ya no está presente en Thread Network Data), el cliente SRP se detendrá y luego puede cambiar a otro servidor SRP (si está disponible).

Cuando el cliente de SRP se inicia de forma explícita a través de una llamada exitosa a otSrpClientStart() , la dirección del servidor SRP dada en otSrpClientStart() va a seguir utilizándose sin importar el estado del modo de inicio automático y si la misma dirección del servidor SRP se descubre o no en los datos de la red de subprocesos. En este caso, sólo una explícita otSrpClientStop() llamada se detendrá el cliente.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aCallback
Una devolución de llamada para notificar cuando el cliente se inicia / detiene automáticamente. Puede ser NULO si no es necesario.
[in] aContext
Un contexto que se pasa al invocar aCallback .

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

Esta función obtiene el nombre de dominio que utiliza el cliente SRP.

Esta función requiere OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE esté habilitado.

Si no se establece el nombre de dominio, se utilizará "default.service.arpa".

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
La cadena del nombre de dominio.

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

Esta función obtiene la información del host.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
Un puntero para alojar la estructura de información.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

Esta función obtiene el intervalo de concesión de claves que se utiliza en las solicitudes de actualización de SRP.

Tenga en cuenta que esta es la duración de la concesión solicitada por el cliente de SRP. El servidor puede optar por aceptar un intervalo de arrendamiento diferente.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
El intervalo de arrendamiento de la clave (en segundos).

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

Esta función obtiene el intervalo de concesión utilizado en las solicitudes de actualización de SRP.

Tenga en cuenta que esta es la duración de la concesión solicitada por el cliente de SRP. El servidor puede optar por aceptar un intervalo de arrendamiento diferente.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
El intervalo de arrendamiento (en segundos).

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

Esta función obtiene la dirección de socket (dirección IPv6 y número de puerto) del servidor SRP que está siendo utilizado por el cliente SRP.

Si el cliente no se está ejecutando, la dirección no se especifica (todo cero) con un número de puerto cero.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
Un puntero a la dirección de socket del servidor SRP (siempre no es NULL).

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

Esta función obtiene la lista de servicios gestionados por el cliente.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
Un puntero al encabezado de la lista vinculada de todos los servicios o NULL si la lista está vacía.

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

Esta función indica el estado actual del modo de inicio automático (habilitado o deshabilitado).

Esto sólo está disponible cuando la función de inicio automático OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE está activado.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
VERDADERO si el modo de inicio automático está habilitado, FALSO en caso contrario.

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

Esta función indica si el cliente SRP se está ejecutando o no.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
VERDADERO si el cliente SRP se está ejecutando, FALSO en caso contrario.

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

Este método indica si el modo "inclusión de registro de clave de servicio" está habilitado o deshabilitado.

Esta función está disponible cuando OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE se habilita la configuración.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
Devoluciones
VERDADERO si el modo "inclusión de registro de clave de servicio" está habilitado, FALSO en caso contrario.

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Esta función convierte un otSrpClientItemState en una cadena.

Detalles
Parámetros
[in] aItemState
Un estado de artículo.
Devoluciones
Una representación de cadena de aItemState .

otSrpClientRemoveHostAndServices

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

Esta función inicia el proceso de eliminación de la información del host y todos los servicios.

Después de regresar de esta función, otSrpClientCallback será llamado para informar del estado de la solicitud de eliminación con el servidor SRP.

Si la información de host debe ser eliminado de forma permanente desde el servidor, aRemoveKeyLease debe establecerse en true que elimina el contrato de arrendamiento clave asociada con el anfitrión en el servidor. De lo contrario, el registro de arrendamiento de claves se mantiene como antes, lo que garantiza que el servidor mantenga el nombre de host en reserva para cuando el cliente pueda volver a proporcionar y registrar su (s) servicio (s).

El aSendUnregToServer determina el comportamiento cuando la información de host aún no se ha registrado en el servidor. Si aSendUnregToServer se establece en false (que es el / valor esperado por defecto), entonces el cliente de SRP retirará de inmediato el información y servicios de host sin necesidad de enviar un mensaje de actualización al servidor (no hay necesidad de actualizar el servidor si aún no hay nada registrado en él). Si aSendUnregToServer se establece en true entonces el cliente de SRP enviará un mensaje de actualización al servidor. Tenga en cuenta que si la información de host se registra entonces el valor de aSendUnregToServer no importa y el cliente de SRP siempre enviará un mensaje de actualización al servidor que solicita la eliminación de toda la información.

Una situación en la que aSendUnregToServer puede ser útil es en el reinicio del aparato / reinicio, la persona que llama lo desea, puede eliminar cualquiera de los servicios previamente registrados en el servidor. En este caso, la persona que llama puede otSrpClientSetHostName() y luego solicitar otSrpClientRemoveHostAndServices() con aSendUnregToServer como true .

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aRemoveKeyLease
Un booleano que indica si la concesión de la clave del host también debe eliminarse.
[in] aSendUnregToServer
Un booleano que indica si se debe enviar una actualización al servidor cuando la información del host no está registrada.
Valores devueltos
OT_ERROR_NONE
La eliminación de la información y los servicios del host se inició correctamente. El otSrpClientCallback será llamado para informar del estado.
OT_ERROR_ALREADY
La información del host ya se eliminó.

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Esta función solicita que se anule el registro de un servicio con el servidor.

Después de una llamada exitosa a esta función, otSrpClientCallback será llamado para informar del estado de la solicitud de eliminación con el servidor SRP.

El otSrpClientService instancia que se está apuntado por aService deben persistir y permanecer sin cambios después de regresar de esta función (con OT_ERROR_NONE ). OpenThread mantendrá la instancia del servicio durante el proceso de eliminación. Sólo después de la otSrpClientCallback se llama lo que indica la instancia de servicio se elimina de la lista de servicio al cliente de SRP y pueden ser liberados / reutilizada.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aService
Un puntero a una otSrpClientService ejemplo para eliminar.
Valores devueltos
OT_ERROR_NONE
La eliminación del servicio se inició con éxito. El otSrpClientCallback será llamado para informar del estado.
OT_ERROR_NOT_FOUND
El servicio no se pudo encontrar en la lista.

otSrpClientSetCallback

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

Esta función establece la devolución de llamada para notificar a la persona que llama sobre eventos / cambios del cliente SRP.

El cliente SRP permite registrar una única devolución de llamada. Por lo tanto, las llamadas consecutivas a esta función sobrescribirán cualquier función de devolución de llamada configurada previamente.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aCallback
La devolución de llamada para notificar eventos y cambios. Puede ser NULO si no es necesario.
[in] aContext
Un contexto arbitrario utilizado con aCallback .

otSrpClientSetDomainName

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

Esta función establece el nombre de dominio que utilizará el cliente SRP.

Esta función requiere OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE esté habilitado.

Si no se establece, se utilizará "default.service.arpa".

El búfer de nombres de cadena apuntada por aName deben persistir y permanecer sin cambios después de regresar de esta función. OpenThread mantendrá el puntero a la cadena.

El nombre de dominio se puede configurar antes de que se inicie el cliente o después de la salida, pero antes de información de hospedaje se ha registrado en el servidor (información de host debe estar en cualquiera STATE_TO_ADD o STATE_TO_REMOVE ).

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aName
Un puntero a la cadena del nombre de dominio. Si NULL lo establece en "default.service.arpa" por defecto.
Valores devueltos
OT_ERROR_NONE
La etiqueta del nombre de dominio se estableció correctamente.
OT_ERROR_INVALID_STATE
La información del host ya está registrada en el servidor.

otSrpClientSetHostAddresses

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

Esta función establece / actualiza la lista de direcciones IPv6 del host.

Las direcciones IPv6 del host se pueden configurar / cambiar antes del inicio o durante la operación del cliente SRP (por ejemplo, para agregar / eliminar o cambiar una dirección de host registrada previamente), excepto cuando se está eliminando la información del host (el cliente está ocupado manejando una solicitud de eliminación de una llamada a otSrpClientRemoveHostAndServices() y la información de host sigue siendo en cualquier STATE_TO_REMOVE o STATE_REMOVING Unidos).

El IPv6 array dirección de host apuntado por aAddresses deben persistir y permanecer sin cambios después de regresar de esta función (con OT_ERROR_NONE ). OpenThread guardará el puntero en la matriz.

Después de una llamada exitosa a esta función, otSrpClientCallback será llamado para reportar el estado del registro de direcciones con el servidor SRP.

Detalles
Parámetros
[in] aInstance
Un puntero a la instancia de OpenThread.
[in] aAddresses
Un puntero a una matriz que contiene las direcciones IPv6 del host.
[in] aNumAddresses
El número de direcciones en el aAddresses matriz.
Valores devueltos
OT_ERROR_NONE
El cambio de la lista de direcciones IPv6 del host se inició correctamente. El otSrpClientCallback será llamado para reportar el estado del registro de direcciones con el servidor.
OT_ERROR_INVALID_ARGS
La lista de direcciones no es válida (por ejemplo, debe contener al menos una dirección).
OT_ERROR_INVALID_STATE
El host se está eliminando y, por lo tanto, no se puede cambiar la dirección del 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.