Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

DNSv6

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 {
OT_DNS_NAT64_UNSPECIFIED = 0,
OT_DNS_NAT64_ALLOW = 1,
OT_DNS_NAT64_DISALLOW = 2
}
enum
Jenis pencacahan ini merupakan modus NAT64 dalam otDnsQueryConfig .
otDnsRecursionFlag {
OT_DNS_FLAG_UNSPECIFIED = 0,
OT_DNS_FLAG_RECURSION_DESIRED = 1,
OT_DNS_FLAG_NO_RECURSION = 2
}
enum
Jenis pencacahan ini merupakan "Rekursi Diinginkan" (RD) bendera dalam otDnsQueryConfig .

Typedefs

otDnsAddressCallback )(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
Penunjuk fungsi ini dipanggil saat respons DNS diterima untuk kueri resolusi alamat.
otDnsAddressResponse typedef
Jenis ini adalah representasi buram dari respons terhadap kueri DNS resolusi alamat.
otDnsBrowseCallback )(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
Penunjuk fungsi ini dipanggil saat respons DNS diterima untuk kueri penelusuran (enumerasi instans layanan).
otDnsBrowseResponse typedef
Jenis ini adalah representasi buram dari respons terhadap kueri DNS penelusuran (enumerasi instance layanan).
otDnsQueryConfig typedef
Struktur ini mewakili konfigurasi permintaan DNS.
otDnsServiceCallback )(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
Penunjuk fungsi ini dipanggil saat respons DNS diterima untuk kueri resolusi instans layanan.
otDnsServiceInfo typedef
Struktur ini menyediakan info untuk instance layanan DNS.
otDnsServiceResponse typedef
Jenis ini adalah representasi buram dari respons terhadap kueri DNS resolusi instans layanan.
otDnsTxtEntry typedef
Struktur ini mewakili entri catatan TXT yang mewakili pasangan kunci/nilai (RFC 6763 - bagian 6.3).
otDnsTxtEntryIterator typedef
Struktur ini mewakili iterator untuk keseluruhan record TXT (pasangan kunci/nilai).

Fungsi

otDnsAddressResponseGetAddress (const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Fungsi ini mendapatkan alamat IPv6 yang terkait dengan respons DNS resolusi alamat.
otDnsAddressResponseGetHostName (const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Fungsi ini 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)
Fungsi ini mendapatkan alamat IPv6 host dari respons penelusuran DNS (enumerasi instance layanan).
otDnsBrowseResponseGetServiceInfo (const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
Fungsi ini mendapatkan info untuk instance layanan dari respons penelusuran DNS (enumerasi instance layanan).
otDnsBrowseResponseGetServiceInstance (const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
Fungsi ini mendapatkan instance layanan yang terkait dengan respons penelusuran DNS (enumerasi instance layanan).
otDnsBrowseResponseGetServiceName (const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Fungsi ini mendapatkan nama layanan yang terkait dengan respons penelusuran DNS (enumerasi instance layanan).
otDnsClientBrowse ( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Fungsi ini mengirimkan kueri penelusuran DNS (enumerasi instance layanan) untuk nama layanan tertentu.
otDnsClientGetDefaultConfig ( otInstance *aInstance)
Fungsi ini mendapatkan konfigurasi kueri default saat ini yang digunakan oleh klien DNS.
otDnsClientResolveAddress ( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Fungsi ini mengirimkan kueri DNS resolusi alamat untuk catatan AAAA (IPv6) untuk nama host yang diberikan.
otDnsClientResolveService ( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Fungsi ini mengirimkan kueri resolusi instans layanan DNS untuk instans layanan tertentu.
otDnsClientSetDefaultConfig ( otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
Fungsi ini menetapkan konfigurasi kueri default pada klien DNS.
otDnsGetNextTxtEntry ( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
Fungsi ini mem-parsing data TXT dari iterator dan mendapatkan entri catatan TXT berikutnya (pasangan kunci/nilai).
otDnsInitTxtEntryIterator ( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
void
Fungsi ini menginisialisasi iterator rekaman TXT.
otDnsIsNameCompressionEnabled (void)
bool
Fungsi ini menunjukkan apakah mode "kompresi nama DNS" diaktifkan atau tidak.
otDnsServiceResponseGetHostAddress (const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Fungsi ini mendapatkan alamat IPv6 host dari respons resolusi instance layanan DNS.
otDnsServiceResponseGetServiceInfo (const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
Fungsi ini 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)
Fungsi ini mendapatkan nama instance layanan yang terkait dengan respons resolusi instance layanan DNS.
otDnsSetNameCompressionEnabled (bool aEnabled)
void
Fungsi ini mengaktifkan/menonaktifkan mode "kompresi nama DNS".

Struktur

otDnsQueryConfig

Struktur ini mewakili konfigurasi permintaan DNS.

otDnsServiceInfons

Struktur ini menyediakan info untuk instance layanan DNS.

otDnsTxtEntry

Struktur ini mewakili entri catatan TXT yang mewakili pasangan kunci/nilai (RFC 6763 - bagian 6.3).

otDnsTxtEntryIterator

Struktur ini mewakili iterator untuk keseluruhan record TXT (pasangan kunci/nilai).

Enumerasi

otDnsNat64Mode

 otDnsNat64Mode

Jenis pencacahan ini merupakan modus NAT64 dalam otDnsQueryConfig .

Mode NAT64 menunjukkan apakah akan mengizinkan atau melarang terjemahan alamat NAT64 selama resolusi alamat klien DNS. Mode ini hanya digunakan ketika OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE diaktifkan.

Properti
OT_DNS_NAT64_ALLOW

Izinkan terjemahan alamat NAT64 selama resolusi alamat klien DNS.

OT_DNS_NAT64_DISALLOW

Jangan izinkan terjemahan alamat NAT64 selama resolusi alamat klien DNS.

OT_DNS_NAT64_UNSPECIFIED

Mode NAT64 tidak ditentukan. Gunakan mode NAT64 default.

otDnsRecursionFlag

 otDnsRecursionFlag

Jenis pencacahan ini merupakan "Rekursi Diinginkan" (RD) bendera dalam otDnsQueryConfig .

Properti
OT_DNS_FLAG_NO_RECURSION

Menunjukkan server nama DNS tidak dapat menyelesaikan kueri secara rekursif.

OT_DNS_FLAG_RECURSION_DESIRED

Menunjukkan server nama DNS dapat menyelesaikan kueri secara rekursif.

OT_DNS_FLAG_UNSPECIFIED

Menunjukkan bendera tidak ditentukan.

Typedefs

otDnsAddressCallback

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

Penunjuk fungsi ini dipanggil saat respons DNS diterima untuk kueri resolusi alamat.

Dalam callback ini pengguna dapat menggunakan otDnsAddressResponseGet{Item}() fungsi bersama dengan aResponse pointer untuk mendapatkan info lebih lanjut tentang respon.

The aResponse pointer hanya dapat digunakan dalam callback ini dan setelah kembali dari fungsi ini tidak akan tetap berlaku, sehingga pengguna TIDAK HARUS mempertahankan aResponse pointer untuk digunakan nanti.

The aError dapat memiliki berikut:

rincian
Parameter
[in] aError
Hasil dari transaksi DNS.
[in] aResponse
Pointer ke respons (selalu non-NULL).
[in] aContext
Pointer ke konteks khusus aplikasi.

  • OT_ERROR_NONE Respons berhasil diterima.
  • OT_ERROR_ABORT Transaksi DNS dibatalkan oleh tumpukan.
  • OT_ERROR_RESPONSE_TIMEOUT Tidak ada respons DNS yang diterima dalam batas waktu.

Jika server menolak permintaan resolusi alamat, kode kesalahan dari server dipetakan sebagai berikut:

  • (0) NOERROR Sukses (tidak ada kondisi error) -> OT_ERROR_NONE
  • (1) FORMERR Server tidak dapat menafsirkan karena kesalahan format -> OT_ERROR_PARSE
  • (2) Server SERVFAIL mengalami kegagalan internal -> OT_ERROR_FAILED
  • (3) NXDOMAIN Nama yang seharusnya ada, tidak ada -> OT_ERROR_NOT_FOUND
  • (4) Server NOTIMP tidak mendukung jenis kueri (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) DITOLAK Server ditolak karena alasan kebijakan/keamanan -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Beberapa nama yang seharusnya tidak ada, ternyata ada -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Beberapa RRset yang seharusnya tidak ada, ternyata ada -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Beberapa RRset yang seharusnya ada, tidak ada -> OT_ERROR_NOT_FOUND
  • (9) Layanan NOTAUTH tidak otoritatif untuk zona -> OT_ERROR_SECURITY
  • (10) NOTZONE Nama tidak ada di zona -> OT_ERROR_PARSE
  • (20) NAMA BURUK Nama buruk -> OT_ERROR_PARSE
  • (21) BADALG Algoritma buruk -> OT_ERROR_SECURITY
  • (22) BADTRUN Pemotongan buruk -> OT_ERROR_PARSE
  • Kode respons lainnya -> OT_ERROR_FAILED

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

Jenis ini adalah representasi buram dari respons terhadap kueri DNS resolusi alamat.

Pointer ke contoh dari jenis ini disediakan dari callback otDnsAddressCallback .

otDnsBrowseCallback

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

Penunjuk fungsi ini dipanggil saat respons DNS diterima untuk kueri penelusuran (enumerasi instans layanan).

Dalam callback ini pengguna dapat menggunakan otDnsBrowseResponseGet{Item}() fungsi bersama dengan aResponse pointer untuk mendapatkan info lebih lanjut tentang respon.

The aResponse pointer hanya dapat digunakan dalam callback ini dan setelah kembali dari fungsi ini tidak akan tetap berlaku, sehingga pengguna TIDAK HARUS mempertahankan aResponse pointer untuk digunakan nanti.

Untuk daftar lengkap nilai yang mungkin untuk aError , silakan lihat otDnsAddressCallback() .

rincian
Parameter
[in] aError
Hasil dari transaksi DNS.
[in] aResponse
Pointer ke respons (selalu non-NULL).
[in] aContext
Pointer ke konteks khusus aplikasi.

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

Jenis ini adalah representasi buram dari respons terhadap kueri DNS penelusuran (enumerasi instance layanan).

Pointer ke contoh dari jenis ini disediakan dari callback otDnsBrowseCallback .

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

Struktur ini mewakili konfigurasi permintaan DNS.

Setiap bidang dalam struktur ini dapat disetel ke nol untuk menunjukkan bahwa itu tidak ditentukan. Bagaimana bidang yang tidak ditentukan diperlakukan ditentukan oleh fungsi yang menggunakan contoh otDnsQueryConfig .

otDnsServiceCallback

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

Penunjuk fungsi ini dipanggil saat respons DNS diterima untuk kueri resolusi instans layanan.

Dalam callback ini pengguna dapat menggunakan otDnsServiceResponseGet{Item}() fungsi bersama dengan aResponse pointer untuk mendapatkan info lebih lanjut tentang respon.

The aResponse pointer hanya dapat digunakan dalam callback ini dan setelah kembali dari fungsi ini tidak akan tetap berlaku, sehingga pengguna TIDAK HARUS mempertahankan aResponse pointer untuk digunakan nanti.

Untuk daftar lengkap nilai yang mungkin untuk aError , silakan lihat otDnsAddressCallback() .

rincian
Parameter
[in] aError
Hasil dari transaksi DNS.
[in] aResponse
Pointer ke respons (selalu non-NULL).
[in] aContext
Pointer ke konteks khusus aplikasi.

otDnsServiceInfons

struct otDnsServiceInfo otDnsServiceInfo

Struktur ini menyediakan info untuk instance layanan DNS.

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

Jenis ini adalah representasi buram dari respons terhadap kueri DNS resolusi instans layanan.

Pointer ke contoh dari jenis ini disediakan dari callback otDnsAddressCallback .

otDnsTxtEntry

struct otDnsTxtEntry otDnsTxtEntry

Struktur ini mewakili entri catatan TXT yang mewakili pasangan kunci/nilai (RFC 6763 - bagian 6.3).

Buffer string yang ditunjuk oleh mKey dan mValue HARUS bertahan dan tetap tidak berubah setelah sebuah contoh dari struktur tersebut akan diteruskan ke OpenThread (sebagai bagian dari otSrpClientService misalnya).

Array otDnsTxtEntry entri digunakan dalam otSrpClientService untuk menentukan data TXT penuh (daftar entri).

otDnsTxtEntryIterator

struct otDnsTxtEntryIterator otDnsTxtEntryIterator

Struktur ini mewakili iterator untuk keseluruhan record TXT (pasangan kunci/nilai).

Bidang 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
)

Fungsi ini mendapatkan alamat IPv6 yang terkait dengan respons DNS resolusi alamat.

Fungsi ini harus hanya digunakan dari otDnsAddressCallback .

Responsnya mungkin termasuk beberapa catatan alamat IPv6. aIndex dapat digunakan untuk iterate melalui daftar alamat. Indeks nol mendapat alamat pertama dan seterusnya. Ketika kita mencapai akhir daftar, OT_ERROR_NOT_FOUND dikembalikan.

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[in] aIndex
Indeks catatan alamat yang akan diambil.
[out] aAddress
Pointer ke alamat IPv6 untuk menampilkan alamat (HARUS TIDAK NULL).
[out] aTtl
Sebuah pointer ke uint32_t untuk output TTL untuk alamat. Bisa NULL jika penelepon tidak ingin mendapatkan TTL.
Mengembalikan Nilai
OT_ERROR_NONE
Alamat berhasil dibaca.
OT_ERROR_NOT_FOUND
Tidak ada catatan alamat di aResponse di aIndex .
OT_ERROR_PARSE
Tidak dapat mengurai catatan di aResponse .

otDnsAddressResponseGetHostName

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

Fungsi ini mendapatkan nama host lengkap yang terkait dengan respons DNS resolusi alamat.

Fungsi ini harus hanya digunakan dari otDnsAddressCallback .

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[out] aNameBuffer
Buffer ke array char untuk menampilkan nama host lengkap (HARUS TIDAK NULL).
[in] aNameBufferSize
Ukuran aNameBuffer .
Mengembalikan Nilai
OT_ERROR_NONE
Nama host lengkap berhasil dibaca.
OT_ERROR_NO_BUFS
Nama tidak cocok di aNameBuffer .

otDnsBrowseResponseGetHostAddress

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

Fungsi ini mendapatkan alamat IPv6 host dari respons penelusuran DNS (enumerasi instance layanan).

Fungsi ini harus hanya digunakan dari otDnsBrowseCallback .

Respons dapat mencakup nol atau lebih catatan alamat IPv6. aIndex dapat digunakan untuk iterate melalui daftar alamat. Indeks nol mendapat alamat pertama dan seterusnya. Ketika kita mencapai akhir daftar, OT_ERROR_NOT_FOUND dikembalikan.

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[in] aHostName
Nama host untuk mendapatkan alamat (HARUS TIDAK NULL).
[in] aIndex
Indeks catatan alamat yang akan diambil.
[out] aAddress
Pointer ke alamat IPv6 untuk menampilkan alamat (HARUS TIDAK NULL).
[out] aTtl
Sebuah pointer ke uint32_t untuk output TTL untuk alamat. Bisa NULL jika penelepon tidak ingin mendapatkan TTL.
Mengembalikan Nilai
OT_ERROR_NONE
Alamat berhasil dibaca.
OT_ERROR_NOT_FOUND
Tidak ada alamat rekor untuk aHostname di aResponse di aIndex .
OT_ERROR_PARSE
Tidak dapat mengurai catatan di aResponse .

otDnsBrowseResponseGetServiceInfo

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

Fungsi ini mendapatkan info untuk instance layanan dari respons penelusuran DNS (enumerasi instance layanan).

Fungsi ini harus hanya digunakan dari otDnsBrowseCallback .

Respons DNS penelusuran harus menyertakan catatan SRV, TXT, dan AAAA untuk instans layanan yang disebutkan (perhatikan bahwa ini adalah persyaratan HARUS dan bukan HARUS). Fungsi ini mencoba untuk mengambil info ini untuk contoh layanan yang diberikan bila tersedia.

  • Jika tidak ada catatan yang cocok SRV ditemukan dalam aResponse , OT_ERROR_NOT_FOUND dikembalikan.
  • Jika catatan yang cocok SRV ditemukan dalam aResponse , aServiceInfo diperbarui dan OT_ERROR_NONE dikembalikan.
  • Jika tidak ada catatan yang cocok TXT ditemukan dalam aResponse , mTxtDataSize di aServiceInfo diatur ke nol.
  • Jika tidak ada catatan yang cocok AAAA ditemukan dalam aResponse , mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse, mHostAddress is set to the first one. The other addresses can be retrieved using otDnsBrowseResponseGetHostAddress () `.

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[in] aInstanceLabel
Label instance layanan (HARUS TIDAK NULL).
[out] aServiceInfo
Sebuah ServiceInfo untuk output informasi layanan contoh (TIDAK HARUS NULL).
Mengembalikan Nilai
OT_ERROR_NONE
Info contoh layanan telah dibaca. aServiceInfo diperbarui.
OT_ERROR_NOT_FOUND
Tidak bisa menemukan catatan yang cocok SRV untuk aInstanceLabel .
OT_ERROR_NO_BUFS
Nama host dan/atau data TXT tidak dapat dimasukkan ke dalam buffer yang diberikan.
OT_ERROR_PARSE
Tidak dapat mengurai catatan di aResponse .

otDnsBrowseResponseGetServiceInstance

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

Fungsi ini mendapatkan instance layanan yang terkait dengan respons penelusuran DNS (enumerasi instance layanan).

Fungsi ini harus hanya digunakan dari otDnsBrowseCallback .

Responsnya dapat mencakup beberapa catatan instans layanan. aIndex dapat digunakan untuk iterate melalui daftar. Indeks nol memberikan catatan pertama. Ketika kita mencapai akhir daftar, OT_ERROR_NOT_FOUND dikembalikan.

Perhatikan bahwa fungsi ini mendapatkan label instance layanan dan bukan nama instance layanan lengkap yang berbentuk . . . . .

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[in] aIndex
Indeks catatan instance layanan yang akan diambil.
[out] aLabelBuffer
Buffer ke array char untuk menampilkan label instance layanan (HARUS TIDAK NULL).
[in] aLabelBufferSize
Ukuran aLabelBuffer .
Mengembalikan Nilai
OT_ERROR_NONE
Instance layanan berhasil dibaca.
OT_ERROR_NO_BUFS
Nama tidak cocok di aNameBuffer .
OT_ERROR_NOT_FOUND
Tidak ada layanan misalnya rekor di aResponse di aIndex .
OT_ERROR_PARSE
Tidak dapat mengurai catatan di aResponse .

otDnsBrowseResponseGetServiceName

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

Fungsi ini mendapatkan nama layanan yang terkait dengan respons penelusuran DNS (enumerasi instance layanan).

Fungsi ini harus hanya digunakan dari otDnsBrowseCallback .

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[out] aNameBuffer
Buffer ke array char untuk menampilkan nama layanan (HARUS TIDAK NULL).
[in] aNameBufferSize
Ukuran aNameBuffer .
Mengembalikan Nilai
OT_ERROR_NONE
Nama layanan berhasil dibaca.
OT_ERROR_NO_BUFS
Nama tidak cocok di aNameBuffer .

otDnsClientJelajahi

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

Fungsi ini mengirimkan kueri penelusuran DNS (enumerasi instance layanan) untuk nama layanan tertentu.

Fungsi ini tersedia bila OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE diaktifkan.

The aConfig dapat menjadi NULL. Dalam hal ini konfigurasi default (dari otDnsClientGetDefaultConfig() ) akan digunakan sebagai konfigurasi untuk query ini. Dalam non-NULL aConfig , beberapa bidang dapat dibiarkan tidak ditentukan (nilai nol). Bidang yang tidak ditentukan kemudian diganti dengan nilai dari konfigurasi default.

rincian
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aServiceName
Nama layanan yang akan ditanyakan (HARUS TIDAK NULL).
[in] aCallback
Pointer fungsi yang akan dipanggil pada penerimaan respons atau time-out.
[in] aContext
Sebuah pointer ke informasi konteks arbitrer.
[in] aConfig
Pointer ke konfigurasi yang akan digunakan untuk kueri ini.
Mengembalikan Nilai
OT_ERROR_NONE
Kueri berhasil dikirim. aCallback akan dipanggil untuk melaporkan status.
OT_ERROR_NO_BUFS
Buffer tidak cukup untuk menyiapkan dan mengirim kueri.

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

Fungsi ini mendapatkan konfigurasi kueri default saat ini yang digunakan oleh klien DNS.

Ketika OpenThread tumpukan dimulai, default permintaan DNS config ditentukan dari satu set OT pilihan konfigurasi 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).

rincian
Parameter
[in] aInstance
Pointer ke instance OpenThread.
Kembali
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
)

Fungsi ini mengirimkan kueri DNS resolusi alamat untuk catatan AAAA (IPv6) untuk nama host yang diberikan.

The aConfig dapat menjadi NULL. Dalam hal ini konfigurasi default (dari otDnsClientGetDefaultConfig() ) akan digunakan sebagai konfigurasi untuk query ini. Dalam non-NULL aConfig , beberapa bidang dapat dibiarkan tidak ditentukan (nilai nol). Bidang yang tidak ditentukan kemudian diganti dengan nilai dari konfigurasi default.

rincian
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aHostName
Nama host yang akan dikueri alamatnya (HARUS TIDAK NULL).
[in] aCallback
Pointer fungsi yang akan dipanggil pada penerimaan respons atau time-out.
[in] aContext
Sebuah pointer ke informasi konteks arbitrer.
[in] aConfig
Pointer ke konfigurasi yang akan digunakan untuk kueri ini.
Mengembalikan Nilai
OT_ERROR_NONE
Kueri berhasil dikirim. aCallback akan dipanggil untuk melaporkan status.
OT_ERROR_NO_BUFS
Buffer tidak cukup untuk menyiapkan dan mengirim kueri.

otDnsClientResolveService

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

Fungsi ini mengirimkan kueri resolusi instans layanan DNS untuk instans layanan tertentu.

Fungsi ini tersedia bila OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE diaktifkan.

The aConfig dapat menjadi NULL. Dalam hal ini konfigurasi default (dari otDnsClientGetDefaultConfig() ) akan digunakan sebagai konfigurasi untuk query ini. Dalam non-NULL aConfig , beberapa bidang dapat dibiarkan tidak ditentukan (nilai nol). Bidang yang tidak ditentukan kemudian diganti dengan nilai dari konfigurasi default.

rincian
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aInstanceLabel
Label contoh layanan.
[in] aServiceName
Nama layanan (bersama-sama dengan aInstanceLabel membentuk nama lengkap misalnya).
[in] aCallback
Pointer fungsi yang akan dipanggil pada penerimaan respons atau time-out.
[in] aContext
Sebuah pointer ke informasi konteks arbitrer.
[in] aConfig
Pointer ke konfigurasi yang akan digunakan untuk kueri ini.
Mengembalikan Nilai
OT_ERROR_NONE
Kueri berhasil dikirim. aCallback akan dipanggil untuk melaporkan status.
OT_ERROR_NO_BUFS
Buffer tidak cukup untuk menyiapkan dan mengirim kueri.
OT_ERROR_INVALID_ARGS
aInstanceLabel adalah NULL.

otDnsClientSetDefaultConfig

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

Fungsi ini menetapkan konfigurasi kueri default pada klien DNS.

Catatan: Setiap permintaan berkelanjutan akan terus menggunakan config dari ketika itu dimulai. Konfigurasi default baru akan digunakan untuk kueri DNS di masa mendatang. The aConfig dapat menjadi NULL. Dalam hal ini konfigurasi default akan diatur ke default dari pilihan konfigurasi PL OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} . Ini mengatur ulang konfigurasi kueri default kembali ke konfigurasi saat tumpukan OpenThread dimulai.

Dalam non-NULL aConfig , pemanggil dapat memilih untuk meninggalkan beberapa bidang di otDnsQueryConfig contoh yang tidak ditentukan (nilai nol). Bidang yang tidak ditentukan digantikan oleh PL config pilihan definisi yang sesuai OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} untuk membentuk konfigurasi kueri default.

Ketika OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE diaktifkan, alamat IPv6 server di konfigurasi default diatur secara otomatis dan diperbarui oleh DNS client. Ini dilakukan hanya ketika pengguna tidak secara eksplisit mengatur atau menentukannya. Perilaku ini mengharuskan klien SRP dan fitur mulai otomatisnya diaktifkan. Klien SRP kemudian akan memantau Data Jaringan Utas untuk entri Layanan DNS/SRP untuk memilih server SRP. Alamat server SRP yang dipilih juga ditetapkan sebagai alamat server DNS dalam konfigurasi default.

rincian
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aConfig
Pointer ke konfigurasi kueri baru untuk digunakan sebagai default.

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

Fungsi ini mem-parsing data TXT dari iterator dan mendapatkan entri catatan TXT berikutnya (pasangan kunci/nilai).

The aIterator HARUS diinisialisasi menggunakan otDnsInitTxtEntryIterator() sebelum memanggil fungsi ini dan data TXT penyangga yang digunakan untuk menginisialisasi iterator HARUS bertahan dan tetap tidak berubah. Jika tidak, perilaku fungsi ini tidak terdefinisi.

Jika diurai panjang kunci string lebih kecil dari atau sama dengan OT_DNS_TXT_KEY_MAX_LENGTH (disarankan panjang kunci max) string kunci dikembalikan dalam mKey di aEntry . Tapi jika kunci lebih panjang, maka mKey diatur untuk NULL dan seluruh dikodekan entri TXT string dikembalikan dalam mValue dan mValueLength .

rincian
Parameter
[in] aIterator
Pointer ke iterator (HARUS TIDAK NULL).
[out] aEntry
Sebuah pointer ke otDnsTxtEntry struktur untuk output diurai / dibaca entri (MUST NOT NULL).
Mengembalikan Nilai
OT_ERROR_NONE
Entri berikutnya berhasil diurai. aEntry diperbarui.
OT_ERROR_NOT_FOUND
Tidak ada lagi entri dalam data TXT.
OT_ERROR_PARSE
TXT data dari aIterator tidak well-formed.

otDnsInitTxtEntryIterator

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

Fungsi ini menginisialisasi iterator rekaman TXT.

Buffer pointer aTxtData dan isinya harus bertahan dan tetap tidak berubah sementara aIterator objek sedang digunakan.

rincian
Parameter
[in] aIterator
Pointer ke iterator untuk diinisialisasi (HARUS TIDAK NULL).
[in] aTxtData
Pointer ke buffer yang berisi data TXT yang disandikan.
[in] aTxtDataLength
Panjang (jumlah byte) dari aTxtData .

otDnsIsNameCompressionEnabled

bool otDnsIsNameCompressionEnabled(
  void
)

Fungsi ini menunjukkan apakah mode "kompresi nama DNS" diaktifkan atau tidak.

Hal ini dimaksudkan untuk menguji saja dan tersedia bila OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE config diaktifkan.

rincian
Kembali
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
)

Fungsi ini mendapatkan alamat IPv6 host dari respons resolusi instance layanan DNS.

Fungsi ini harus hanya digunakan dari otDnsServiceCallback .

Respons dapat mencakup nol atau lebih catatan alamat IPv6. aIndex dapat digunakan untuk iterate melalui daftar alamat. Indeks nol mendapat alamat pertama dan seterusnya. Ketika kita mencapai akhir daftar, OT_ERROR_NOT_FOUND dikembalikan.

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[in] aHostName
Nama host untuk mendapatkan alamat (HARUS TIDAK NULL).
[in] aIndex
Indeks catatan alamat yang akan diambil.
[out] aAddress
Pointer ke alamat IPv6 untuk menampilkan alamat (HARUS TIDAK NULL).
[out] aTtl
Sebuah pointer ke uint32_t untuk output TTL untuk alamat. Bisa NULL jika penelepon tidak ingin mendapatkan TTL.
Mengembalikan Nilai
OT_ERROR_NONE
Alamat berhasil dibaca.
OT_ERROR_NOT_FOUND
Tidak ada alamat rekor untuk aHostname di aResponse di aIndex .
OT_ERROR_PARSE
Tidak dapat mengurai catatan di aResponse .

otDnsServiceResponseGetServiceInfo

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

Fungsi ini mendapatkan info untuk instance layanan dari respons resolusi instance layanan DNS.

Fungsi ini harus hanya digunakan dari otDnsServiceCallback .

  • Jika tidak ada catatan yang cocok SRV ditemukan dalam aResponse , OT_ERROR_NOT_FOUND dikembalikan.
  • Jika catatan yang cocok SRV ditemukan dalam aResponse , aServiceInfo diperbarui dan OT_ERROR_NONE dikembalikan.
  • Jika tidak ada catatan yang cocok TXT ditemukan dalam aResponse , mTxtDataSize di aServiceInfo diatur ke nol.
  • Jika tidak ada catatan yang cocok AAAA ditemukan dalam aResponse , mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse, mHostAddress is set to the first one. The other addresses can be retrieved using otDnsServiceResponseGetHostAddress () `.

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[out] aServiceInfo
Sebuah ServiceInfo untuk output informasi layanan contoh (TIDAK HARUS NULL).
Mengembalikan Nilai
OT_ERROR_NONE
Info contoh layanan telah dibaca. aServiceInfo diperbarui.
OT_ERROR_NOT_FOUND
Tidak bisa menemukan catatan yang cocok SRV di aResponse .
OT_ERROR_NO_BUFS
Nama host dan/atau data TXT tidak dapat dimasukkan ke dalam buffer yang diberikan.
OT_ERROR_PARSE
Tidak dapat mengurai catatan di aResponse .

otDnsServiceResponseGetServiceName

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

Fungsi ini mendapatkan nama instance layanan yang terkait dengan respons resolusi instance layanan DNS.

Fungsi ini harus hanya digunakan dari otDnsServiceCallback .

rincian
Parameter
[in] aResponse
Sebuah pointer ke respon.
[out] aLabelBuffer
Buffer ke array char untuk menampilkan label instance layanan (HARUS TIDAK NULL).
[in] aLabelBufferSize
Ukuran aLabelBuffer .
[out] aNameBuffer
Buffer to char array untuk menampilkan sisa nama layanan (bisa NULL jika pengguna tidak tertarik untuk mendapatkan nama tersebut.
[in] aNameBufferSize
Ukuran aNameBuffer .
Mengembalikan Nilai
OT_ERROR_NONE
Nama layanan berhasil dibaca.
OT_ERROR_NO_BUFS
Label atau nama tidak sesuai dengan buffer yang diberikan.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

Fungsi ini mengaktifkan/menonaktifkan mode "kompresi nama DNS".

Secara default, kompresi nama DNS diaktifkan. Saat dinonaktifkan, nama DNS ditambahkan sebagai lengkap dan tidak pernah dikompresi. Ini berlaku untuk modul klien/server DNS dan SRP OpenThread.

Hal ini dimaksudkan untuk menguji saja dan tersedia bila OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE config diaktifkan.

Perhatikan bahwa dalam kasus OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE digunakan, mode ini berlaku untuk semua contoh OpenThread (yaitu, memanggil fungsi ini memungkinkan / menonaktifkan modus kompresi pada semua contoh OpenThread).

rincian
Parameter
[in] aEnabled
TRUE untuk mengaktifkan mode "DNS name compression", FALSE untuk menonaktifkan.

makro

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

Ukuran string label maksimum (termasuk karakter nol di akhir string).

OT_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

Ukuran string nama maksimum (termasuk karakter nol di akhir string).

OT_DNS_TXT_KEY_MAX_LENGTH

 OT_DNS_TXT_KEY_MAX_LENGTH 9

Panjang maksimum string kunci rekaman 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 rekaman TXT (RFC 6763 - bagian 6.4).