DnsOptions

class DnsOptions


Cronet のホスト解決機能を構成するクラス。簡潔にするために DNS を最も一般的なメカニズムとしていますが、設定はホスト ファイル解決など、ホスト名を解決する他の方法にも適用されます。

Cronet は、システム リゾルバ(システム ライブラリによって提供される getaddrinfo を使用)を使用するか、Cronet が使用するネットワーク スタックに組み込まれたカスタム リゾルバを使用するかの 2 つの方法でホスト名を解決します。

組み込みスタックには、システム リゾルバを使用するよりもいくつかの利点があります。

  • ネットワーク スタックのニーズ、特に速度と安定性に合わせて調整されています。
  • getaddrinfo は、ワーカー スレッドの専用化を必要とし、キャンセルを不可能にするブロッキング呼び出しです(呼び出しが完了するまでスレッドを破棄する必要があります)。
  • getaddrinfo インターフェースでは、障害の根本原因を把握できません。
  • struct addrinfo は、返されたアドレスの TTL(Time To Live)を提供しません。これにより、キャッシュの処理の柔軟性が制限され(古い DNS レコードの使用を許可するなど)、OS の DNS キャッシュに依存するか、TTL を非常に保守的にする必要があります。
  • OS の一部として、getaddrinfo はゆっくりと進化します。カスタム スタックを使用すると、Cronet は暗号化された DNS などの機能をより迅速に導入できます。

このクラスのほとんどの構成は、組み込みの DNS リゾルバが使用されている場合にのみ適用されます。

概要

ネストされたタイプ

DnsOptions のビルダー。

まだ安定しているとは見なされていない API のアノテーション。

Cronet の古い DNS 機能を構成するクラス。

StaleDnsOptions のビルダー。

パブリック関数

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?