DNS
Questo modulo include funzioni che controllano la comunicazione DNS.
Riepilogo
Le funzioni di questo modulo sono disponibili solo se la funzionalità OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
è abilitata.
Enumerazioni |
|
---|---|
otDnsNat64Mode{
|
enum Il tipo rappresenta la modalità NAT64 in un otDnsQueryConfig . |
otDnsRecursionFlag{
|
enum Il tipo rappresenta il flag "Recursion Desired" (RD) in un otDnsQueryConfig . |
otDnsServiceMode{
|
enum Il tipo rappresenta la modalità di risoluzione del servizio in un otDnsQueryConfig . |
otDnsTransportProto{
|
enum Il tipo rappresenta il protocollo di trasporto DNS in un otDnsQueryConfig . |
Typedef |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
Il puntatore viene chiamato quando viene ricevuta una risposta DNS per una query di risoluzione degli indirizzi. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Una rappresentazione opaca di una risposta a una query DNS di risoluzione degli indirizzi. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Il puntatore viene chiamato quando viene ricevuta una risposta DNS per una query di consultazione (enumerazione di istanze di servizio). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Rappresentazione opaca di una risposta a una query DNS di consultazione (enumerazione di istanze di servizio). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Rappresenta una configurazione di query DNS. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
Il puntatore viene chiamato quando viene ricevuta una risposta DNS per una query di risoluzione di un'istanza di servizio. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Fornisce informazioni per un'istanza di servizio DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Rappresentazione opaca di una risposta a una query DNS per la risoluzione di un'istanza di servizio. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Rappresenta una voce di record TXT che rappresenta una coppia chiave/valore (RFC 6763 - sezione 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
Rappresenta un iteratore per le voci di record TXT (coppie chiave/valore). |
Funzioni |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Restituisce un indirizzo IPv6 associato a una risposta DNS di risoluzione degli indirizzi.
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Restituisce il nome host completo associato a una risposta DNS di risoluzione degli indirizzi.
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Restituisce l'indirizzo IPv6 dell'host da una risposta di consultazione DNS (enumerazione di istanze di servizio).
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
Recupera informazioni per un'istanza di servizio da una risposta di consultazione DNS (enumerazione di istanze di servizio).
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
Restituisce un'istanza di servizio associata a una risposta di consultazione DNS (enumerazione di istanze di servizio).
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Restituisce il nome di servizio associato a una risposta di consultazione DNS (enumerazione di istanze di servizio).
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Invia una query di consultazione DNS (enumerazione di istanze di servizio) per un determinato nome di servizio.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
Restituisce l'attuale configurazione di query predefinita utilizzata dal client DNS.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
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)
|
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)
|
Avvia una risoluzione dell'istanza di servizio DNS per una determinata istanza di servizio.
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Avvia una risoluzione dell'istanza di servizio DNS per una determinata istanza di servizio, con una potenziale risoluzione dell'indirizzo di follow-up per il nome host rilevato per l'istanza di servizio.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
Consente di impostare la configurazione delle query predefinita sul client DNS.
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
Codifica un determinato elenco di voci di record TXT (coppie chiave/valore) in dati TXT (nel seguente formato specificato da RFC 6763).
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
Analizza i dati TXT di un iteratore e recupera la voce del record TXT successiva (coppia chiave/valore).
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Inizializza un iteratore del record TXT.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Indica se la modalità "Compressione dei nomi DNS" è attivata o meno.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Restituisce l'indirizzo IPv6 dell'host da una risposta di risoluzione dell'istanza di servizio DNS.
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
Recupera le informazioni per un'istanza di servizio da una risposta di risoluzione di un'istanza di servizio DNS.
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
Restituisce il nome dell'istanza di servizio associato a una risposta di risoluzione dell'istanza di servizio DNS.
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
Attiva/disattiva la modalità "Compressione dei nomi DNS".
|
Strutture |
|
---|---|
otDnsQueryConfig |
Rappresenta una configurazione di query DNS. |
otDnsServiceInfo |
Fornisce informazioni per un'istanza di servizio DNS. |
otDnsTxtEntry |
Rappresenta una voce di record TXT che rappresenta una coppia chiave/valore (RFC 6763 - sezione 6.3). |
otDnsTxtEntryIterator |
Rappresenta un iteratore per le voci di record TXT (coppie chiave/valore). |
Enumerazioni
otDnsNat64Mode
otDnsNat64Mode
Il tipo rappresenta la modalità NAT64 in un otDnsQueryConfig
.
La modalità NAT64 indica se consentire o non consentire la traduzione degli indirizzi NAT64 durante la risoluzione degli indirizzi client DNS. Questa modalità viene utilizzata solo quando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
è abilitato.
Proprietà | |
---|---|
OT_DNS_NAT64_ALLOW
|
Consenti la traduzione degli indirizzi NAT64 durante la risoluzione dell'indirizzo del client DNS. |
OT_DNS_NAT64_DISALLOW
|
Non consentire la traduzione degli indirizzi NAT64 durante la risoluzione dell'indirizzo client DNS. |
OT_DNS_NAT64_UNSPECIFIED
|
La modalità NAT64 non è specificata. Utilizza la modalità NAT64 predefinita. |
otDnsRecursionFlag
otDnsRecursionFlag
Il tipo rappresenta il flag "Recursion Desired" (RD) in un otDnsQueryConfig
.
Proprietà | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
Indica che il server dei nomi DNS non può risolvere la query in modo ricorsivo. |
OT_DNS_FLAG_RECURSION_DESIRED
|
Indica che il server dei nomi DNS può risolvere la query in modo ricorsivo. |
OT_DNS_FLAG_UNSPECIFIED
|
Indica che il flag non è specificato. |
otDnsServiceMode
otDnsServiceMode
Il tipo rappresenta la modalità di risoluzione del servizio in un otDnsQueryConfig
.
Viene utilizzato solo durante la risoluzione del servizio client DNS otDnsClientResolveService()
. Determina i tipi di record su cui eseguire una query.
Proprietà | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Query solo per record SRV. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Query per record SRV e TXT nello stesso messaggio. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Esegui prima la query per TXT/SRV; in caso di errore, esegui la query separatamente. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Esegui una query in parallelo per SRV e TXT utilizzando messaggi separati. |
OT_DNS_SERVICE_MODE_TXT
|
Query solo per il record TXT. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
La modalità non è specificata. Utilizza la modalità di servizio predefinita. |
otDnsTransportProto
otDnsTransportProto
Il tipo rappresenta il protocollo di trasporto DNS in un otDnsQueryConfig
.
Questo OT_DNS_TRANSPORT_TCP
è supportato solo quando OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
è abilitato.
Proprietà | |
---|---|
OT_DNS_TRANSPORT_TCP
|
La query DNS deve essere inviata tramite UDP. |
OT_DNS_TRANSPORT_UDP
|
Il trasporto DNS non è specificato. |
Typedef
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Il puntatore viene chiamato quando viene ricevuta una risposta DNS per una query di risoluzione degli indirizzi.
All'interno di questo callback, l'utente può usare le funzioni otDnsAddressResponseGet{Item}()
insieme al puntatore aResponse
per avere ulteriori informazioni sulla risposta.
Il puntatore aResponse
può essere utilizzato solo all'interno di questo callback e, una volta restituito da questa funzione, non rimane valido, quindi l'utente NON DEVE conservare il puntatore aResponse
per utilizzarlo in seguito.
aError
può avere quanto segue:
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
- OT_ERROR_NONE risposta ricevuta correttamente.
- OT_ERROR_ABORT Una transazione DNS è stata interrotta dallo 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 viene mappato come segue:
- (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 dovrebbe esistere, inesistente -> OT_ERROR_NOT_FOUND
- (4) Il server NOTIMP non supporta il tipo di query (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) RIFIUTATO Server rifiutato per motivi di sicurezza/politica -> OT_ERROR_WARNING
- (6) YXDOMAIN Un nome che non dovrebbe esistere esiste -> OT_ERROR_DUPLICATED
- (7) YXRRSET Un RRset che non dovrebbe esistere esiste -> OT_ERROR_DUPLICATED
- (8) NXRRSET Qualche RRset che dovrebbe esistere, non esiste -> OT_ERROR_NOT_FOUND
- (9) Il servizio NOTAUTH non è autorevole per la zona -> OT_ERROR_LEFT
- (10) NOTZONE Un nome non è nella zona -> OT_ERROR_PARSE
- (20) BADNAME Nome errato -> OT_ERROR_PARSE
- (21) BADALG Algoritmo non valido -> OT_ERROR_WARNING
- (22) BADTRUN Troncamento errato -> OT_ERROR_PARSE
- Altri codici di risposta -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Una rappresentazione opaca di una risposta a una query DNS di risoluzione degli indirizzi.
I puntatori all'istanza di questo tipo sono forniti dal callback otDnsAddressCallback
.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
Il puntatore viene chiamato quando viene ricevuta una risposta DNS per una query di consultazione (enumerazione di istanze di servizio).
All'interno di questo callback, l'utente può usare le funzioni otDnsBrowseResponseGet{Item}()
insieme al puntatore aResponse
per avere ulteriori informazioni sulla risposta.
Il puntatore aResponse
può essere utilizzato solo all'interno di questo callback e, una volta restituito da questa funzione, non rimane valido, quindi l'utente NON DEVE conservare il puntatore aResponse
per utilizzarlo in seguito.
Per l'elenco completo dei possibili valori per aError
, consulta otDnsAddressCallback()
.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Rappresentazione opaca di una risposta a una query DNS di consultazione (enumerazione di istanze di servizio).
I puntatori all'istanza di questo tipo sono forniti dal callback otDnsBrowseCallback
.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Rappresenta una configurazione di query DNS.
Qualsiasi campo di questa struttura può essere impostato 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)
Il puntatore viene chiamato quando viene ricevuta una risposta DNS per una query di risoluzione di un'istanza di servizio.
All'interno di questo callback, l'utente può usare le funzioni otDnsServiceResponseGet{Item}()
insieme al puntatore aResponse
per avere ulteriori informazioni sulla risposta.
Il puntatore aResponse
può essere utilizzato solo all'interno di questo callback e, una volta restituito da questa funzione, non rimane valido, quindi l'utente NON DEVE conservare il puntatore aResponse
per utilizzarlo in seguito.
Per l'elenco completo dei possibili valori per aError
, consulta otDnsAddressCallback()
.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Fornisce informazioni per un'istanza di servizio DNS.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Rappresentazione opaca di una risposta a una query DNS per la risoluzione di un'istanza di servizio.
I puntatori all'istanza di questo tipo sono forniti dal callback otDnsAddressCallback
.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
Rappresenta una voce di record TXT che rappresenta una coppia chiave/valore (RFC 6763 - sezione 6.3).
I buffer di stringhe a cui punta mKey
e mValue
DEVONO rimanere invariati dopo che un'istanza di tale struttura viene passata a OpenThread (come parte dell'istanza otSrpClientService
).
Un array di voci otDnsTxtEntry
viene utilizzato in otSrpClientService
per specificare il record TXT completo (un elenco di voci).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Rappresenta un iteratore per le voci di 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.
Funzioni
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Restituisce un indirizzo IPv6 associato a una risposta DNS di risoluzione degli indirizzi.
DEVE essere utilizzato solo a partire dal giorno 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, viene restituito OT_ERROR_NOT_FOUND
.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Restituisce il nome host completo associato a una risposta DNS di risoluzione degli indirizzi.
DEVE essere utilizzato solo a partire dal giorno otDnsAddressCallback
.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Restituisce l'indirizzo IPv6 dell'host da una risposta di consultazione DNS (enumerazione di istanze di servizio).
DEVE essere utilizzato solo a partire dal giorno 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, viene restituito OT_ERROR_NOT_FOUND
.
Dettagli | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||
Valori restituiti |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
Recupera informazioni per un'istanza di servizio da una risposta di consultazione DNS (enumerazione di istanze di servizio).
DEVE essere utilizzato solo a partire dal giorno otDnsBrowseCallback
.
Una risposta DNS di consultazione può includere record SRV, TXT e AAAA per le istanze di servizio enumerate. Si tratta di un requisito DEVE e non DEVE e i server/resolver non sono tenuti a fornirlo. Questa funzione tenta di recuperare queste informazioni per una determinata istanza di servizio, se disponibile.
- Se in
aResponse
non viene trovato alcun record SRV corrispondente, viene restituitoOT_ERROR_NOT_FOUND
. In questo caso, non vengono letti record aggiuntivi (non TXT e/o AAAA). - Se in
aResponse
viene trovato un record SRV corrispondente, viene aggiornatoaServiceInfo
e restituitoOT_ERROR_NONE
. - Se non viene trovato alcun record TXT corrispondente in
aResponse
, il valore dimTxtDataSize
inaServiceInfo
viene impostato su zero. - Se la lunghezza dei dati TXT è superiore a
mTxtDataSize
, vengono letti parzialmente emTxtDataTruncated
è 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,
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 )
Restituisce un'istanza di servizio associata a una risposta di consultazione DNS (enumerazione di istanze di servizio).
DEVE essere utilizzato solo a partire dal giorno otDnsBrowseCallback
.
La risposta può includere più record di istanze di servizio. aIndex
può essere utilizzato per scorrere l'elenco. L'indice zero restituisce il primo record. Quando raggiungiamo la fine dell'elenco, viene restituito OT_ERROR_NOT_FOUND
.
Tieni presente che questa funzione ottiene 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 )
Restituisce il nome di servizio associato a una risposta di consultazione DNS (enumerazione di istanze di servizio).
DEVE essere utilizzato solo a partire dal giorno otDnsBrowseCallback
.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Invia una query di consultazione DNS (enumerazione di istanze di servizio) per un determinato nome di servizio.
È disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
è attivato.
Il valore aConfig
può essere NULL. In questo caso, verrà utilizzata la configurazione predefinita (di otDnsClientGetDefaultConfig()
) come configurazione per questa query. In un valore 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 )
Restituisce l'attuale configurazione di query predefinita utilizzata dal client DNS.
Quando si avvia lo stack OpenThread, la configurazione delle query DNS predefinita viene determinata da un insieme di opzioni di configurazione OT, ad esempio 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 alla configurazione predefinita attuale utilizzata dal client DNS.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Invia una query DNS di risoluzione degli indirizzi per i record AAAA (IPv6) per un determinato nome host.
Il valore aConfig
può essere NULL. In questo caso, verrà utilizzata la configurazione predefinita (di otDnsClientGetDefaultConfig()
) come configurazione per questa query. In un valore 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 )
Invia una query DNS di risoluzione degli indirizzi per i record A (IPv4) per un determinato nome host.
Richiede ed è disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
è attivato.
Quando viene ricevuta una risposta positiva, gli indirizzi vengono restituiti da aCallback
come versioni tradotte IPv6 NAT64 degli indirizzi IPv4 dalla risposta alla query.
Il valore aConfig
può essere NULL. In questo caso, verrà utilizzata la configurazione predefinita (di otDnsClientGetDefaultConfig()
) come configurazione per questa query. In un valore 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 )
Avvia una risoluzione dell'istanza di servizio DNS per una determinata istanza di servizio.
È disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
è attivato.
Il valore aConfig
può essere NULL. In questo caso, verrà utilizzata la configurazione predefinita (di otDnsClientGetDefaultConfig()
) come configurazione per questa query. In un valore aConfig
non NULL, alcuni campi possono essere lasciati non specificati (valore zero). I campi non specificati vengono quindi sostituiti dai valori della configurazione predefinita.
La funzione invia query per i record SRV e/o TXT per l'istanza di servizio specificata. Il campo mServiceMode
in otDnsQueryConfig
determina i record su cui eseguire la query (solo SRV, solo TXT o sia SRV che TXT) e il modo in cui eseguirla (insieme nello stesso messaggio, separatamente in parallelo o in modalità ottimizzata, in cui il client proverà prima lo stesso messaggio e poi separatamente se non riesce a ricevere una risposta).
Il record SRV fornisce informazioni sulla porta, sulla priorità e sul peso del servizio, oltre al nome host associato all'istanza di servizio. Questa funzione NON esegue la risoluzione dell'indirizzo per il nome host rilevato dal record SRV. Il server/resolver può fornire record AAAA/A per il nome host nella sezione Dati aggiuntivi della risposta alla query SRV/TXT. Queste informazioni possono essere recuperate utilizzando otDnsServiceResponseGetServiceInfo()
in otDnsServiceCallback
. Gli utenti di questa API NON DEVONO presupporre che l'indirizzo host sia sempre disponibile da otDnsServiceResponseGetServiceInfo()
.
Dettagli | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||||
Valori restituiti |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Avvia una risoluzione dell'istanza di servizio DNS per una determinata istanza di servizio, con una potenziale risoluzione dell'indirizzo di follow-up per il nome host rilevato per l'istanza di servizio.
È disponibile quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
è attivato.
Il valore aConfig
può essere NULL. In questo caso, verrà utilizzata la configurazione predefinita (di otDnsClientGetDefaultConfig()
) come configurazione per questa query. In un valore aConfig
non NULL, alcuni campi possono essere lasciati non specificati (valore zero). I campi non specificati vengono quindi sostituiti dai valori della configurazione predefinita. Questa funzione non può essere utilizzata con mServiceMode
nella configurazione DNS impostata su OT_DNS_SERVICE_MODE_TXT
(ovvero, eseguendo query solo per il record TXT) e restituirà OT_ERROR_INVALID_ARGS
.
Si comporta in modo simile all'invio di query da parte di otDnsClientResolveService()
per i record SRV e TXT. Tuttavia, se il server/resolver non fornisce record AAAA/A per il nome host nella risposta alla query SRV (nella sezione Dati aggiuntivi), eseguirà la risoluzione del nome host (invio di una query AAAA) per il nome host rilevato dal record SRV. Il callback aCallback
viene attivato quando vengono ricevute le risposte di tutte le query (ovvero, le risoluzioni degli indirizzi di servizio e host sono terminate).
Dettagli | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||||
Valori restituiti |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Consente di impostare la configurazione delle query predefinita sul client DNS.
Il valoreaConfig
può essere NULL. In questo caso, la configurazione verrà impostata sui valori predefiniti delle opzioni di configurazione OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
. In questo modo viene reimpostata la configurazione delle query predefinita alla configurazione all'avvio dello stack OpenThread.
In un valore 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 delle query predefinita.
Se 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. Questo viene fatto solo quando l'utente non lo imposta o 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 Thread per le voci del servizio DNS/SRP per selezionare un server SRP. L'indirizzo del server SRP selezionato viene impostato anche come indirizzo del server DNS nella configurazione predefinita.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
Codifica un determinato elenco di voci di record TXT (coppie chiave/valore) in dati TXT (nel seguente formato specificato da RFC 6763).
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
Analizza i dati TXT di un iteratore e recupera la voce del record TXT successiva (coppia chiave/valore).
aIterator
DEVE essere inizializzato utilizzando otDnsInitTxtEntryIterator()
prima di chiamare questa funzione e il buffer dati TXT utilizzato per inizializzare l'iteratore DEVE rimanere invariato 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_ITER_MAX_LENGTH
, la stringa di 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 |
|
||||||
Valori restituiti |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Inizializza un iteratore del record TXT.
Il puntatore del buffer aTxtData
e i relativi contenuti DEVONO rimanere invariati mentre è in uso l'oggetto aIterator
.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
Indica se la modalità "Compressione dei nomi DNS" è attivata o meno.
È destinata solo ai test ed è disponibile quando la configurazione di OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
è abilitata.
Dettagli | |
---|---|
Restituisce |
TRUE se la modalità "Compressione dei nomi DNS" è attivata, altrimenti FALSE.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Restituisce l'indirizzo IPv6 dell'host da una risposta di risoluzione dell'istanza di servizio DNS.
DEVE essere utilizzato solo a partire dal giorno 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, viene restituito OT_ERROR_NOT_FOUND
.
Dettagli | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||
Valori restituiti |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
Recupera le informazioni per un'istanza di servizio da una risposta di risoluzione di un'istanza di servizio DNS.
DEVE essere utilizzato solo da un otDnsServiceCallback
attivato da otDnsClientResolveService()
o otDnsClientResolveServiceAndHostAddress()
.
Quando viene utilizzato da un callback otDnsClientResolveService()
, la risposta DNS del server/resolver potrebbe includere record AAAA nella relativa sezione Dati aggiuntivi per il nome host associato all'istanza di servizio risolta. Si tratta di un requisito DEVE e non DEVE, in modo che i server/resolver non siano tenuti a fornirlo. Questa funzione tenta di analizzare i record AAAA se inclusi nella risposta. Se non è incluso, mHostAddress
è impostato su tutti zeri (indirizzo non specificato). Per risolvere anche l'indirizzo host, l'utente può utilizzare la funzione dell'API client DNS otDnsClientResolveServiceAndHostAddress()
, che eseguirà la risoluzione del servizio seguita da una query di risoluzione dell'indirizzo del nome host (quando il server/resolver non fornisce i record AAAA nella risposta della query SRV).
- Se in
aResponse
viene trovato un record SRV corrispondente,aServiceInfo
viene aggiornato. - Se non viene trovato alcun record SRV corrispondente, viene restituito
OT_ERROR_NOT_FOUND
, a meno che la configurazione della query per questa query non abbia utilizzatoOT_DNS_SERVICE_MODE_TXT
permServiceMode
, ovvero la richiesta riguardava solo il record TXT. In questo caso, proviamo comunque ad analizzare il record SRV dalla sezione Dati aggiuntivi della risposta (nel caso in cui le informazioni siano state fornite dal server). - Se non viene trovato alcun record TXT corrispondente in
aResponse
, il valore dimTxtDataSize
inaServiceInfo
viene impostato su zero. - Se la lunghezza dei dati TXT è superiore a
mTxtDataSize
, vengono letti parzialmente emTxtDataTruncated
è 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,
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 )
Restituisce il nome dell'istanza di servizio associato a una risposta di risoluzione dell'istanza di servizio DNS.
DEVE essere utilizzato solo a partire dal giorno otDnsServiceCallback
.
Dettagli | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||
Valori restituiti |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Attiva/disattiva la modalità "Compressione dei nomi DNS".
La compressione dei nomi DNS è abilitata per impostazione predefinita. Quando questa opzione è disabilitata, i nomi DNS vengono aggiunti come completi e mai compressi. Questo è applicabile ai moduli client/server DNS e SRP di OpenThread.
È destinata solo ai test ed è disponibile quando la configurazione di OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
è abilitata.
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 di etichetta (includere un carattere nullo alla fine della stringa).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Dimensione massima della stringa del nome (include il carattere null alla fine della stringa).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
Lunghezza massima della stringa di chiave TXT supportata da otDnsTxtEntryIterator
.
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 saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.