DnsOptions

public final 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) 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

public final class DnsOptions.Builder

Builder untuk DnsOptions.

Anotasi untuk API yang belum dianggap stabil.

Class yang mengonfigurasi fungsi DNS yang tidak berlaku Cronet.

Builder untuk StaleDnsOptions.

Metode publik

builder

public static DnsOptions.Builder builder()

getEnableStaleDns

public @Nullable Boolean getEnableStaleDns()

getPersistHostCache

public @Nullable Boolean getPersistHostCache()

getPersistHostCachePeriodMillis

public @Nullable Long getPersistHostCachePeriodMillis()

getPreestablishConnectionsToStaleDnsResults

public @Nullable Boolean getPreestablishConnectionsToStaleDnsResults()

getStaleDnsOptions

public @Nullable DnsOptions.StaleDnsOptions getStaleDnsOptions()

getUseBuiltInDnsResolver

public @Nullable Boolean getUseBuiltInDnsResolver()