DnsOptions

class DnsOptions


Class yang mengonfigurasi fungsi resolusi host Cronet. Perhatikan bahwa meskipun kami menyebut DNS sebagai mekanisme paling umum yang digunakan untuk mempersingkat, setelan berlaku untuk cara lain dalam menyelesaikan nama host seperti resolusi file host.

Cronet menyelesaikan nama host dengan dua cara - baik dengan menggunakan resolver sistem (menggunakan getaddrinfo yang disediakan oleh library sistem), atau dengan menggunakan resolver kustom yang dibuat ke dalam stack jaringan yang digunakan Cronet.

Stack bawaan memberikan beberapa keuntungan dibandingkan menggunakan resolver sistem:

  • Stack ini telah disesuaikan dengan kebutuhan stack jaringan, terutama kecepatan dan stabilitas.
  • getaddrinfo adalah panggilan pemblokiran yang memerlukan thread pekerja khusus dan membuat pembatalan tidak mungkin (kita harus mengabaikan thread hingga panggilan selesai)
  • Antarmuka getaddrinfo tidak memberikan insight tentang akar penyebab kegagalan
  • struct addrinfo tidak memberikan TTL (Time To Live) alamat yang ditampilkan. Hal ini membatasi fleksibilitas penanganan cache (misalnya, memungkinkan penggunaan data DNS yang tidak berlaku lagi) dan mengharuskan kita untuk mengandalkan cache DNS OS, atau sangat konservatif dengan TTL.
  • Sebagai bagian dari OS, getaddrinfo berkembang secara perlahan. Menggunakan stack kustom memungkinkan Cronet memperkenalkan fitur seperti DNS terenkripsi dengan lebih cepat.

Sebagian besar konfigurasi di class ini hanya berlaku jika resolver DNS bawaan digunakan.

Ringkasan

Jenis bertingkat

Builder untuk DnsOptions.

Anotasi untuk API yang belum dianggap stabil.

Class yang mengonfigurasi fungsi DNS yang tidak berlaku lagi di Cronet.

Builder untuk StaleDnsOptions.

Fungsi publik

builder

java-static fun builder(): DnsOptions.Builder!

getEnableStaleDns

fun getEnableStaleDns(): Boolean?

getPersistHostCache

fun getPersistHostCache(): Boolean?

getPersistHostCachePeriodMillis

fun getPersistHostCachePeriodMillis(): Long?

getPreestablishConnectionsToStaleDnsResults

fun getPreestablishConnectionsToStaleDnsResults(): Boolean?

getStaleDnsOptions

fun getStaleDnsOptions(): DnsOptions.StaleDnsOptions?

getUseBuiltInDnsResolver

fun getUseBuiltInDnsResolver(): Boolean?