DNSv6

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.

Typedef

otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
Questo puntatore di funzione viene chiamato quando si riceve una risposta DNS per una query di risoluzione dell'indirizzo.
otDnsAddressResponse typedef
Questo tipo è una rappresentazione opaca di una risposta a una query DNS di risoluzione degli indirizzi.
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
Questo puntatore a funzione viene chiamato quando viene ricevuta una risposta DNS per una query di esplorazione (enumerazione di istanza di servizio).
otDnsBrowseResponse typedef
Questo tipo è una rappresentazione opaca di una risposta a una query DNS di consultazione (enumerazione di istanze di servizio).
otDnsQueryConfig typedef
Questa struttura rappresenta una configurazione di query DNS.
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
Questo puntatore di funzione viene chiamato quando viene ricevuta una risposta DNS per una query di risoluzione dell'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 di risoluzione delle istanze 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 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 consente di ottenere 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 recupera l'indirizzo IPv6 dell'host da una risposta di navigazione DNS (enumerazione di istanze di servizio).
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
Questa funzione riceve informazioni per un'istanza di servizio da una risposta DNS Sfoglia (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 consente di ottenere il nome del servizio associato a una risposta di navigazione DNS (enumerazione di istanze di servizio).
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Questa funzione invia una query DNS browse (enumerazione istanza di servizio) per un determinato nome di servizio.
otDnsClientGetDefaultConfig(otInstance *aInstance)
Questa funzione ottiene 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 di 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 di 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 dell'istanza 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 di un iteratore e recupera la successiva voce del record TXT (coppia chiave/valore).
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
void
Questa funzione inizializza un iteratore dei record TXT.
otDnsIsNameCompressionEnabled(void)
bool
Questa funzione indica se la modalità "Compressione dei nomi DNS" è attiva o meno.
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Questa funzione recupera l'indirizzo IPv6 dell'host da una risposta di risoluzione dell'istanza del servizio DNS.
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
Questa funzione riceve informazioni per un'istanza di servizio da una risposta di risoluzione dell'istanza di servizio DNS.
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
Questa funzione consente di ottenere il nome dell'istanza di servizio associato a una risposta di risoluzione dell'istanza di servizio DNS.
otDnsSetNameCompressionEnabled(bool aEnabled)
void
Questa funzione attiva/disattiva la modalità "Compressione dei nomi DNS".

Punti ristoro

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 (otDnsTxtEntryIterator)

Questa struttura rappresenta un iteratore per 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 del client DNS. Questa modalità viene utilizzata soltanto quando la funzionalità OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE è attiva.

Proprietà
OT_DNS_NAT64_ALLOW

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

OT_DNS_NAT64_DISALLOW

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

OT_DNS_NAT64_UNSPECIFIED

Modalità NAT64 non specificata. Usa 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 è in grado di 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 è specificato.

Typedef

otDnsAddressCallback

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

Questo puntatore di funzione viene chiamato quando si riceve una risposta DNS per una query di risoluzione dell'indirizzo.

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

Il puntatore aResponse può essere utilizzato solo all'interno di questo callback e, dopo il ripristino da questa funzione, non rimarrà valido, quindi l'utente NON DEVE conservare il puntatore aResponse per l'utilizzo 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 per stack.
  • OT_ERROR_ANSWER_TIMEOUT Nessuna risposta DNS ricevuta entro il timeout.

Se il server rifiuta la richiesta di risoluzione dell'indirizzo, il codice di errore del server è mappato nel seguente modo:

  • (0) NOERROR riuscito (nessuna condizione di errore) -> OT_ERROR_NONE
  • (1) Il server FORMERR non è in grado di interpretare a causa di un errore di formato -> OT_ERROR_PARSE
  • (2) Il server SERVFAIL ha riscontrato un errore interno -> OT_ERROR_FAILED
  • (3) Nome NXDOMAIN che deve esistere, non esiste -> OT_ERROR_NOT_FOUND
  • (4) Il server NOTIMP non supporta il tipo di query (OpCode) -> OT_ERROR_NOT_IMPLEENTED
  • (5) Server REFUSED rifiutato per motivi di sicurezza/criterio -> OT_ERROR_Sicurezza.
  • (6) YXDOMAIN Nome che non doveva esistere, esiste -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Alcune RRset che non dovrebbero esistere, esistono -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Alcune RRset che dovrebbero esistere, non esistono -> OT_ERROR_NOT_FOUND
  • (9) Il servizio NOTAUTH non è autorevole per la zona -> OT_ERROR_Safety
  • (10) NOTZONE Un nome non è presente nella zona -> OT_ERROR_PARSE
  • (20) BADNAME Nome errato -> OT_ERROR_PARSE
  • (21) Algoritmo BADALG non valido -> OT_ERROR_security
  • (22) BADTRUN Troncamento non valido -> 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 di risoluzione degli indirizzi.

Gli utenti che puntano a un'istanza di questo tipo vengono forniti dal callback otDnsAddressCallback.

otDnsBrowseCallback

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

Questo puntatore a funzione viene chiamato quando viene ricevuta una risposta DNS per una query di esplorazione (enumerazione di istanza di servizio).

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

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

Per l'elenco completo dei valori possibili 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.

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

Questo tipo è una rappresentazione opaca di una risposta a una query DNS di consultazione (enumerazione di istanze di servizio).

Gli utenti che puntano a un'istanza di questo tipo vengono forniti dal callback otDnsBrowseCallback.

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

Questa struttura rappresenta una configurazione di query DNS.

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

otDnsServiceCallback

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

Questo puntatore di funzione viene chiamato quando viene ricevuta una risposta DNS per una query di risoluzione dell'istanza di servizio.

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

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

Per l'elenco completo dei valori possibili 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 di risoluzione delle istanze di servizio.

Gli utenti che puntano a un'istanza 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 a cui puntano mKey e mValue DEVONO rimanere invariati e rimanere invariati dopo un'istanza di tale struttura 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 interi record TXT (coppie chiave/valore).

I campi di dati in questa struttura sono destinati a essere utilizzati dal core di 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 nell'elenco degli indirizzi. L'indice zero ottiene il primo indirizzo e così via. Quando raggiungiamo la fine dell'elenco, OT_ERROR_NOT_FOUND viene restituito.

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

otDnsAddressResponseGetHostName

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

Questa funzione consente di ottenere 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
Un buffer all'array di caratteri per restituire l'host con nome 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 recupera l'indirizzo IPv6 dell'host da una risposta di navigazione DNS (enumerazione di istanze di 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 nell'elenco degli indirizzi. L'indice zero ottiene il primo indirizzo e così via. Quando raggiungiamo la fine dell'elenco, OT_ERROR_NOT_FOUND viene restituito.

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 dell'indirizzo da recuperare.
[out] aAddress
Un puntatore a un indirizzo IPv6 per restituire l'indirizzo (DEVE NON essere NULL).
[out] aTtl
Un puntatore a uint32_t per generare TTL per l'indirizzo. Può essere NULL se il chiamante non vuole ricevere il TTL.
Valori restituiti
OT_ERROR_NONE
L'indirizzo è stato letto.
OT_ERROR_NOT_FOUND
Nessun record di indirizzo per aHostname in aResponse alle 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 DNS Sfoglia (enumerazione di istanze di servizio).

Questa funzione DEVE essere utilizzata solo da otDnsBrowseCallback.

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

  • Se in aResponse non viene trovato alcun record SRV corrispondente, viene restituito OT_ERROR_NOT_FOUND.
  • Se in aResponse viene rilevato un record SRV corrispondente, il valore aServiceInfo viene aggiornato e viene restituito OT_ERROR_NONE.
  • Se non viene trovato alcun record TXT corrispondente in aResponse, il criterio mTxtDataSize in aServiceInfo è impostato su zero.
  • Se non viene trovato alcun record AAAA corrispondente a 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 usingotDnsBrowseResponseGetHostAddress()`

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[in] aInstanceLabel
L'etichetta dell'istanza di servizio (NON DEVE essere NULL).
[out] aServiceInfo
ServiceInfo per restituire informazioni sull'istanza del servizio (NON DEVE essere NULL).
Valori restituiti
OT_ERROR_NONE
Le informazioni sull'istanza di servizio sono state lette. aServiceInfo è aggiornato.
OT_ERROR_NOT_FOUND
Impossibile trovare un record SRV corrispondente per aInstanceLabel.
OT_ERROR_NO_BUFS
Impossibile 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 potrebbe includere più record di istanza di servizio. aIndex può essere utilizzato per eseguire iterazioni nell'elenco. L'indice zero fornisce il primo record. Quando raggiungiamo la fine dell'elenco, OT_ERROR_NOT_FOUND viene restituito.

Tieni presente che questa funzione recupera l'etichetta dell'istanza di servizio e non il nome completo dell'istanza di servizio, che è nel formato ...

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[in] aIndex
L'indice del record dell'istanza di servizio da recuperare.
[out] aLabelBuffer
Un buffer in un array di caratteri per generare l'etichetta dell'istanza di servizio (NON DEVE essere NULL).
[in] aLabelBufferSize
Le dimensioni di aLabelBuffer.
Valori restituiti
OT_ERROR_NONE
Lettura dell'istanza di servizio riuscita.
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 consente di ottenere il nome del servizio associato a una risposta di navigazione DNS (enumerazione di istanze di servizio).

Questa funzione DEVE essere utilizzata solo da otDnsBrowseCallback.

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

otDnsClientBrowse

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

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

Questa funzione è disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE è abilitato.

aConfig può essere NULL. In questo caso, per questa query verrà utilizzata la configurazione predefinita (da otDnsClientGetDefaultConfig()). In un aConfig non NULL, alcuni campi possono essere lasciati non 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 su cui eseguire la query (NON DEVE essere NULL).
[in] aCallback
Un puntatore funzione che deve essere chiamato in caso di risposta o di timeout.
[in] aContext
Un riferimento a 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 ottiene la configurazione di query predefinita corrente utilizzata dal client DNS.

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

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

otDnsClientResolveAddress

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

Questa funzione invia una query DNS di 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 (da otDnsClientGetDefaultConfig()). In un aConfig non NULL, alcuni campi possono essere lasciati non 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 cui eseguire la query dell'indirizzo (DEVE essere NULL).
[in] aCallback
Un puntatore funzione che deve essere chiamato in caso di risposta o di timeout.
[in] aContext
Un riferimento a 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 poiché l'interfaccia di Thread non è attiva.

otDnsClientResolveIp4Address

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

Questa funzione invia una query DNS di 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 è abilitato.

Quando si riceve una risposta corretta, gli indirizzi vengono restituiti da aCallback come versioni IPv6 tradotte degli indirizzi IPv6 della risposta alla query.

aConfig può essere NULL. In questo caso, per questa query verrà utilizzata la configurazione predefinita (da otDnsClientGetDefaultConfig()). In un aConfig non NULL, alcuni campi possono essere lasciati non 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 cui eseguire la query dell'indirizzo (DEVE essere NULL).
[in] aCallback
Un puntatore funzione che deve essere chiamato in caso di risposta o di timeout.
[in] aContext
Un riferimento a 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 nella configurazione.
OT_ERROR_INVALID_STATE
Impossibile inviare la query poiché l'interfaccia di Thread non è attiva.

otDnsClientResolveService

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

Questa funzione invia una query di risoluzione dell'istanza di servizio DNS per una determinata istanza di servizio.

Questa funzione è disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE è abilitato.

aConfig può essere NULL. In questo caso, per questa query verrà utilizzata la configurazione predefinita (da otDnsClientGetDefaultConfig()). In un aConfig non NULL, alcuni campi possono essere lasciati non 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
L'etichetta dell'istanza di servizio.
[in] aServiceName
Il nome del servizio (insieme a aInstanceLabel dal nome completo dell'istanza).
[in] aCallback
Un puntatore funzione che deve essere chiamato in caso di risposta o di timeout.
[in] aContext
Un riferimento a 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: per qualsiasi query in corso continuerà a essere utilizzata la configurazione dall'avvio. La nuova configurazione predefinita verrà utilizzata per le query DNS future. aConfig può essere NULL. In questo caso, la configurazione predefinita sarà impostata sui valori predefiniti delle opzioni di configurazione OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}. Questa operazione reimposta la configurazione di query predefinita sulla configurazione precedente all'avvio dello stack OpenThread.

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

Quando la funzionalità OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE è attiva, l'indirizzo IPv6 del server nella configurazione predefinita viene impostato e aggiornato automaticamente dal client DNS. Questo viene eseguito solo quando l'utente non lo imposta o non lo specifica esplicitamente. Questo comportamento richiede l'attivazione del client SRP e della relativa funzionalità di avvio automatico. Il client SRP monitorerà quindi i dati di rete di Thread per le voci di 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 di un iteratore e recupera la successiva voce del 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 essere mantenuto e rimanere invariato. In caso contrario, il comportamento di questa funzione non è definito.

Se la lunghezza della stringa di chiave analizzata è inferiore o uguale a OT_DNS_TXT_KEY_MAX_LENGTH (lunghezza massima consigliata per la chiave), la stringa di chiavi viene restituita in mKey in aEntry. Tuttavia, se la chiave è più lunga, mKey è 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 (DEVE NON 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 correttamente. aEntry è aggiornato.
OT_ERROR_NOT_FOUND
Niente più voci nei dati TXT.
OT_ERROR_PARSE
I dati TXT di aIterator non sono formattati correttamente.

otDnsInitTxtEntryIterator

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

Questa funzione inizializza un iteratore dei record TXT.

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

Dettagli
Parametri
[in] aIterator
Un puntatore all'iteratore da inizializzare (DEVE NON 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 dei nomi DNS" è attiva o meno.

Questa funzionalità è destinata esclusivamente ai test e disponibile quando è abilitata la configurazione di OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

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

otDnsServiceResponseGetHostAddress

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

Questa funzione recupera l'indirizzo IPv6 dell'host da una risposta di risoluzione dell'istanza del 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 nell'elenco degli indirizzi. L'indice zero ottiene il primo indirizzo e così via. Quando raggiungiamo la fine dell'elenco, OT_ERROR_NOT_FOUND viene restituito.

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 dell'indirizzo da recuperare.
[out] aAddress
Un puntatore a un indirizzo IPv6 per restituire l'indirizzo (DEVE NON essere NULL).
[out] aTtl
Un puntatore a uint32_t per generare TTL per l'indirizzo. Può essere NULL se il chiamante non vuole ricevere il TTL.
Valori restituiti
OT_ERROR_NONE
L'indirizzo è stato letto.
OT_ERROR_NOT_FOUND
Nessun record di indirizzo per aHostname in aResponse alle 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 dell'istanza di servizio DNS.

Questa funzione DEVE essere utilizzata solo da otDnsServiceCallback.

  • Se in aResponse non viene trovato alcun record SRV corrispondente, viene restituito OT_ERROR_NOT_FOUND.
  • Se in aResponse viene rilevato un record SRV corrispondente, il valore aServiceInfo viene aggiornato e viene restituito OT_ERROR_NONE.
  • Se non viene trovato alcun record TXT corrispondente in aResponse, il criterio mTxtDataSize in aServiceInfo è impostato su zero.
  • Se non viene trovato alcun record AAAA corrispondente a 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 usingotDnsServiceResponseGetHostAddress()`.

Dettagli
Parametri
[in] aResponse
Un puntatore alla risposta.
[out] aServiceInfo
ServiceInfo per restituire informazioni sull'istanza del servizio (NON DEVE essere NULL).
Valori restituiti
OT_ERROR_NONE
Le informazioni sull'istanza di servizio sono state lette. aServiceInfo è aggiornato.
OT_ERROR_NOT_FOUND
Impossibile trovare un record SRV corrispondente in aResponse.
OT_ERROR_NO_BUFS
Impossibile 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 consente di ottenere 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
Un buffer in un array di caratteri per generare l'etichetta dell'istanza di servizio (NON DEVE essere NULL).
[in] aLabelBufferSize
Le dimensioni di aLabelBuffer.
[out] aNameBuffer
Un buffer all'array di caratteri 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
Lettura del nome del servizio riuscita.
OT_ERROR_NO_BUFS
L'etichetta o il nome non rientrano nei buffer specificati.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

Questa funzione attiva/disattiva la modalità "Compressione dei nomi DNS".

Per impostazione predefinita, la compressione del nome DNS è abilitata. Quando è disattivata, i nomi DNS vengono aggiunti come completi e non vengono mai compressi. Questo vale per i moduli DNS/SRP client/server di OpenThread.

Questa funzionalità è destinata esclusivamente ai test e disponibile quando è abilitata la configurazione di OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

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

Dettagli
Parametri
[in] aEnabled
TRUE per attivare la modalità "Compressione dei nomi DNS", FALSE per disattivarla.

Macro

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

Dimensione massima della stringa dell'etichetta (includi il carattere null alla fine della stringa).

OT_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

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

OT_DNS_TXT_KEY_MAX_LENGTH

 OT_DNS_TXT_KEY_MAX_LENGTH 9

Lunghezza massima consigliata della stringa di chiavi record TXT (RFC 6763 - sezione 6.4).

OT_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

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

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per ulteriori informazioni, o per contribuire alla nostra documentazione, consulta la pagina Risorse.