DnsOptions

class DnsOptions


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

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

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

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

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

खास जानकारी

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

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

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

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

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

सार्वजनिक फ़ंक्शन

बिल्डर

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?