DnsOptions

public final class DnsOptions


यह क्लास, Cronet की होस्ट रिज़ॉल्यूशन सुविधा को कॉन्फ़िगर करती है. ध्यान दें कि हम DNS को सबसे आम तौर पर इस्तेमाल किए जाने वाले तरीके के तौर पर दिखाते हैं. हालांकि, सेटिंग, होस्टनेम को हल करने के अन्य तरीकों पर भी लागू होती हैं. जैसे, होस्ट फ़ाइल रिज़ॉल्यूशन.

Cronet, होस्टनेम को दो तरीकों से हल करता है. पहला, सिस्टम रिज़ॉल्वर का इस्तेमाल करके (सिस्टम लाइब्रेरी से मिले getaddrinfo का इस्तेमाल करके). दूसरा, कस्टम रिज़ॉल्वर का इस्तेमाल करके, जो Cronet के इस्तेमाल किए जाने वाले नेटवर्किंग स्टैक में पहले से मौजूद होता है.

पहले से मौजूद स्टैक के कई फ़ायदे हैं. जैसे:

  • इसे नेटवर्किंग स्टैक की ज़रूरतों के हिसाब से बनाया गया है. खास तौर पर, स्पीड और स्थिरता के हिसाब से.
  • getaddrinfo एक ब्लॉकिंग कॉल है. इसके लिए, वर्कर थ्रेड की ज़रूरत होती है. साथ ही, इसे रद्द नहीं किया जा सकता. हमें कॉल पूरा होने तक थ्रेड को छोड़ना पड़ता है
  • getaddrinfo इंटरफ़ेस से, गड़बड़ियों की असली वजह का पता नहीं चलता
  • struct addrinfo से, दिखाए गए पतों का टीटीएल (टाइम टू लाइव) नहीं मिलता. इससे, कैश मेमोरी को मैनेज करने की सुविधा सीमित हो जाती है.जैसे, पुराने डीएनएस रिकॉर्ड का इस्तेमाल करने की अनुमति देना. साथ ही, हमें ओएस डीएनएस कैश पर निर्भर रहना पड़ता है या टीटीएल के साथ बहुत ज़्यादा सावधानी बरतनी पड़ती है.
  • ओएस के हिस्से के तौर पर, getaddrinfo धीरे-धीरे काम करता है. कस्टम स्टैक का इस्तेमाल करने से, Cronet, एन्क्रिप्टेड डीएनएस जैसी सुविधाएं तेज़ी से उपलब्ध करा पाता है.

इस क्लास में ज़्यादातर कॉन्फ़िगरेशन, पहले से मौजूद डीएनएस रिज़ॉल्वर का इस्तेमाल करने पर ही लागू होते हैं.

खास जानकारी

नेस्ट किए गए टाइप

public final class DnsOptions.Builder

DnsOptions के लिए बिल्डर.

एपीआई के लिए एक एनोटेशन. इन्हें अब तक स्टेबल नहीं माना जाता.

Cronet की पुराने डीएनएस की सुविधा को कॉन्फ़िगर करने वाली एक क्लास.

StaleDnsOptions के लिए बिल्डर.

पब्लिक मेथड

बिल्डर

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