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{
|
enum Questo tipo di enumerazione rappresenta la modalità NAT64 in un otDnsQueryConfig . |
otDnsRecursionFlag{
|
enum Questo tipo di enumerazione rappresenta il flag "Recursion Desired" (RD) in un elemento otDnsQueryConfig . |
Typedef |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
Questo puntatore di funzione viene chiamato quando si riceve una risposta DNS per una query di risoluzione dell'indirizzo. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Questo tipo è una rappresentazione opaca di una risposta a una query DNS di risoluzione degli indirizzi. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Questo puntatore a funzione viene chiamato quando viene ricevuta una risposta DNS per una query di esplorazione (enumerazione di istanza di servizio). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Questo tipo è una rappresentazione opaca di una risposta a una query DNS di consultazione (enumerazione di istanze di servizio). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Questa struttura rappresenta una configurazione di query DNS. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
Questo puntatore di funzione viene chiamato quando viene ricevuta una risposta DNS per una query di risoluzione dell'istanza di servizio. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Questa struttura fornisce informazioni per un'istanza di servizio DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Questo tipo è una rappresentazione opaca di una risposta a una query DNS di risoluzione delle istanze di servizio. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Questa struttura rappresenta una voce di record TXT che rappresenta una coppia chiave/valore (RFC 6763 - sezione 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
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)
|
const otDnsQueryConfig *
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 |
|
- 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 |
|
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 |
|
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 |
|
||||||||
Valori restituiti |
|
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 |
|
||||||
Valori restituiti |
|
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 |
|
||||||||||
Valori restituiti |
|
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 restituitoOT_ERROR_NOT_FOUND
. - Se in
aResponse
viene rilevato un record SRV corrispondente, il valoreaServiceInfo
viene aggiornato e viene restituitoOT_ERROR_NONE
. - Se non viene trovato alcun record TXT corrispondente in
aResponse
, il criteriomTxtDataSize
inaServiceInfo
è 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 using
otDnsBrowseResponseGetHostAddress()`
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
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 |
|
||||||||
Valori restituiti |
|
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 |
|
||||||
Valori restituiti |
|
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 |
|
||||||||||
Valori restituiti |
|
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 |
|
||
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 |
|
||||||||||
Valori restituiti |
|
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 |
|
||||||||||
Valori restituiti |
|
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 |
|
||||||||||||
Valori restituiti |
|
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 |
|
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 |
|
||||||
Valori restituiti |
|
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 |
|
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 |
|
||||||||||
Valori restituiti |
|
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 restituitoOT_ERROR_NOT_FOUND
. - Se in
aResponse
viene rilevato un record SRV corrispondente, il valoreaServiceInfo
viene aggiornato e viene restituitoOT_ERROR_NONE
. - Se non viene trovato alcun record TXT corrispondente in
aResponse
, il criteriomTxtDataSize
inaServiceInfo
è 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 using
otDnsServiceResponseGetHostAddress()`.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
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 |
|
||||||||||
Valori restituiti |
|
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 |
|
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.