DNS
Modul ini mencakup fungsi yang mengontrol komunikasi DNS.
Ringkasan
Fungsi dalam modul ini hanya tersedia jika fitur OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
diaktifkan.
Enumerasi |
|
---|---|
otDnsNat64Mode{
|
enum Jenis merepresentasikan mode NAT64 dalam otDnsQueryConfig . |
otDnsRecursionFlag{
|
enum Jenis mewakili flag "Recursion Desired" (RD) dalam otDnsQueryConfig . |
otDnsServiceMode{
|
enum Jenis merepresentasikan mode resolusi layanan dalam otDnsQueryConfig . |
otDnsTransportProto{
|
enum Jenis mewakili protokol transpor DNS di otDnsQueryConfig . |
Typedef |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
Pointer dipanggil ketika respons DNS diterima untuk kueri resolusi alamat. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Representasi buram dari respons terhadap kueri DNS resolusi alamat. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Pointer dipanggil saat respons DNS diterima untuk kueri jelajah (enumerasi instance layanan). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Representasi buram respons terhadap kueri DNS penjelajahan (enumerasi instance layanan). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Mewakili konfigurasi kueri DNS. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
Pointer dipanggil saat respons DNS diterima untuk kueri resolusi instance layanan. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Memberikan info untuk instance layanan DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Representasi buram respons terhadap kueri DNS resolusi instance layanan. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Menyatakan entri data TXT yang merepresentasikan pasangan kunci/nilai (RFC 6763 - bagian 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
Mewakili iterator untuk entri data TXT (key/value pair). |
Fungsi |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Mendapatkan alamat IPv6 yang terkait dengan respons DNS resolusi alamat.
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Mendapatkan nama host lengkap yang terkait dengan respons DNS resolusi alamat.
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Mendapatkan alamat IPv6 host dari respons jelajah DNS (enumerasi instance layanan).
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
Mendapatkan info untuk instance layanan dari respons penjelajahan DNS (enumerasi instance layanan).
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
Mendapatkan instance layanan yang terkait dengan respons penjelajahan DNS (enumerasi instance layanan).
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Mendapatkan nama layanan yang terkait dengan respons jelajah DNS (enumerasi instance layanan).
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Mengirim kueri jelajah DNS (enumerasi instance layanan) untuk nama layanan tertentu.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
Mendapatkan konfigurasi kueri default saat ini yang digunakan oleh klien DNS.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Mengirim kueri DNS resolusi alamat untuk data AAAA (IPv6) untuk nama host tertentu.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Mengirim kueri DNS resolusi alamat untuk data A (IPv4) untuk nama host tertentu.
|
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Memulai resolusi instance layanan DNS untuk instance layanan tertentu.
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Memulai resolusi instance layanan DNS untuk instance layanan tertentu, dengan resolusi alamat tindak lanjut potensial untuk nama host yang ditemukan untuk instance layanan.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
Menetapkan konfigurasi kueri default pada klien DNS.
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
Mengenkode daftar entri data TXT tertentu (key/value pair) ke dalam data TXT (format mengikuti yang ditentukan oleh RFC 6763).
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
Mengurai data TXT dari iterator dan mendapatkan entri data TXT berikutnya (pasangan kunci/nilai).
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Menginisialisasi iterator data TXT.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Menunjukkan apakah mode "Kompresi nama DNS" diaktifkan atau tidak.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Mendapatkan alamat IPv6 host dari respons resolusi instance layanan DNS.
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
Mendapatkan info untuk instance layanan dari respons resolusi instance layanan DNS.
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
Mendapatkan nama instance layanan yang terkait dengan respons resolusi instance layanan DNS.
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
Mengaktifkan/menonaktifkan mode "Kompresi nama DNS".
|
Struct |
|
---|---|
otDnsQueryConfig |
Mewakili konfigurasi kueri DNS. |
otDnsServiceInfo |
Memberikan info untuk instance layanan DNS. |
otDnsTxtEntry |
Menyatakan entri data TXT yang merepresentasikan pasangan kunci/nilai (RFC 6763 - bagian 6.3). |
otDnsTxtEntryIterator |
Mewakili iterator untuk entri data TXT (key/value pair). |
Enumerasi
otDnsNat64Mode
otDnsNat64Mode
Jenis merepresentasikan mode NAT64 dalam otDnsQueryConfig
.
Mode NAT64 menunjukkan apakah akan mengizinkan atau melarang terjemahan alamat NAT64 selama resolusi alamat klien DNS. Mode ini hanya digunakan saat OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
diaktifkan.
Properti | |
---|---|
OT_DNS_NAT64_ALLOW
|
Mengizinkan penafsiran alamat NAT64 selama resolusi alamat klien DNS. |
OT_DNS_NAT64_DISALLOW
|
Jangan izinkan penerjemahan alamat NAT64 selama resolusi alamat klien DNS. |
OT_DNS_NAT64_UNSPECIFIED
|
Mode NAT64 tidak ditentukan. Gunakan mode NAT64 default. |
otDnsRecursionFlag
otDnsRecursionFlag
Jenis mewakili flag "Recursion Desired" (RD) dalam otDnsQueryConfig
.
Properti | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
Menunjukkan bahwa server nama DNS tidak dapat me-resolve kueri secara rekursif. |
OT_DNS_FLAG_RECURSION_DESIRED
|
Menunjukkan bahwa server nama DNS dapat menyelesaikan kueri secara rekursif. |
OT_DNS_FLAG_UNSPECIFIED
|
Menunjukkan bahwa flag tidak ditentukan. |
otDnsServiceMode
otDnsServiceMode
Jenis merepresentasikan mode resolusi layanan dalam otDnsQueryConfig
.
Setelan ini hanya digunakan selama resolusi layanan klien DNS otDnsClientResolveService()
. Menentukan jenis data yang akan dikueri.
Properti | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Kueri hanya untuk catatan SRV. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Kueri untuk data SRV dan TXT dalam pesan yang sama. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Buat kueri untuk TXT/SRV bersama-sama terlebih dahulu, jika gagal, maka kueri secara terpisah. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Kueri secara paralel untuk SRV dan TXT menggunakan pesan terpisah. |
OT_DNS_SERVICE_MODE_TXT
|
Kueri hanya untuk data TXT. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
Mode tidak ditentukan. Gunakan mode layanan default. |
otDnsTransportProto
otDnsTransportProto
Jenis mewakili protokol transpor DNS di otDnsQueryConfig
.
OT_DNS_TRANSPORT_TCP
ini hanya didukung jika OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
diaktifkan.
Properti | |
---|---|
OT_DNS_TRANSPORT_TCP
|
Kueri DNS harus dikirim melalui UDP. |
OT_DNS_TRANSPORT_UDP
|
Transpor DNS tidak ditentukan. |
Typedef
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Pointer dipanggil ketika respons DNS diterima untuk kueri resolusi alamat.
Dalam callback ini, pengguna dapat menggunakan fungsi otDnsAddressResponseGet{Item}()
beserta pointer aResponse
untuk mendapatkan info selengkapnya tentang respons.
Pointer aResponse
hanya dapat digunakan dalam callback ini dan setelah kembali dari fungsi ini, pointer tidak akan tetap valid, sehingga pengguna TIDAK BOLEH mempertahankan pointer aResponse
untuk digunakan nanti.
aError
dapat memiliki hal berikut:
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
- OT_ERROR_NONE Respons berhasil diterima.
- OT_ERROR_ABORT Transaksi DNS dibatalkan oleh tumpukan.
- OT_ERROR_RESPONSE_TIMEOUT Tidak ada tanggapan DNS yang diterima selama waktu tunggu.
Jika server menolak permintaan resolusi alamat, kode error dari server akan dipetakan sebagai berikut:
- (0) NOERROR Berhasil (kondisi tanpa error) -> OT_ERROR_NONE
- (1) Server FORMERR tidak dapat ditafsirkan karena kesalahan format -> OT_ERROR_PARSE
- (2) Server SERVFAIL mengalami kegagalan internal -> OT_ERROR_FAILED
- (3) Nama NXDOMAIN yang seharusnya ada, tidak ada -> OT_ERROR_NOT_FOUND
- (4) Server NOTIMP tidak mendukung jenis kueri (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) REFUSE Server ditolak karena alasan kebijakan/keamanan -> OT_ERROR_ERROR
- (6) YXDOMAIN Beberapa nama yang seharusnya tidak ada, memang ada -> OT_ERROR_DUPLICATED
- (7) YXRRSET Beberapa RRset yang seharusnya tidak ada, memang ada -> OT_ERROR_DUPLICATED
- (8) NXRRSET Beberapa RRset yang seharusnya ada, tidak ada -> OT_ERROR_NOT_FOUND
- (9) Layanan NOTAUTH tidak bersifat otoritatif untuk zona -> OT_ERROR_ERROR
- (10) NOTZONE Nama tidak ada di zona -> OT_ERROR_PARSE
- (20) BADNAME Nama buruk -> OT_ERROR_PARSE
- (21) BADALG Bad algoritme -> OT_ERROR_ERROR
- (22) BADTRUN Pemotongan buruk -> OT_ERROR_PARSE
- Kode respons lainnya -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Representasi buram dari respons terhadap kueri DNS resolusi alamat.
Pointer ke instance jenis ini disediakan dari callback otDnsAddressCallback
.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
Pointer dipanggil saat respons DNS diterima untuk kueri jelajah (enumerasi instance layanan).
Dalam callback ini, pengguna dapat menggunakan fungsi otDnsBrowseResponseGet{Item}()
beserta pointer aResponse
untuk mendapatkan info selengkapnya tentang respons.
Pointer aResponse
hanya dapat digunakan dalam callback ini dan setelah kembali dari fungsi ini, pointer tidak akan tetap valid, sehingga pengguna TIDAK BOLEH mempertahankan pointer aResponse
untuk digunakan nanti.
Untuk daftar lengkap kemungkinan nilai untuk aError
, lihat otDnsAddressCallback()
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Representasi buram respons terhadap kueri DNS penjelajahan (enumerasi instance layanan).
Pointer ke instance jenis ini disediakan dari callback otDnsBrowseCallback
.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Mewakili konfigurasi kueri DNS.
Kolom apa pun dalam struktur ini dapat disetel ke nol untuk menunjukkan bahwa kolom tersebut tidak ditentukan. Cara penanganan kolom yang tidak ditentukan ditentukan oleh fungsi yang menggunakan instance otDnsQueryConfig
.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
Pointer dipanggil saat respons DNS diterima untuk kueri resolusi instance layanan.
Dalam callback ini, pengguna dapat menggunakan fungsi otDnsServiceResponseGet{Item}()
beserta pointer aResponse
untuk mendapatkan info selengkapnya tentang respons.
Pointer aResponse
hanya dapat digunakan dalam callback ini dan setelah kembali dari fungsi ini, pointer tidak akan tetap valid, sehingga pengguna TIDAK BOLEH mempertahankan pointer aResponse
untuk digunakan nanti.
Untuk daftar lengkap kemungkinan nilai untuk aError
, lihat otDnsAddressCallback()
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Memberikan info untuk instance layanan DNS.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Representasi buram respons terhadap kueri DNS resolusi instance layanan.
Pointer ke instance jenis ini disediakan dari callback otDnsAddressCallback
.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
Menyatakan entri data TXT yang merepresentasikan pasangan kunci/nilai (RFC 6763 - bagian 6.3).
Buffer string yang ditunjuk oleh mKey
dan mValue
HARUS tetap ada dan tidak berubah setelah instance struktur tersebut diteruskan ke OpenThread (sebagai bagian dari instance otSrpClientService
).
Array entri otDnsTxtEntry
digunakan di otSrpClientService
untuk menentukan data TXT lengkap (daftar entri).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Mewakili iterator untuk entri data TXT (key/value pair).
Kolom data dalam struktur ini dimaksudkan untuk digunakan oleh inti OpenThread dan pemanggil tidak boleh membaca atau mengubahnya.
Fungsi
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Mendapatkan alamat IPv6 yang terkait dengan respons DNS resolusi alamat.
HARUS hanya digunakan dari otDnsAddressCallback
.
Respons dapat mencakup beberapa data alamat IPv6. aIndex
dapat digunakan untuk melakukan iterasi melalui daftar alamat. Indeks nol mendapatkan alamat pertama, dan seterusnya. Saat sudah mencapai akhir daftar, OT_ERROR_NOT_FOUND
akan ditampilkan.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Mendapatkan nama host lengkap yang terkait dengan respons DNS resolusi alamat.
HARUS hanya digunakan dari otDnsAddressCallback
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Mendapatkan alamat IPv6 host dari respons jelajah DNS (enumerasi instance layanan).
HARUS hanya digunakan dari otDnsBrowseCallback
.
Responsnya dapat mencakup nol atau beberapa data alamat IPv6. aIndex
dapat digunakan untuk melakukan iterasi melalui daftar alamat. Indeks nol mendapatkan alamat pertama, dan seterusnya. Saat sudah mencapai akhir daftar, OT_ERROR_NOT_FOUND
akan ditampilkan.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Nilai Pengembalian |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
Mendapatkan info untuk instance layanan dari respons penjelajahan DNS (enumerasi instance layanan).
HARUS hanya digunakan dari otDnsBrowseCallback
.
Respons DNS penjelajahan dapat menyertakan data SRV, TXT, dan AAAA untuk instance layanan yang dienumerasi. Ini SEHARUS dan bukan persyaratan HARUS, dan server/resolver tidak diwajibkan untuk memberikannya. Fungsi ini mencoba mengambil info ini untuk instance layanan tertentu jika tersedia.
- Jika tidak ditemukan data SRV yang cocok di
aResponse
,OT_ERROR_NOT_FOUND
akan ditampilkan. Dalam hal ini, tidak ada data tambahan (tidak ada TXT dan/atau AAAA) yang dibaca. - Jika data SRV yang cocok ditemukan di
aResponse
,aServiceInfo
akan diperbarui danOT_ERROR_NONE
akan ditampilkan. - Jika tidak ditemukan data TXT yang cocok di
aResponse
,mTxtDataSize
dalamaServiceInfo
disetel ke nol. - Jika panjang data TXT lebih besar dari
mTxtDataSize
, data akan dibaca sebagian danmTxtDataTruncated
disetel ke benar (true). - Jika tidak ditemukan data AAAA yang cocok di
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()`.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
Mendapatkan instance layanan yang terkait dengan respons penjelajahan DNS (enumerasi instance layanan).
HARUS hanya digunakan dari otDnsBrowseCallback
.
Responsnya dapat mencakup beberapa data instance layanan. aIndex
dapat digunakan untuk melakukan iterasi melalui daftar. Indeks nol menghasilkan record pertama. Saat sudah mencapai akhir daftar, OT_ERROR_NOT_FOUND
akan ditampilkan.
Perhatikan bahwa fungsi ini mendapatkan label instance layanan, bukan nama instance layanan lengkap yang berbentuk
.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Mendapatkan nama layanan yang terkait dengan respons jelajah DNS (enumerasi instance layanan).
HARUS hanya digunakan dari otDnsBrowseCallback
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Mengirim kueri jelajah DNS (enumerasi instance layanan) untuk nama layanan tertentu.
Tersedia saat OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
diaktifkan.
aConfig
dapat menjadi NULL. Dalam hal ini, konfigurasi default (dari otDnsClientGetDefaultConfig()
) akan digunakan sebagai konfigurasi untuk kueri ini. Pada aConfig
non-NULL, beberapa kolom dapat dibiarkan tidak ditentukan (nilai nol). Kolom yang tidak ditentukan kemudian diganti dengan nilai dari konfigurasi default.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Nilai Pengembalian |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
Mendapatkan konfigurasi kueri default saat ini yang digunakan oleh klien DNS.
Saat stack OpenThread dimulai, konfigurasi kueri DNS default ditentukan dari kumpulan opsi konfigurasi OT seperti OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
, dll. (lihat config/dns_client.h
untuk semua opsi konfigurasi terkait).
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke konfigurasi default saat ini yang digunakan oleh klien DNS.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Mengirim kueri DNS resolusi alamat untuk data AAAA (IPv6) untuk nama host tertentu.
aConfig
dapat menjadi NULL. Dalam hal ini, konfigurasi default (dari otDnsClientGetDefaultConfig()
) akan digunakan sebagai konfigurasi untuk kueri ini. Pada aConfig
non-NULL, beberapa kolom dapat dibiarkan tidak ditentukan (nilai nol). Kolom yang tidak ditentukan kemudian diganti dengan nilai dari konfigurasi default.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Nilai Pengembalian |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Mengirim kueri DNS resolusi alamat untuk data A (IPv4) untuk nama host tertentu.
Memerlukan dan tersedia saat OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
diaktifkan.
Saat respons yang berhasil diterima, alamat akan ditampilkan dari aCallback
sebagai versi terjemahan IPv6 NAT64 dari alamat IPv4 dari respons kueri.
aConfig
dapat menjadi NULL. Dalam hal ini, konfigurasi default (dari otDnsClientGetDefaultConfig()
) akan digunakan sebagai konfigurasi untuk kueri ini. Pada aConfig
non-NULL, beberapa kolom dapat dibiarkan tidak ditentukan (nilai nol). Kolom yang tidak ditentukan kemudian diganti dengan nilai dari konfigurasi default.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Nilai Pengembalian |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Memulai resolusi instance layanan DNS untuk instance layanan tertentu.
Tersedia saat OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
diaktifkan.
aConfig
dapat menjadi NULL. Dalam hal ini, konfigurasi default (dari otDnsClientGetDefaultConfig()
) akan digunakan sebagai konfigurasi untuk kueri ini. Pada aConfig
non-NULL, beberapa kolom dapat dibiarkan tidak ditentukan (nilai nol). Kolom yang tidak ditentukan kemudian diganti dengan nilai dari konfigurasi default.
Fungsi mengirim kueri untuk data SRV dan/atau TXT untuk instance layanan yang diberikan. Kolom mServiceMode
di otDnsQueryConfig
menentukan catatan mana yang akan dikueri (khusus SRV, hanya TXT, atau SRV dan TXT) serta cara melakukan kueri (bersama-sama dalam pesan yang sama, secara terpisah secara paralel, atau dalam mode yang dioptimalkan di mana klien akan mencoba dalam pesan yang sama terlebih dahulu lalu secara terpisah jika gagal mendapatkan respons).
Catatan SRV menyediakan informasi tentang porta, prioritas, dan bobot layanan beserta nama {i>host<i} yang terkait dengan {i>instance<i} layanan. Fungsi ini TIDAK melakukan resolusi alamat untuk nama {i>host<i} yang ditemukan dari catatan SRV. Server/resolver dapat menyediakan data AAAA/A untuk nama host di bagian Data Tambahan respons terhadap kueri SRV/TXT dan informasi ini dapat diambil menggunakan otDnsServiceResponseGetServiceInfo()
dalam otDnsServiceCallback
. Pengguna API ini TIDAK BOLEH berasumsi bahwa alamat host akan selalu tersedia dari otDnsServiceResponseGetServiceInfo()
.
Detail | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Nilai Pengembalian |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Memulai resolusi instance layanan DNS untuk instance layanan tertentu, dengan resolusi alamat tindak lanjut potensial untuk nama host yang ditemukan untuk instance layanan.
Tersedia saat OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
diaktifkan.
aConfig
dapat menjadi NULL. Dalam hal ini, konfigurasi default (dari otDnsClientGetDefaultConfig()
) akan digunakan sebagai konfigurasi untuk kueri ini. Pada aConfig
non-NULL, beberapa kolom dapat dibiarkan tidak ditentukan (nilai nol). Kolom yang tidak ditentukan kemudian diganti dengan nilai dari konfigurasi default. Fungsi ini tidak dapat digunakan dengan mServiceMode
dalam konfigurasi DNS yang ditetapkan ke OT_DNS_SERVICE_MODE_TXT
(yaitu, membuat kueri untuk data TXT saja) dan akan menampilkan OT_ERROR_INVALID_ARGS
.
Berperilaku mirip dengan otDnsClientResolveService()
yang mengirim kueri untuk data SRV dan TXT. Akan tetapi, jika server/resolver tidak memberikan data AAAA/A untuk nama host sebagai respons terhadap kueri SRV (di bagian Data Tambahan), maka server/resolver akan melakukan resolusi nama host (mengirimkan kueri AAAA) untuk nama host yang ditemukan dari data SRV. Callback aCallback
dipanggil saat respons untuk semua kueri diterima (yaitu, resolusi layanan dan alamat host selesai).
Detail | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Nilai Pengembalian |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Menetapkan konfigurasi kueri default pada klien DNS.
aConfig
dapat menjadi NULL. Dalam hal ini, konfigurasi default akan disetel ke default dari opsi konfigurasi OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
. Tindakan ini akan mereset konfigurasi kueri default kembali ke konfigurasi saat stack OpenThread dimulai.
Pada aConfig
non-NULL, pemanggil dapat memilih untuk membiarkan beberapa kolom dalam instance otDnsQueryConfig
tidak ditentukan (nilai nol). Kolom yang tidak ditentukan diganti dengan definisi opsi konfigurasi OT yang sesuai OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
untuk membentuk konfigurasi kueri default.
Jika OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
diaktifkan, alamat IPv6 server di konfigurasi default akan otomatis ditetapkan dan diperbarui oleh klien DNS. Hal ini hanya dilakukan jika pengguna tidak secara eksplisit menetapkan atau menentukannya. Perilaku ini mengharuskan klien SRP dan fitur mulai otomatisnya diaktifkan. Klien SRP kemudian akan memantau entri Data Jaringan Thread untuk Layanan DNS/SRP guna memilih server SRP. Alamat server SRP yang dipilih juga ditetapkan sebagai alamat server DNS dalam konfigurasi default.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
Mengenkode daftar entri data TXT tertentu (key/value pair) ke dalam data TXT (format mengikuti yang ditentukan oleh RFC 6763).
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
Mengurai data TXT dari iterator dan mendapatkan entri data TXT berikutnya (pasangan kunci/nilai).
aIterator
HARUS diinisialisasi menggunakan otDnsInitTxtEntryIterator()
sebelum memanggil fungsi ini dan buffering data TXT yang digunakan untuk menginisialisasi iterator HARUS bertahan dan tidak berubah. Jika tidak, perilaku fungsi ini tidak ditentukan.
Jika panjang string kunci yang diuraikan lebih kecil dari atau sama dengan OT_DNS_TXT_KEY_ITER_MAX_LENGTH
, string kunci akan ditampilkan dalam mKey
di aEntry
. Namun, jika kunci lebih panjang, mKey
disetel ke NULL dan seluruh string entri TXT yang dienkode akan ditampilkan dalam mValue
dan mValueLength
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Menginisialisasi iterator data TXT.
Pointer buffer aTxtData
dan kontennya HARUS dipertahankan dan tidak berubah selama objek aIterator
sedang digunakan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
Menunjukkan apakah mode "Kompresi nama DNS" diaktifkan atau tidak.
Hal ini hanya dimaksudkan untuk pengujian dan tersedia saat konfigurasi OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
diaktifkan.
Detail | |
---|---|
Hasil |
TRUE jika mode "kompresi nama DNS" diaktifkan, FALSE jika tidak.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Mendapatkan alamat IPv6 host dari respons resolusi instance layanan DNS.
HARUS hanya digunakan dari otDnsServiceCallback
.
Responsnya dapat mencakup nol atau beberapa data alamat IPv6. aIndex
dapat digunakan untuk melakukan iterasi melalui daftar alamat. Indeks nol mendapatkan alamat pertama, dan seterusnya. Saat sudah mencapai akhir daftar, OT_ERROR_NOT_FOUND
akan ditampilkan.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Nilai Pengembalian |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
Mendapatkan info untuk instance layanan dari respons resolusi instance layanan DNS.
HARUS digunakan hanya dari otDnsServiceCallback
yang dipicu dari otDnsClientResolveService()
atau otDnsClientResolveServiceAndHostAddress()
.
Jika ini digunakan dari callback otDnsClientResolveService()
, respons DNS dari server/resolver dapat menyertakan data AAAA di bagian Data Tambahan untuk nama host yang terkait dengan instance layanan yang diselesaikan. Ini SEHARUS dan bukan persyaratan HARUS, sehingga server/resolver tidak diwajibkan untuk memberikannya. Fungsi ini mencoba mengurai data AAAA jika disertakan dalam respons. Jika tidak disertakan, mHostAddress
disetel ke semua angka nol (alamat yang tidak ditentukan). Selain itu, untuk me-resolve alamat host, pengguna dapat menggunakan fungsi API klien DNS otDnsClientResolveServiceAndHostAddress()
yang akan melakukan resolusi layanan yang diikuti dengan kueri resolusi alamat nama host (saat data AAAA tidak disediakan oleh server/resolver dalam respons kueri SRV).
- Jika data SRV yang cocok ditemukan di
aResponse
,aServiceInfo
akan diperbarui. - Jika tidak ditemukan data SRV yang cocok,
OT_ERROR_NOT_FOUND
akan ditampilkan kecuali jika konfigurasi kueri untuk kueri ini menggunakanOT_DNS_SERVICE_MODE_TXT
untukmServiceMode
(artinya permintaan hanya untuk data TXT). Dalam hal ini, kita masih mencoba mengurai catatan SRV dari Bagian Data Tambahan dari respons (jika server memberikan info). - Jika tidak ditemukan data TXT yang cocok di
aResponse
,mTxtDataSize
dalamaServiceInfo
disetel ke nol. - Jika panjang data TXT lebih besar dari
mTxtDataSize
, data akan dibaca sebagian danmTxtDataTruncated
disetel ke benar (true). - Jika tidak ditemukan data AAAA yang cocok di
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()`.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
Mendapatkan nama instance layanan yang terkait dengan respons resolusi instance layanan DNS.
HARUS hanya digunakan dari otDnsServiceCallback
.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Nilai Pengembalian |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Mengaktifkan/menonaktifkan mode "Kompresi nama DNS".
Secara default, kompresi nama DNS diaktifkan. Jika dinonaktifkan, nama DNS akan ditambahkan sebagai lengkap dan tidak pernah dikompresi. Ini berlaku untuk modul klien/server DNS dan SRP OpenThread.
Hal ini hanya dimaksudkan untuk pengujian dan tersedia saat konfigurasi OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
diaktifkan.
Perhatikan bahwa jika OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
digunakan, mode ini berlaku untuk semua instance OpenThread (yaitu memanggil fungsi ini akan mengaktifkan/menonaktifkan mode kompresi pada semua instance OpenThread).
Detail | |||
---|---|---|---|
Parameter |
|
Makro
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
Ukuran string label maksimum (sertakan karakter null di akhir string).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Ukuran maksimum string nama (menyertakan karakter null di akhir string).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
Panjang maksimum string kunci TXT yang didukung oleh otDnsTxtEntryIterator
.
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
Panjang maksimum string kunci data TXT yang direkomendasikan (RFC 6763 - bagian 6.4).
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
Panjang minimum string kunci data TXT (RFC 6763 - bagian 6.4).
Referensi
Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.