Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

DNS 6

Questo modulo include funzioni che controllano la comunicazione DNS.

Riepilogo

Le funzioni in questo modulo sono disponibili solo se la funzionalità OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE è abilitata.

Enumerazioni

otDnsNat64Mode{
  OT_DNS_NAT64_UNSPECIFIED = 0,
  OT_DNS_NAT64_ALLOW = 1,
  OT_DNS_NAT64_DISALLOW = 2
}
enum
Questo tipo di enumerazione rappresenta la modalità NAT64 in un otDnsQueryConfig.
otDnsRecursionFlag{
  OT_DNS_FLAG_UNSPECIFIED = 0,
  OT_DNS_FLAG_RECURSION_DESIRED = 1,
  OT_DNS_FLAG_NO_RECURSION = 2
}
enum
Questo tipo di enumerazione rappresenta il flag "Recursion Desired" (RD) in un elemento otDnsQueryConfig.

Defin

otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext) Typedef
void(*
Il suggerimento di questa funzione viene richiamato quando si riceve una risposta DNS per una query di risoluzione degli indirizzi.
otDnsAddressResponse Typedef
Questo tipo è una rappresentazione opaca di una risposta a una query DNS con risoluzione dell'indirizzo.
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) Typedef
void(*
Il puntatore di questa funzione viene richiamato quando viene ricevuta una risposta DNS per una query di esplorazione (enumerazione delle istanze del servizio).
otDnsBrowseResponse Typedef
Questo tipo è una rappresentazione opaca di una risposta a una query DNS Sfoglia (istanza di servizio).
otDnsQueryConfig Typedef
Questa struttura rappresenta una configurazione di query DNS.
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext) Typedef
void(*
Il suggerimento di questa funzione viene richiamato quando si riceve una risposta DNS per una query di risoluzione di un'istanza di servizio.
otDnsServiceInfo Typedef
Questa struttura fornisce informazioni per un'istanza di servizio DNS.
otDnsServiceResponse Typedef
Questo tipo è una rappresentazione opaca di una risposta a una query DNS con risoluzione di istanza di servizio.
otDnsTxtEntry Typedef
struct otDnsTxtEntry
Questa struttura rappresenta una voce di record TXT che rappresenta una coppia chiave/valore (RFC 6763 - sezione 6.3).
otDnsTxtEntryIterator Typedef
Questa struttura rappresenta un iteratore per gli interi record TXT (coppie chiave/valore).

Functions

otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Questa funzione riceve un indirizzo IPv6 associato a una risposta DNS di risoluzione dell'indirizzo.
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Questa funzione riceve il nome host completo associato a una risposta DNS di risoluzione dell'indirizzo.
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Questa funzione riceve l'indirizzo IPv6 dell'host da una risposta DNS di navigazione (enumerazione delle istanze del servizio).
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
Questa funzione riceve informazioni per un'istanza di servizio da una risposta Sfoglia DNS (enumerazione di istanze di servizio).
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
Questa funzione ottiene un'istanza di servizio associata a una risposta DNS di navigazione (enumerazione di istanze di servizio).
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Questa funzione riceve il nome del servizio associato a una risposta DNS sfoglia (enumerazione delle istanze del servizio).
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Questa funzione invia una query di ricerca DNS (enumerazione di istanze di servizio) per un determinato nome di servizio.
otDnsClientGetDefaultConfig(otInstance *aInstance)
Questa funzione recupera la configurazione di query predefinita corrente utilizzata dal client DNS.
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Questa funzione invia una query DNS per la risoluzione degli indirizzi per i record AAAA (IPv6) per un determinato nome host.
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Questa funzione invia una query DNS per la risoluzione degli indirizzi per i record A (IPv4) per un determinato nome host.
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Questa funzione invia una query di risoluzione delle istanze di servizio DNS per una determinata istanza di servizio.
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
Questa funzione imposta la configurazione della query predefinita sul client DNS.
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
Questa funzione analizza i dati TXT da un iteratore e ottiene la successiva voce di record TXT (coppia chiave/valore).
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
void
Questa funzione inizializza un iteratore del record TXT.
otDnsIsNameCompressionEnabled(void)
bool
Questa funzione indica se la modalità "Compressione nomi DNS" è attiva o meno.
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Questa funzione riceve l'indirizzo IPv6 dell'host da una risposta di risoluzione dell'istanza di servizio DNS.
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
Questa funzione riceve informazioni per un'istanza di servizio da una risposta di risoluzione istanza di servizio DNS.
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
Questa funzione riceve il nome dell'istanza di servizio associato a una risposta di risoluzione dell'istanza di servizio DNS.
otDnsSetNameCompressionEnabled(bool aEnabled)
void
Questa funzione abilita/disabilita la modalità "Compressione nomi DNS".

Struttura

otDnsQueryConfig

Questa struttura rappresenta una configurazione di query DNS.

OtDnsServiceInfo

Questa struttura fornisce informazioni per un'istanza di servizio DNS.

otDnsTxtEntry

Questa struttura rappresenta una voce di record TXT che rappresenta una coppia chiave/valore (RFC 6763 - sezione 6.3).

otDnsTxtEntryIterator

Questa struttura rappresenta un iteratore per gli interi record TXT (coppie chiave/valore).

Enumerazioni

otDnsNat64Mode

 otDnsNat64Mode

Questo tipo di enumerazione rappresenta la modalità NAT64 in un otDnsQueryConfig.

La modalità NAT64 indica se consentire o meno la traduzione degli indirizzi NAT64 durante la risoluzione degli indirizzi client DNS. Questa modalità viene utilizzata solo quando la funzionalità OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE è abilitata.

Proprietà
OT_DNS_NAT64_ALLOW

Consenti la traduzione degli indirizzi NAT64 durante la risoluzione degli indirizzi client DNS.

OT_DNS_NAT64_DISALLOW

Non consentire la traduzione degli indirizzi NAT64 durante la risoluzione degli indirizzi client DNS.

OT_DNS_NAT64_UNSPECIFIED

La modalità NAT64 non è specificata. Utilizza la modalità NAT64 predefinita.

otDnsRecursionFlag

 otDnsRecursionFlag

Questo tipo di enumerazione rappresenta il flag"Recursion Desired" (RD) in un elemento otDnsQueryConfig.

Proprietà
OT_DNS_FLAG_NO_RECURSION

Indica che il server dei nomi DNS non può risolvere la query in modo ricorrente.

OT_DNS_FLAG_RECURSION_DESIRED

Indica che il server dei nomi DNS può risolvere la query in modo ricorrente.

OT_DNS_FLAG_UNSPECIFIED

Indica che il flag non è stato specificato.

Defin

OtDnsAddressCallback

void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)

Il suggerimento di questa funzione viene richiamato quando si riceve una risposta DNS per una query di risoluzione degli indirizzi.

In questo callback l'utente può utilizzare le funzioni otDnsAddressResponseGet{Item}() insieme al puntatore aResponse per ricevere maggiori informazioni sulla risposta.

Il puntatore aResponse può essere utilizzato solo all'interno di questo callback e, dopo il ritorno da questa funzione, non rimarrà valido, quindi l'utente NON dovrà conservare il puntatore aResponse per un uso successivo.

aError può avere quanto segue:

Dettagli
Parametri
[in] aError
Il risultato della transazione DNS.
[in] aResponse
Un puntatore alla risposta (è sempre non NULL).
[in] aContext
Un puntatore al contesto specifico dell'applicazione.

  • OT_ERROR_NONE È stata ricevuta una risposta.
  • OT_ERROR_ABORT Una transazione DNS è stata interrotta dallo stack.
  • OT_ERROR_RESPONSE_TIMEOUT Non è stata ricevuta alcuna risposta DNS entro il timeout.

Se il server rifiuta la richiesta di risoluzione dell'indirizzo, il codice di errore del server è mappato come segue:

  • (0) NOERROR Operazione riuscita (nessuna condizione relativa all'errore) -> OT_ERROR_NONE
  • (1) Server FORMERR non interpretabile a causa di un errore di formato -> OT_ERROR_PARSE
  • (2) Il server SERVFAIL ha riscontrato un errore interno -> OT_ERROR_FAILED
  • (3) Il nome NXDOMAIN che dovrebbe esistere non esiste -> OT_ERROR_NOT_FOUND
  • (4) Il server NOTIMP non supporta il tipo di query (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) RIFIUTO Il server è stato rifiutato per motivi legati al criterio o alla sicurezza -> OT_ERROR_SAFE
  • (6) YXDOMAIN Un nome che non dovrebbe esistere esiste -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Alcuni RRset che non dovrebbero esistere esistono -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Alcuni RRset che dovrebbero esistere non esistono -> OT_ERROR_NOT_FOUND
  • (9) Il servizio NOTAUTH non è autorizzato per la zona -> OT_ERROR_SAFE
  • (10) NOTZONE Un nome non è nella zona -> OT_ERROR_PARSE
  • (20) BADNAME Nome non valido -> OT_ERROR_PARSE
  • (21) Algoritmo BADALG non valido -> OT_ERROR_SAFE
  • (22) BADTRUN Troncamento errato -> OT_ERROR_PARSE
  • Altri codici di risposta -> OT_ERROR_FAILED

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

Questo tipo è una rappresentazione opaca di una risposta a una query DNS con risoluzione dell'indirizzo.

I suggerimenti di istanze di questo tipo vengono forniti dal callback otDnsAddressCallback.

otDnsBrowseCallback

void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)

Il puntatore di questa funzione viene richiamato quando viene ricevuta una risposta DNS per una query di esplorazione (enumerazione delle istanze del servizio).

In questo callback l'utente può utilizzare le funzioni otDnsBrowseResponseGet{Item}() insieme al puntatore aResponse per ricevere maggiori informazioni sulla risposta.

Il puntatore aResponse può essere utilizzato solo all'interno di questo callback e, dopo il ritorno da questa funzione, non rimarrà valido, quindi l'utente NON dovrà conservare il puntatore aResponse per un uso successivo.

Per l'elenco completo dei possibili valori per aError, consulta otDnsAddressCallback().

Dettagli
Parametri
[in] aError
Il risultato della transazione DNS.
[in] aResponse
Un puntatore alla risposta (è sempre non NULL).
[in] aContext
Un puntatore al contesto specifico dell'applicazione.

otDnsSfogliaRisposta

struct otDnsBrowseResponse otDnsBrowseResponse

Questo tipo è una rappresentazione opaca di una risposta a una query DNS Sfoglia (istanza di servizio).

I suggerimenti di istanze di questo tipo vengono forniti dal callback otDnsBrowseCallback.

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

Questa struttura rappresenta una configurazione di query DNS.

Tutti i campi di questa struttura possono essere impostati su zero per indicare che non sono specificati. Il modo in cui vengono trattati i campi non specificati è determinato dalla funzione che utilizza l'istanza otDnsQueryConfig.

otDnsServiceCallback

void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)

Il suggerimento di questa funzione viene richiamato quando si riceve una risposta DNS per una query di risoluzione di un'istanza di servizio.

In questo callback l'utente può utilizzare le funzioni otDnsServiceResponseGet{Item}() insieme al puntatore aResponse per ricevere maggiori informazioni sulla risposta.

Il puntatore aResponse può essere utilizzato solo all'interno di questo callback e, dopo il ritorno da questa funzione, non rimarrà valido, quindi l'utente NON dovrà conservare il puntatore aResponse per un uso successivo.

Per l'elenco completo dei possibili valori per aError, consulta otDnsAddressCallback().

Dettagli
Parametri
[in] aError
Il risultato della transazione DNS.
[in] aResponse
Un puntatore alla risposta (è sempre non NULL).
[in] aContext
Un puntatore al contesto specifico dell'applicazione.

OtDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

Questa struttura fornisce informazioni per un'istanza di servizio DNS.

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

Questo tipo è una rappresentazione opaca di una risposta a una query DNS con risoluzione di istanza di servizio.

I suggerimenti di istanze di questo tipo vengono forniti dal callback otDnsAddressCallback.

otDnsTxtEntry

struct otDnsTxtEntry otDnsTxtEntry

Questa struttura rappresenta una voce di record TXT che rappresenta una coppia chiave/valore (RFC 6763 - sezione 6.3).

I buffer di stringa indicati da mKey e mValue DEVONO persistere e rimangono invariati dopo che un'istanza di tale struttura viene trasmessa a OpenThread (come parte dell'istanza otSrpClientService).

In otSrpClientService viene utilizzato un array di voci otDnsTxtEntry per specificare il record TXT completo (un elenco di voci).

otDnsTxtEntryIterator

struct otDnsTxtEntryIterator otDnsTxtEntryIterator

Questa struttura rappresenta un iteratore per gli interi record TXT (coppie chiave/valore).

I campi di dati in questa struttura sono destinati all'uso da parte del core OpenThread e il chiamante non deve leggerli o modificarli.

Functions

otDnsAddressResponseGetAddress

otError otDnsAddressResponseGetAddress(
  const otDnsAddressResponse *aResponse,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Questa funzione riceve un indirizzo IPv6 associato a una risposta DNS di risoluzione dell'indirizzo.

Questa funzione DEVE essere utilizzata solo da otDnsAddressCallback.

La risposta può includere più record di indirizzi IPv6. aIndex può essere utilizzato per eseguire l'iterazione tramite l'elenco di indirizzi. L'indice zero riceve il primo indirizzo e così via. Quando viene raggiunta la fine dell'elenco, viene restituito OT_ERROR_NOT_FOUND.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[in] aIndex
L'indice del record di indirizzi da recuperare.
[out] aAddress
Un puntatore a un indirizzo IPv6 per restituire l'indirizzo (NON DEVE essere NULL).
[out] aTtl
Un puntatore a un elemento uint32_t per restituire TTL per l'indirizzo. Può essere NULL se il chiamante non vuole ottenere il TTL.
Valori restituiti
OT_ERROR_NONE
L'indirizzo è stato letto.
OT_ERROR_NOT_FOUND
Nessun record dell'indirizzo in aResponse alle ore aIndex.
OT_ERROR_PARSE
Impossibile analizzare i record in aResponse.
OT_ERROR_INVALID_STATE
Nessun prefisso NAT64 (applicabile solo quando NAT64 è consentito).

otDnsAddressResponseGetHostName

otError otDnsAddressResponseGetHostName(
  const otDnsAddressResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Questa funzione riceve il nome host completo associato a una risposta DNS di risoluzione dell'indirizzo.

Questa funzione DEVE essere utilizzata solo da otDnsAddressCallback.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[out] aNameBuffer
Da un buffer all'array di caratteri per restituire il nome host completo (NON DEVE essere NULL).
[in] aNameBufferSize
Le dimensioni di aNameBuffer.
Valori restituiti
OT_ERROR_NONE
Il nome host completo è stato letto.
OT_ERROR_NO_BUFS
Il nome non è adatto a aNameBuffer.

otDnsBrowseResponseGetHostAddress

otError otDnsBrowseResponseGetHostAddress(
  const otDnsBrowseResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Questa funzione riceve l'indirizzo IPv6 dell'host da una risposta DNS di navigazione (enumerazione delle istanze del servizio).

Questa funzione DEVE essere utilizzata solo da otDnsBrowseCallback.

La risposta può includere zero o più record di indirizzi IPv6. aIndex può essere utilizzato per eseguire l'iterazione tramite l'elenco di indirizzi. L'indice zero riceve il primo indirizzo e così via. Quando viene raggiunta la fine dell'elenco, viene restituito OT_ERROR_NOT_FOUND.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[in] aHostName
Il nome host per ottenere l'indirizzo (NON DEVE essere NULL).
[in] aIndex
L'indice del record di indirizzi da recuperare.
[out] aAddress
Un puntatore a un indirizzo IPv6 per restituire l'indirizzo (NON DEVE essere NULL).
[out] aTtl
Un puntatore a un elemento uint32_t per restituire TTL per l'indirizzo. Può essere NULL se il chiamante non vuole ottenere il TTL.
Valori restituiti
OT_ERROR_NONE
L'indirizzo è stato letto.
OT_ERROR_NOT_FOUND
Nessun record dell'indirizzo per aHostname in aResponse alle ore aIndex.
OT_ERROR_PARSE
Impossibile analizzare i record in aResponse.

otDnsBrowseResponseGetServiceInfo

otError otDnsBrowseResponseGetServiceInfo(
  const otDnsBrowseResponse *aResponse,
  const char *aInstanceLabel,
  otDnsServiceInfo *aServiceInfo
)

Questa funzione riceve informazioni per un'istanza di servizio da una risposta Sfoglia DNS (enumerazione di istanze di servizio).

Questa funzione DEVE essere utilizzata solo da otDnsBrowseCallback.

Una risposta DNS di navigazione dovrebbe includere i record SRV, TXT e AAAA per le istanze di servizio enumerate (tieni presente che si tratta di un DEVO e non è un requisito DEVE). Questa funzione tenta di recuperare queste informazioni per una determinata istanza di servizio, quando disponibile.

  • Se in aResponse non viene trovato un record SRV corrispondente, viene restituito OT_ERROR_NOT_FOUND.
  • Se in aResponse viene trovato un record SRV corrispondente, viene aggiornato aServiceInfo e viene restituito OT_ERROR_NONE.
  • Se in aResponse non viene trovato alcun record TXT corrispondente, l'attributo mTxtDataSize in aServiceInfo è impostato su zero.
  • Se la lunghezza dei dati TXT è maggiore di mTxtDataSize, viene letto parzialmente e mTxtDataTruncated è impostato su true.
  • Se non viene trovato alcun record AAAA corrispondente in aResponse, mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse,IndirizzoHostis set to the first one. The other addresses can be retrieved usingotDnsSfogliaRispostaGetHostAddress()`.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[in] aInstanceLabel
Etichetta dell'istanza del servizio (NON DEVE essere NULL).
[out] aServiceInfo
ServiceInfo per l'output delle informazioni sull'istanza di servizio (NON DEVE essere NULL).
Valori restituiti
OT_ERROR_NONE
Le informazioni dell'istanza del servizio sono state lette. aServiceInfo è aggiornato.
OT_ERROR_NOT_FOUND
Impossibile trovare un record SRV corrispondente per aInstanceLabel.
OT_ERROR_NO_BUFS
Non è stato possibile inserire il nome host e/o i dati TXT nei buffer specificati.
OT_ERROR_PARSE
Impossibile analizzare i record in aResponse.

otDnsBrowseResponseGetServiceInstance

otError otDnsBrowseResponseGetServiceInstance(
  const otDnsBrowseResponse *aResponse,
  uint16_t aIndex,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize
)

Questa funzione ottiene un'istanza di servizio associata a una risposta DNS di navigazione (enumerazione di istanze di servizio).

Questa funzione DEVE essere utilizzata solo da otDnsBrowseCallback.

La risposta può includere più record di istanze di servizio. aIndex può essere utilizzato per eseguire l'iterazione tramite l'elenco. L'indice zero fornisce il primo record. Quando viene raggiunta la fine dell'elenco, viene restituito OT_ERROR_NOT_FOUND.

Tieni presente che questa funzione riceve l'etichetta dell'istanza di servizio e non il nome completo dell'istanza di servizio che ha il formato ...

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[in] aIndex
L'indice del record dell'istanza del servizio da recuperare.
[out] aLabelBuffer
Da un buffer all'array di caratteri per restituire l'etichetta dell'istanza di servizio (NON DEVE essere NULL).
[in] aLabelBufferSize
Le dimensioni di aLabelBuffer.
Valori restituiti
OT_ERROR_NONE
L'istanza di servizio è stata letta.
OT_ERROR_NO_BUFS
Il nome non è adatto a aNameBuffer.
OT_ERROR_NOT_FOUND
Nessun record di istanza di servizio in aResponse alle aIndex.
OT_ERROR_PARSE
Impossibile analizzare i record in aResponse.

otDnsBrowseResponseGetServiceName

otError otDnsBrowseResponseGetServiceName(
  const otDnsBrowseResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Questa funzione riceve il nome del servizio associato a una risposta DNS sfoglia (enumerazione delle istanze del servizio).

Questa funzione DEVE essere utilizzata solo da otDnsBrowseCallback.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[out] aNameBuffer
Da un buffer all'array di caratteri per restituire il nome del servizio (NON DEVE essere NULL).
[in] aNameBufferSize
Le dimensioni di aNameBuffer.
Valori restituiti
OT_ERROR_NONE
Il nome del servizio è stato letto.
OT_ERROR_NO_BUFS
Il nome non è adatto a aNameBuffer.

otDnsClientSfoglia

otError otDnsClientBrowse(
  otInstance *aInstance,
  const char *aServiceName,
  otDnsBrowseCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Questa funzione invia una query di ricerca DNS (enumerazione di istanze di servizio) per un determinato nome di servizio.

Questa funzione è disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE è attivato.

aConfig può essere NULL. In questo caso, per questa query verrà utilizzata la configurazione predefinita di otDnsClientGetDefaultConfig(). In un campo aConfig non NULL, alcuni campi possono non essere specificati (valore zero). I campi non specificati vengono quindi sostituiti dai valori della configurazione predefinita.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aServiceName
Il nome del servizio per il quale eseguire la query (NON DEVE essere NULL).
[in] aCallback
Un puntatore della funzione che deve essere richiamato alla ricezione o al timeout della risposta.
[in] aContext
Un puntatore alle informazioni di contesto arbitrarie.
[in] aConfig
Un puntatore alla configurazione da utilizzare per questa query.
Valori restituiti
OT_ERROR_NONE
Query inviata. aCallback verrà richiamato per segnalare lo stato.
OT_ERROR_NO_BUFS
Buffer insufficiente per preparare e inviare la query.

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

Questa funzione recupera la configurazione di query predefinita corrente utilizzata dal client DNS.

Quando viene avviato lo stack OpenThread, la configurazione della query DNS predefinita viene determinata da un insieme di opzioni di configurazione OT come OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS, _DEFAULT_SERVER_PORT, _DEFAULT_RESPONSE_TIMEOUT e così via (consulta config/dns_client.h per tutte le opzioni di configurazione correlate).

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
Un puntatore alla configurazione predefinita corrente utilizzata dal client DNS.

otDnsClientSolveAddress

otError otDnsClientResolveAddress(
  otInstance *aInstance,
  const char *aHostName,
  otDnsAddressCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Questa funzione invia una query DNS per la risoluzione degli indirizzi per i record AAAA (IPv6) per un determinato nome host.

aConfig può essere NULL. In questo caso, per questa query verrà utilizzata la configurazione predefinita di otDnsClientGetDefaultConfig(). In un campo aConfig non NULL, alcuni campi possono non essere specificati (valore zero). I campi non specificati vengono quindi sostituiti dai valori della configurazione predefinita.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aHostName
Il nome host per il quale eseguire la query sull'indirizzo (NON DEVE essere NULL).
[in] aCallback
Un puntatore della funzione che deve essere richiamato alla ricezione o al timeout della risposta.
[in] aContext
Un puntatore alle informazioni di contesto arbitrarie.
[in] aConfig
Un puntatore alla configurazione da utilizzare per questa query.
Valori restituiti
OT_ERROR_NONE
Query inviata. aCallback verrà richiamato per segnalare lo stato.
OT_ERROR_NO_BUFS
Buffer insufficiente per preparare e inviare la query.
OT_ERROR_INVALID_ARGS
Il formato del nome host non è valido.
OT_ERROR_INVALID_STATE
Impossibile inviare la query perché l'interfaccia del thread non è attiva.

otDnsClientSolveIp4Address

otError otDnsClientResolveIp4Address(
  otInstance *aInstance,
  const char *aHostName,
  otDnsAddressCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Questa funzione invia una query DNS per la risoluzione degli indirizzi per i record A (IPv4) per un determinato nome host.

Questa funzione richiede ed è disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE è attivato.

Quando si riceve una risposta corretta, gli indirizzi vengono restituiti da aCallback come versioni con traduzione IPv6 NAT64 degli indirizzi IPv4 dalla risposta alla query.

aConfig può essere NULL. In questo caso, per questa query verrà utilizzata la configurazione predefinita di otDnsClientGetDefaultConfig(). In un campo aConfig non NULL, alcuni campi possono non essere specificati (valore zero). I campi non specificati vengono quindi sostituiti dai valori della configurazione predefinita.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aHostName
Il nome host per il quale eseguire la query sull'indirizzo (NON DEVE essere NULL).
[in] aCallback
Un puntatore della funzione che deve essere richiamato alla ricezione o al timeout della risposta.
[in] aContext
Un puntatore alle informazioni di contesto arbitrarie.
[in] aConfig
Un puntatore alla configurazione da utilizzare per questa query.
Valori restituiti
OT_ERROR_NONE
Query inviata. aCallback verrà richiamato per segnalare lo stato.
OT_ERROR_NO_BUFS
Buffer insufficiente per preparare e inviare la query.
OT_ERROR_INVALID_ARGS
Il nome host non è in un formato valido o NAT64 non è abilitato in configurazione.
OT_ERROR_INVALID_STATE
Impossibile inviare la query perché l'interfaccia del thread non è attiva.

otDnsClientSolveService

otError otDnsClientResolveService(
  otInstance *aInstance,
  const char *aInstanceLabel,
  const char *aServiceName,
  otDnsServiceCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Questa funzione invia una query di risoluzione delle istanze di servizio DNS per una determinata istanza di servizio.

Questa funzione è disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE è attivato.

aConfig può essere NULL. In questo caso, per questa query verrà utilizzata la configurazione predefinita di otDnsClientGetDefaultConfig(). In un campo aConfig non NULL, alcuni campi possono non essere specificati (valore zero). I campi non specificati vengono quindi sostituiti dai valori della configurazione predefinita.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aInstanceLabel
Etichetta dell'istanza di servizio.
[in] aServiceName
Il nome del servizio (insieme a aInstanceLabel nome completo dell'istanza).
[in] aCallback
Un puntatore della funzione che deve essere richiamato alla ricezione o al timeout della risposta.
[in] aContext
Un puntatore alle informazioni di contesto arbitrarie.
[in] aConfig
Un puntatore alla configurazione da utilizzare per questa query.
Valori restituiti
OT_ERROR_NONE
Query inviata. aCallback verrà richiamato per segnalare lo stato.
OT_ERROR_NO_BUFS
Buffer insufficiente per preparare e inviare la query.
OT_ERROR_INVALID_ARGS
aInstanceLabel è NULL.

otDnsClientSetDefaultConfig

void otDnsClientSetDefaultConfig(
  otInstance *aInstance,
  const otDnsQueryConfig *aConfig
)

Questa funzione imposta la configurazione della query predefinita sul client DNS.

Nota: tutte le query in corso continueranno a utilizzare la configurazione dall'avvio. La nuova configurazione predefinita verrà utilizzata per eventuali query DNS future. aConfig può essere NULL. In questo caso, la configurazione predefinita verrà impostata sui valori predefiniti delle opzioni di configurazione OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}. Questa opzione ripristina la configurazione predefinita della query sulla configurazione all'avvio dello stack OpenThread.

In un aConfig non NULL, il chiamante può scegliere di lasciare alcuni campi nell'istanza otDnsQueryConfig non specificati (valore zero). I campi non specificati vengono sostituiti dalle corrispondenti definizioni dell'opzione di configurazione OT: OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}, per formare la configurazione della query predefinita.

Quando OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE è abilitato, l'indirizzo IPv6 del server nella configurazione predefinita viene impostato e aggiornato automaticamente dal client DNS. Questa operazione viene eseguita solo se l'utente non l'ha impostata o specificata in modo esplicito. Questo comportamento richiede l'attivazione del client SRP e della relativa funzionalità di avvio automatico. Il client SRP monitora quindi i dati della rete Thread per le voci del servizio DNS/SRP per selezionare un server SRP. L'indirizzo del server SRP selezionato è impostato anche come indirizzo del server DNS nella configurazione predefinita.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aConfig
Un puntatore alla nuova configurazione di query da utilizzare come predefinita.

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

Questa funzione analizza i dati TXT da un iteratore e ottiene la successiva voce di record TXT (coppia chiave/valore).

aIterator DEVE essere inizializzato utilizzando otDnsInitTxtEntryIterator() prima di chiamare questa funzione e il buffer di dati TXT utilizzato per inizializzare l'iteratore DEVE persistere e rimanere invariato. In caso contrario, il comportamento di questa funzione non è definito.

Se la lunghezza della chiave chiave analizzata è inferiore o uguale a OT_DNS_TXT_KEY_MAX_LENGTH (lunghezza massima consigliata della chiave), la stringa della chiave viene restituita in mKey in aEntry. Tuttavia, se la chiave è più lunga, mKey viene impostato su NULL e l'intera stringa di voce TXT codificata viene restituita in mValue e mValueLength.

Dettagli
Parametri
[in] aIterator
Un puntatore all'iteratore (NON DEVE essere NULL).
[out] aEntry
Un puntatore a una struttura otDnsTxtEntry per generare la voce analizzata/lettura (NON DEVE essere NULL).
Valori restituiti
OT_ERROR_NONE
La voce successiva è stata analizzata. aEntry è aggiornato.
OT_ERROR_NOT_FOUND
Nessun'altra voce nei dati TXT.
OT_ERROR_PARSE
I dati TXT provenienti da aIterator non sono formattati correttamente.

otDnsInitTxtEntryIterator

void otDnsInitTxtEntryIterator(
  otDnsTxtEntryIterator *aIterator,
  const uint8_t *aTxtData,
  uint16_t aTxtDataLength
)

Questa funzione inizializza un iteratore del record TXT.

Il puntatore del buffer aTxtData e i suoi contenuti DEVONO rimanere invariate e rimanere invariati durante l'utilizzo dell'oggetto aIterator.

Dettagli
Parametri
[in] aIterator
Un puntatore all'iteratore da inizializzare (NON DEVE essere NULL).
[in] aTxtData
Un puntatore al buffer contenente i dati TXT codificati.
[in] aTxtDataLength
La lunghezza (numero di byte) di aTxtData.

otDnsIsNameCompressionEnabled

bool otDnsIsNameCompressionEnabled(
  void
)

Questa funzione indica se la modalità "Compressione nomi DNS" è attiva o meno.

Questa funzione è destinata solo a test ed è disponibile quando la configurazione di OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE è attivata.

Dettagli
Restituisce
TRUE se la modalità "Compressione nomi DNS" è abilitata, FALSE in caso contrario.

otDnsServiceResponseGetHostAddress

otError otDnsServiceResponseGetHostAddress(
  const otDnsServiceResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Questa funzione riceve l'indirizzo IPv6 dell'host da una risposta di risoluzione dell'istanza di servizio DNS.

Questa funzione DEVE essere utilizzata solo da otDnsServiceCallback.

La risposta può includere zero o più record di indirizzi IPv6. aIndex può essere utilizzato per eseguire l'iterazione tramite l'elenco di indirizzi. L'indice zero riceve il primo indirizzo e così via. Quando viene raggiunta la fine dell'elenco, viene restituito OT_ERROR_NOT_FOUND.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[in] aHostName
Il nome host per ottenere l'indirizzo (NON DEVE essere NULL).
[in] aIndex
L'indice del record di indirizzi da recuperare.
[out] aAddress
Un puntatore a un indirizzo IPv6 per restituire l'indirizzo (NON DEVE essere NULL).
[out] aTtl
Un puntatore a un elemento uint32_t per restituire TTL per l'indirizzo. Può essere NULL se il chiamante non vuole ottenere il TTL.
Valori restituiti
OT_ERROR_NONE
L'indirizzo è stato letto.
OT_ERROR_NOT_FOUND
Nessun record dell'indirizzo per aHostname in aResponse alle ore aIndex.
OT_ERROR_PARSE
Impossibile analizzare i record in aResponse.

otDnsServiceResponseGetServiceInfo

otError otDnsServiceResponseGetServiceInfo(
  const otDnsServiceResponse *aResponse,
  otDnsServiceInfo *aServiceInfo
)

Questa funzione riceve informazioni per un'istanza di servizio da una risposta di risoluzione istanza di servizio DNS.

Questa funzione DEVE essere utilizzata solo da otDnsServiceCallback.

  • Se in aResponse non viene trovato un record SRV corrispondente, viene restituito OT_ERROR_NOT_FOUND.
  • Se in aResponse viene trovato un record SRV corrispondente, viene aggiornato aServiceInfo e viene restituito OT_ERROR_NONE.
  • Se in aResponse non viene trovato alcun record TXT corrispondente, l'attributo mTxtDataSize in aServiceInfo è impostato su zero.
  • Se la lunghezza dei dati TXT è maggiore di mTxtDataSize, viene letto parzialmente e mTxtDataTruncated è impostato su true.
  • Se non viene trovato alcun record AAAA corrispondente in aResponse, mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse,IndirizzoHostis set to the first one. The other addresses can be retrieved usingotDnsServiceResponseGetHostAddress()`.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[out] aServiceInfo
ServiceInfo per l'output delle informazioni sull'istanza di servizio (NON DEVE essere NULL).
Valori restituiti
OT_ERROR_NONE
Le informazioni dell'istanza del servizio sono state lette. aServiceInfo è aggiornato.
OT_ERROR_NOT_FOUND
Impossibile trovare un record SRV corrispondente in aResponse.
OT_ERROR_NO_BUFS
Non è stato possibile inserire il nome host e/o i dati TXT nei buffer specificati.
OT_ERROR_PARSE
Impossibile analizzare i record in aResponse.

otDnsServiceResponseGetServiceName

otError otDnsServiceResponseGetServiceName(
  const otDnsServiceResponse *aResponse,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Questa funzione riceve il nome dell'istanza di servizio associato a una risposta di risoluzione dell'istanza di servizio DNS.

Questa funzione DEVE essere utilizzata solo da otDnsServiceCallback.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[out] aLabelBuffer
Da un buffer all'array di caratteri per restituire l'etichetta dell'istanza di servizio (NON DEVE essere NULL).
[in] aLabelBufferSize
Le dimensioni di aLabelBuffer.
[out] aNameBuffer
Un buffer per il char array per restituire il resto del nome del servizio (può essere NULL se l'utente non è interessato a ottenere il nome).
[in] aNameBufferSize
Le dimensioni di aNameBuffer.
Valori restituiti
OT_ERROR_NONE
Il nome del servizio è stato letto.
OT_ERROR_NO_BUFS
L'etichetta o il nome non rientrano nei buffer specificati.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

Questa funzione abilita/disabilita la modalità "Compressione nomi DNS".

Per impostazione predefinita, la compressione dei nomi DNS è abilitata. Quando questa opzione è disattivata, i nomi DNS vengono aggiunti come completi e non vengono mai compressi. Questo è applicabile ai moduli client/server DNS e SRP di OpenThread.

Questa funzione è destinata solo a test ed è disponibile quando la configurazione di OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE è attivata.

Tieni presente che, nel caso in cui OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE venga utilizzato, questa modalità si applica a tutte le istanze OpenThread, ovvero la chiamata di questa funzione abilita/disabilita la modalità di compressione su tutte le istanze OpenThread.

Dettagli
Parametri
[in] aEnabled
TRUE per abilitare la modalità "Compressione nomi DNS", FALSE per disabilitare.

Macro

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

Dimensione massima stringa di etichetta (include null char alla fine della stringa).

OT_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

Dimensione massima della stringa del nome (include null char alla fine della stringa).

OT_DNS_TXT_KEY_MAX_LENGTH

 OT_DNS_TXT_KEY_MAX_LENGTH 9

Lunghezza massima consigliata della stringa della chiave del record TXT (RFC 6763-sezione 6.4).

OT_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

Lunghezza minima della stringa della chiave del record TXT (RFC 6763 - sezione 6.4).

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per scoprire di più o per contribuire alla nostra documentazione, consulta le Risorse.