DNS
Ce module comprend des fonctions qui contrôlent la communication DNS.
Résumé
Les fonctions de ce module ne sont disponibles que si la fonctionnalité OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
est activée.
Énumérations |
|
---|---|
otDnsNat64Mode{
|
enum Le type représente le mode NAT64 dans un otDnsQueryConfig . |
otDnsRecursionFlag{
|
enum Le type correspond à l'indicateur "Recursion Desired" (RD) dans un élément otDnsQueryConfig . |
otDnsServiceMode{
|
enum "type" représente le mode de résolution du service dans un otDnsQueryConfig . |
otDnsTransportProto{
|
enum Le type représente le protocole de transport DNS dans une otDnsQueryConfig . |
Typedefs |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
Le pointeur est appelé lorsqu'une réponse DNS est reçue pour une requête de résolution d'adresse. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Représentation opaque d'une réponse à une requête DNS de résolution d'adresse. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Le pointeur est appelé lorsqu'une réponse DNS est reçue pour une requête de navigation (énumération d'instances de service). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Représentation opaque d'une réponse à une requête DNS de navigation (énumération d'instances de service). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Représente une configuration de requête DNS. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
Le pointeur est appelé lorsqu'une réponse DNS est reçue pour une requête de résolution d'instance de service. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Fournit des informations sur une instance de service DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Représentation opaque d'une réponse à une requête DNS de résolution d'instance de service. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Représente une entrée d'enregistrement TXT représentant une paire clé/valeur (RFC 6763, section 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
Représente un itérateur pour les entrées d'enregistrement TXT (paires clé/valeur). |
distantes |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Récupère une adresse IPv6 associée à une réponse DNS de résolution d'adresses.
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Récupère le nom d'hôte complet associé à une réponse DNS de résolution d'adresses.
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Récupère l'adresse IPv6 de l'hôte à partir d'une réponse de navigation DNS (énumération d'instances de service).
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
Récupère des informations sur une instance de service à partir d'une réponse de navigation DNS (énumération d'instances de service).
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
Récupère une instance de service associée à une réponse de navigation DNS (énumération d'instances de service).
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Récupère le nom du service associé à une réponse de navigation DNS (énumération d'instances de service).
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Envoie une requête de navigation DNS (énumération d'instances de service) pour un nom de service donné.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
Récupère la configuration de requête par défaut actuelle utilisée par le client DNS.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Envoie une requête DNS de résolution d'adresses pour les enregistrements AAAA (IPv6) pour un nom d'hôte donné.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Envoie une requête DNS de résolution d'adresses pour un ou plusieurs enregistrements A (IPv4) pour un nom d'hôte donné.
|
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Démarre la résolution d'une instance de service DNS pour une instance de service donnée.
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Démarre la résolution d'une instance de service DNS pour une instance de service donnée, avec une résolution d'adresse de suivi potentielle pour le nom d'hôte découvert pour l'instance de service.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
Définit la configuration de requête par défaut sur le client DNS.
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
Encode une liste donnée d'entrées d'enregistrement TXT (paires clé/valeur) en données TXT (au format spécifié par le document RFC 6763).
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
Analyse les données TXT d'un itérateur et obtient l'entrée d'enregistrement TXT suivante (paire clé/valeur).
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Initialise un itérateur d'enregistrement TXT.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Indique si le mode "Compression de noms DNS" est activé ou non.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Récupère l'adresse IPv6 de l'hôte à partir d'une réponse de résolution d'instance de service DNS.
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
Récupère des informations sur une instance de service à partir d'une réponse de résolution d'instance de service DNS.
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
Récupère le nom d'instance de service associé à une réponse de résolution d'instance de service DNS.
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
Active/désactive le mode "Compression de noms DNS".
|
Structs |
|
---|---|
otDnsQueryConfig |
Représente une configuration de requête DNS. |
otDnsServiceInfo |
Fournit des informations sur une instance de service DNS. |
otDnsTxtEntry |
Représente une entrée d'enregistrement TXT représentant une paire clé/valeur (RFC 6763, section 6.3). |
otDnsTxtEntryIterator |
Représente un itérateur pour les entrées d'enregistrement TXT (paires clé/valeur). |
Énumérations
otDnsNat64Mode
otDnsNat64Mode
Le type représente le mode NAT64 dans un otDnsQueryConfig
.
Le mode NAT64 indique s'il faut autoriser ou interdire la traduction d'adresse NAT64 lors de la résolution des adresses client DNS. Ce mode n'est utilisé que lorsque OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
est activé.
Propriétés | |
---|---|
OT_DNS_NAT64_ALLOW
|
Autorise la traduction d'adresse NAT64 lors de la résolution des adresses client DNS. |
OT_DNS_NAT64_DISALLOW
|
N'autorisez pas la traduction d'adresse NAT64 pendant la résolution des adresses client DNS. |
OT_DNS_NAT64_UNSPECIFIED
|
Le mode NAT64 n'est pas spécifié. Utiliser le mode NAT64 par défaut |
otDnsRecursionFlag
otDnsRecursionFlag
Le type correspond à l'indicateur "Recursion Desired" (RD) dans un élément otDnsQueryConfig
.
Propriétés | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
Indique que le serveur de noms DNS ne peut pas résoudre la requête de manière récursive. |
OT_DNS_FLAG_RECURSION_DESIRED
|
Indique que le serveur de noms DNS peut résoudre la requête de manière récursive. |
OT_DNS_FLAG_UNSPECIFIED
|
Indique que l'indicateur n'est pas spécifié. |
otDnsServiceMode
otDnsServiceMode
"type" représente le mode de résolution du service dans un otDnsQueryConfig
.
Il n'est utilisé que lors de la résolution du service client DNS otDnsClientResolveService()
. Elle détermine les types d'enregistrements à interroger.
Propriétés | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Requête pour l'enregistrement SRV uniquement. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Interrogez les enregistrements SRV et TXT dans le même message. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Lancez d'abord une requête pour TXT/SRV. En cas d'échec, exécutez une requête distincte. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Interrogez en parallèle SRV et TXT à l'aide de messages distincts. |
OT_DNS_SERVICE_MODE_TXT
|
Requête pour l'enregistrement TXT uniquement. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
Le mode n'est pas spécifié. Utiliser le mode de service par défaut |
otDnsTransportProto
otDnsTransportProto
Le type représente le protocole de transport DNS dans une otDnsQueryConfig
.
Ce OT_DNS_TRANSPORT_TCP
n'est pris en charge que lorsque OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
est activé.
Propriétés | |
---|---|
OT_DNS_TRANSPORT_TCP
|
La requête DNS doit être envoyée via UDP. |
OT_DNS_TRANSPORT_UDP
|
Le transport DNS n'est pas spécifié. |
Typedefs
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Le pointeur est appelé lorsqu'une réponse DNS est reçue pour une requête de résolution d'adresse.
Dans ce rappel, l'utilisateur peut utiliser les fonctions otDnsAddressResponseGet{Item}()
avec le pointeur aResponse
pour obtenir plus d'informations sur la réponse.
Le pointeur aResponse
ne peut être utilisé que dans ce rappel. Après le renvoi de cette fonction, il ne restera pas valide. L'utilisateur NE DOIT PAS conserver le pointeur aResponse
pour une utilisation ultérieure.
Le aError
peut avoir les caractéristiques suivantes:
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
- OT_ERROR_NONE Une réponse a été reçue.
- OT_ERROR_ABORT Une transaction DNS a été annulée par la pile.
- OT_ERROR_response_TIMEOUT Aucune réponse DNS n'a été reçue dans le délai imparti.
Si le serveur refuse la demande de résolution d'adresse, le code d'erreur du serveur est mappé comme suit:
- (0) NOERROR Réussite (aucune condition d'erreur) -> OT_ERROR_NONE
- (1) FORMERR impossible d'interpréter le serveur en raison d'une erreur de format -> OT_ERROR_PARSE
- (2) Une défaillance interne du serveur SERVFAIL s'est produite -> OT_ERROR_FAILED
- (3) Le nom NXDOMAIN qui devrait exister n'existe pas -> OT_ERROR_NOT_FOUND
- (4) Le serveur NOTIMP ne prend pas en charge le type de requête (OpCode) -> OT_ERROR_NOT_IMPLEMENTED.
- (5) Refus du serveur REFused pour des raisons de sécurité/règles -> OT_ERROR_ACTIVITY
- (6) YXDOMAIN Un nom qui ne devrait pas exister existe bien -> OT_ERROR_DUPLICATED
- (7) YXRRSET Certains RRset qui ne devraient pas exister existent -> OT_ERROR_DUPLICATED.
- (8) NXRRSET Un RRset qui devrait exister n'existe pas -> OT_ERROR_NOT_FOUND
- (9) Le service NOTAUTH ne fait pas autorité pour la zone -> OT_ERROR_ security
- (10) NOTZONE Le nom ne se trouve pas dans la zone -> OT_ERROR_PARSE.
- (20) BADNAME Nom incorrect -> OT_ERROR_PARSE
- (21) BADALG Algorithme incorrect -> OT_ERROR_ security
- (22) BADTRUN Troncation incorrecte -> OT_ERROR_PARSE
- Autres codes de réponse -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Représentation opaque d'une réponse à une requête DNS de résolution d'adresse.
Les pointeurs vers une instance de ce type sont fournis à partir du rappel otDnsAddressCallback
.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
Le pointeur est appelé lorsqu'une réponse DNS est reçue pour une requête de navigation (énumération d'instances de service).
Dans ce rappel, l'utilisateur peut utiliser les fonctions otDnsBrowseResponseGet{Item}()
avec le pointeur aResponse
pour obtenir plus d'informations sur la réponse.
Le pointeur aResponse
ne peut être utilisé que dans ce rappel. Après le renvoi de cette fonction, il ne restera pas valide. L'utilisateur NE DOIT PAS conserver le pointeur aResponse
pour une utilisation ultérieure.
Pour obtenir la liste complète des valeurs possibles pour aError
, veuillez consulter otDnsAddressCallback()
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Représentation opaque d'une réponse à une requête DNS de navigation (énumération d'instances de service).
Les pointeurs vers une instance de ce type sont fournis à partir du rappel otDnsBrowseCallback
.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Représente une configuration de requête DNS.
Tous les champs de cette structure peuvent être définis sur zéro pour indiquer qu'il n'est pas spécifié. Le mode de traitement des champs non spécifiés est déterminé par la fonction qui utilise l'instance de otDnsQueryConfig
.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
Le pointeur est appelé lorsqu'une réponse DNS est reçue pour une requête de résolution d'instance de service.
Dans ce rappel, l'utilisateur peut utiliser les fonctions otDnsServiceResponseGet{Item}()
avec le pointeur aResponse
pour obtenir plus d'informations sur la réponse.
Le pointeur aResponse
ne peut être utilisé que dans ce rappel. Après le renvoi de cette fonction, il ne restera pas valide. L'utilisateur NE DOIT PAS conserver le pointeur aResponse
pour une utilisation ultérieure.
Pour obtenir la liste complète des valeurs possibles pour aError
, veuillez consulter otDnsAddressCallback()
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Fournit des informations sur une instance de service DNS.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Représentation opaque d'une réponse à une requête DNS de résolution d'instance de service.
Les pointeurs vers une instance de ce type sont fournis à partir du rappel otDnsAddressCallback
.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
Représente une entrée d'enregistrement TXT représentant une paire clé/valeur (RFC 6763, section 6.3).
Les tampons de chaîne pointant vers mKey
et mValue
DOIVENT conserver et rester inchangés après qu'une instance de cette structure est transmise à OpenThread (dans le cadre de l'instance otSrpClientService
).
Un tableau d'entrées otDnsTxtEntry
est utilisé dans otSrpClientService
pour spécifier l'enregistrement TXT complet (liste d'entrées).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Représente un itérateur pour les entrées d'enregistrement TXT (paires clé/valeur).
Les champs de données de cette structure sont destinés à être utilisés par le noyau OpenThread et l'appelant ne doit pas les lire ni les modifier.
distantes
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Récupère une adresse IPv6 associée à une réponse DNS de résolution d'adresses.
DOIT être utilisé uniquement à partir du otDnsAddressCallback
.
La réponse peut inclure plusieurs enregistrements d'adresses IPv6. aIndex
permet d'itérer la liste d'adresses. L'index zéro obtient la première adresse et ainsi de suite. Lorsque la liste est terminée, OT_ERROR_NOT_FOUND
est renvoyé.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Récupère le nom d'hôte complet associé à une réponse DNS de résolution d'adresses.
DOIT être utilisé uniquement à partir du otDnsAddressCallback
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Récupère l'adresse IPv6 de l'hôte à partir d'une réponse de navigation DNS (énumération d'instances de service).
DOIT être utilisé uniquement à partir du otDnsBrowseCallback
.
La réponse peut inclure zéro ou plusieurs enregistrements d'adresse IPv6. aIndex
permet d'itérer la liste d'adresses. L'index zéro obtient la première adresse et ainsi de suite. Lorsque la liste est terminée, OT_ERROR_NOT_FOUND
est renvoyé.
Détails | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||
Valeurs de retour |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
Récupère des informations sur une instance de service à partir d'une réponse de navigation DNS (énumération d'instances de service).
DOIT être utilisé uniquement à partir du otDnsBrowseCallback
.
Une réponse DNS de navigation peut inclure des enregistrements SRV, TXT et AAAA pour les instances de service énumérées. Cette condition est OBLIGATOIRE et n'est pas OBLIGATOIRE. Les serveurs/résolveurs ne sont pas tenus de fournir cette information. Cette fonction tente de récupérer ces informations pour une instance de service donnée lorsqu'elles sont disponibles.
- Si aucun enregistrement SRV correspondant n'est trouvé dans
aResponse
,OT_ERROR_NOT_FOUND
est renvoyé. Dans ce cas, aucun enregistrement supplémentaire (pas de TXT ni de AAAA) n'est lu. - Si un enregistrement SRV correspondant est trouvé dans
aResponse
,aServiceInfo
est mis à jour etOT_ERROR_NONE
est renvoyé. - Si aucun enregistrement TXT correspondant n'est trouvé dans
aResponse
,mTxtDataSize
dansaServiceInfo
est défini sur zéro. - Si la longueur des données TXT est supérieure à
mTxtDataSize
, elles sont lues partiellement etmTxtDataTruncated
est défini sur "true". - Si aucun enregistrement AAAA correspondant n'est trouvé dans
aResponse
,mHostAddress is set to all zero or unspecified address.
If there are multiple AAAA records for the host name in @p aResponse,
mHostAddressis set to the first one. The other addresses can be retrieved using
otDnsBrowseResponseGetHostAddress().
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
Récupère une instance de service associée à une réponse de navigation DNS (énumération d'instances de service).
DOIT être utilisé uniquement à partir du otDnsBrowseCallback
.
La réponse peut inclure plusieurs enregistrements d'instances de service. aIndex
permet d'itérer la liste. L'indice 0 correspond au premier enregistrement. Lorsque la liste est terminée, OT_ERROR_NOT_FOUND
est renvoyé.
Notez que cette fonction obtient le libellé de l'instance de service et non le nom complet de l'instance de service au format
.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Récupère le nom du service associé à une réponse de navigation DNS (énumération d'instances de service).
DOIT être utilisé uniquement à partir du otDnsBrowseCallback
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envoie une requête de navigation DNS (énumération d'instances de service) pour un nom de service donné.
Disponible lorsque OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
est activé.
La valeur aConfig
peut être NULL. Dans ce cas, la configuration par défaut (de otDnsClientGetDefaultConfig()
) sera utilisée comme configuration pour cette requête. Dans une valeur aConfig
non NULL, certains champs peuvent ne pas être spécifiés (valeur zéro). Les champs non spécifiés sont ensuite remplacés par les valeurs de la configuration par défaut.
Détails | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||
Valeurs de retour |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
Récupère la configuration de requête par défaut actuelle utilisée par le client DNS.
Lorsque la pile OpenThread démarre, la configuration de la requête DNS par défaut est déterminée à partir d'un ensemble d'options de configuration OT telles que OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
, etc. (voir config/dns_client.h
pour toutes les options de configuration associées).
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
Pointeur vers la configuration par défaut actuelle utilisée par le client DNS.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envoie une requête DNS de résolution d'adresses pour les enregistrements AAAA (IPv6) pour un nom d'hôte donné.
La valeur aConfig
peut être NULL. Dans ce cas, la configuration par défaut (de otDnsClientGetDefaultConfig()
) sera utilisée comme configuration pour cette requête. Dans une valeur aConfig
non NULL, certains champs peuvent ne pas être spécifiés (valeur zéro). Les champs non spécifiés sont ensuite remplacés par les valeurs de la configuration par défaut.
Détails | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||
Valeurs de retour |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envoie une requête DNS de résolution d'adresses pour un ou plusieurs enregistrements A (IPv4) pour un nom d'hôte donné.
Nécessite et est disponible lorsque OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
est activé.
Lorsqu'une réponse positive est reçue, les adresses sont renvoyées par aCallback
en tant que versions traduites par IPv6 NAT64 des adresses IPv4 de la réponse à la requête.
La valeur aConfig
peut être NULL. Dans ce cas, la configuration par défaut (de otDnsClientGetDefaultConfig()
) sera utilisée comme configuration pour cette requête. Dans une valeur aConfig
non NULL, certains champs peuvent ne pas être spécifiés (valeur zéro). Les champs non spécifiés sont ensuite remplacés par les valeurs de la configuration par défaut.
Détails | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||
Valeurs de retour |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Démarre la résolution d'une instance de service DNS pour une instance de service donnée.
Disponible lorsque OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
est activé.
La valeur aConfig
peut être NULL. Dans ce cas, la configuration par défaut (de otDnsClientGetDefaultConfig()
) sera utilisée comme configuration pour cette requête. Dans une valeur aConfig
non NULL, certains champs peuvent ne pas être spécifiés (valeur zéro). Les champs non spécifiés sont ensuite remplacés par les valeurs de la configuration par défaut.
La fonction envoie des requêtes sur les enregistrements SRV et/ou TXT pour l'instance de service donnée. Le champ mServiceMode
de otDnsQueryConfig
détermine les enregistrements à interroger (SRV uniquement, TXT uniquement ou les deux) et le mode d'exécution de la requête (ensemble dans le même message, séparément en parallèle, ou en mode optimisé, où le client essaiera d'abord le même message, puis séparément s'il ne reçoit pas de réponse).
L'enregistrement SRV fournit des informations sur le port de service, la priorité et le poids, ainsi que le nom d'hôte associé à l'instance de service. Cette fonction n'effectue PAS de résolution d'adresse pour le nom d'hôte découvert à partir de l'enregistrement SRV. Le serveur/résolveur peut fournir un ou plusieurs enregistrements AAAA/A pour le nom d'hôte dans la section "Additional Data" (Données supplémentaires) de la réponse à la requête SRV/TXT. Ces informations peuvent être récupérées à l'aide de otDnsServiceResponseGetServiceInfo()
dans otDnsServiceCallback
. Les utilisateurs de cette API NE DOIVENT PAS supposer que l'adresse hôte sera toujours disponible à partir de otDnsServiceResponseGetServiceInfo()
.
Détails | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||||
Valeurs de retour |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Démarre la résolution d'une instance de service DNS pour une instance de service donnée, avec une résolution d'adresse de suivi potentielle pour le nom d'hôte découvert pour l'instance de service.
Disponible lorsque OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
est activé.
La valeur aConfig
peut être NULL. Dans ce cas, la configuration par défaut (de otDnsClientGetDefaultConfig()
) sera utilisée comme configuration pour cette requête. Dans une valeur aConfig
non NULL, certains champs peuvent ne pas être spécifiés (valeur zéro). Les champs non spécifiés sont ensuite remplacés par les valeurs de la configuration par défaut. Cette fonction ne peut pas être utilisée avec mServiceMode
dans la configuration DNS définie sur OT_DNS_SERVICE_MODE_TXT
(par exemple, en effectuant des requêtes sur l'enregistrement TXT uniquement) et elle renvoie OT_ERROR_INVALID_ARGS
.
Se comporte de la même manière que otDnsClientResolveService()
envoyant des requêtes pour les enregistrements SRV et TXT. Toutefois, si le serveur/résolveur ne fournit pas d'enregistrements AAAA/A pour le nom d'hôte dans la réponse à la requête SRV (dans la section Données supplémentaires), il effectue la résolution du nom d'hôte (en envoyant une requête AAAA) pour le nom d'hôte découvert à partir de l'enregistrement SRV. Le rappel aCallback
est appelé lorsque les réponses à toutes les requêtes sont reçues (c'est-à-dire que la résolution des adresses de service et d'hôte est terminée).
Détails | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||||
Valeurs de retour |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Définit la configuration de requête par défaut sur le client DNS.
La valeuraConfig
peut être NULL. Dans ce cas, la configuration par défaut sera définie sur les valeurs par défaut à partir des options de configuration de la prolongation OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
. Cela rétablit la configuration de requête par défaut au démarrage de la pile OpenThread.
Dans un aConfig
non NULL, l'appelant peut choisir de laisser certains champs de l'instance otDnsQueryConfig
non spécifiés (valeur zéro). Les champs non spécifiés sont remplacés par les définitions d'option de configuration OT correspondantes OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
pour former la configuration de requête par défaut.
Lorsque OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
est activé, l'adresse IPv6 du serveur dans la configuration par défaut est automatiquement définie et mise à jour par le client DNS. Cela se produit uniquement lorsque l'utilisateur ne le définit pas ou ne le spécifie pas explicitement. Ce comportement nécessite l'activation du client SRP et de sa fonctionnalité de démarrage automatique. Le client SRP surveillera ensuite les données réseau Thread pour rechercher les entrées du service DNS/SRP afin de sélectionner un serveur SRP. L'adresse du serveur SRP sélectionné est également définie comme adresse de serveur DNS dans la configuration par défaut.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
Encode une liste donnée d'entrées d'enregistrement TXT (paires clé/valeur) en données TXT (au format spécifié par le document RFC 6763).
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
Analyse les données TXT d'un itérateur et obtient l'entrée d'enregistrement TXT suivante (paire clé/valeur).
aIterator
DOIT être initialisé à l'aide de otDnsInitTxtEntryIterator()
avant d'appeler cette fonction, et le tampon de données TXT utilisé pour initialiser l'itérateur DOIT persister et rester inchangé. Sinon, le comportement de cette fonction n'est pas défini.
Si la longueur de la chaîne de clé analysée est inférieure ou égale à OT_DNS_TXT_KEY_ITER_MAX_LENGTH
, la chaîne de clé est renvoyée dans mKey
dans aEntry
. Toutefois, si la clé est plus longue, mKey
est défini sur NULL et l'intégralité de la chaîne d'entrée TXT encodée est renvoyée dans mValue
et mValueLength
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Initialise un itérateur d'enregistrement TXT.
Le pointeur de tampon aTxtData
et son contenu DOIVENT conserver et rester inchangés pendant l'utilisation de l'objet aIterator
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
Indique si le mode "Compression de noms DNS" est activé ou non.
Cette option est destinée aux tests uniquement et disponible lorsque la configuration OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
est activée.
Détails | |
---|---|
Renvoie |
TRUE si le mode "Compression de noms DNS" est activé, FALSE dans le cas contraire.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Récupère l'adresse IPv6 de l'hôte à partir d'une réponse de résolution d'instance de service DNS.
DOIT être utilisé uniquement à partir du otDnsServiceCallback
.
La réponse peut inclure zéro ou plusieurs enregistrements d'adresse IPv6. aIndex
permet d'itérer la liste d'adresses. L'index zéro obtient la première adresse et ainsi de suite. Lorsque la liste est terminée, OT_ERROR_NOT_FOUND
est renvoyé.
Détails | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||
Valeurs de retour |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
Récupère des informations sur une instance de service à partir d'une réponse de résolution d'instance de service DNS.
NE DOIT être utilisée qu'à partir d'une otDnsServiceCallback
déclenchée par otDnsClientResolveService()
ou otDnsClientResolveServiceAndHostAddress()
.
Lorsqu'elle est utilisée à partir d'un rappel otDnsClientResolveService()
, la réponse DNS du serveur/résolveur peut inclure des enregistrements AAAA dans sa section "Autres données" pour le nom d'hôte associé à l'instance de service résolue. Cette condition DOIT, et non OBLIGATOIRE, si bien que les serveurs/résolveurs ne sont pas tenus de fournir cette information. Cette fonction tente d'analyser les enregistrements AAAA s'ils sont inclus dans la réponse. Si elle n'est pas incluse, mHostAddress
est défini sur tous les zéros (adresse non spécifiée). Pour résoudre également l'adresse de l'hôte, l'utilisateur peut utiliser la fonction d'API cliente DNS otDnsClientResolveServiceAndHostAddress()
, qui effectue la résolution du service suivie d'une requête de résolution du nom d'hôte (lorsque les enregistrements AAAA ne sont pas fournis par le serveur/résolveur dans la réponse à la requête SRV).
- Si un enregistrement SRV correspondant est trouvé dans
aResponse
,aServiceInfo
est mis à jour. - Si aucun enregistrement SRV correspondant n'est trouvé,
OT_ERROR_NOT_FOUND
est renvoyé, sauf si la configuration de cette requête utiliseOT_DNS_SERVICE_MODE_TXT
pourmServiceMode
(ce qui signifie que la requête ne concernait que l'enregistrement TXT). Dans ce cas, nous essayons quand même d'analyser l'enregistrement SRV de la section "Additional Data" (Données supplémentaires) de la réponse (au cas où le serveur aurait fourni les informations). - Si aucun enregistrement TXT correspondant n'est trouvé dans
aResponse
,mTxtDataSize
dansaServiceInfo
est défini sur zéro. - Si la longueur des données TXT est supérieure à
mTxtDataSize
, elles sont lues partiellement etmTxtDataTruncated
est défini sur "true". - Si aucun enregistrement AAAA correspondant n'est trouvé dans
aResponse
,mHostAddress is set to all zero or unspecified address.
If there are multiple AAAA records for the host name in @p aResponse,
mHostAddressis set to the first one. The other addresses can be retrieved using
otDnsServiceResponseGetHostAddress().
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
Récupère le nom d'instance de service associé à une réponse de résolution d'instance de service DNS.
DOIT être utilisé uniquement à partir du otDnsServiceCallback
.
Détails | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||
Valeurs de retour |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Active/désactive le mode "Compression de noms DNS".
La compression des noms DNS est activée par défaut. Lorsque cette option est désactivée, les noms DNS sont ajoutés en tant que noms complets et ne sont jamais compressés. Cela s'applique aux modules client/serveur DNS et SRP d'OpenThread.
Cette option est destinée aux tests uniquement et disponible lorsque la configuration OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
est activée.
Notez que dans le cas où OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
est utilisé, ce mode s'applique à toutes les instances OpenThread (c'est-à-dire que l'appel de cette fonction active/désactive le mode de compression sur toutes les instances OpenThread).
Détails | |||
---|---|---|---|
Paramètres |
|
Macros
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
Taille maximale de la chaîne d'étiquette (inclure le caractère nul à la fin de la chaîne).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Taille maximale de la chaîne de nom (inclut un caractère nul à la fin de la chaîne).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
Longueur maximale de la chaîne de clé TXT acceptée par otDnsTxtEntryIterator
.
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
Longueur maximale recommandée de la chaîne de clé d'enregistrement TXT (RFC 6763, section 6.4).
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
Longueur minimale de la chaîne de clé d'enregistrement TXT (RFC 6763, section 6.4).
Ressources
Les sujets de référence de l'API OpenThread proviennent du code source, disponible sur GitHub. Pour en savoir plus ou pour contribuer à notre documentation, consultez la section Ressources.