ডিএনএসঅপশনস

class DnsOptions


ক্রোনেট-এর হোস্ট রেজোলিউশন কার্যকারিতা কনফিগার করার একটি ক্লাস। উল্লেখ্য যে, সংক্ষেপে সবচেয়ে প্রচলিত পদ্ধতি হিসেবে আমরা DNS এর কথা বললেও, এই সেটিংসগুলো হোস্টনেম রেজোলিউশনের অন্যান্য উপায়, যেমন হোস্টস ফাইল রেজোলিউশনের ক্ষেত্রেও প্রযোজ্য।

ক্রোনেট দুইভাবে হোস্টনেম রিজলভ করে - হয় সিস্টেম রিজলভার ব্যবহার করে (সিস্টেম লাইব্রেরি দ্বারা প্রদত্ত getaddrinfo ব্যবহার করে), অথবা ক্রোনেটের ব্যবহৃত নেটওয়ার্কিং স্ট্যাকে অন্তর্নির্মিত একটি কাস্টম রিজলভার ব্যবহার করে।

সিস্টেম রিজলভার ব্যবহারের তুলনায় বিল্ট-ইন স্ট্যাক বেশ কিছু সুবিধা প্রদান করে:

  • এটি নেটওয়ার্কিং স্ট্যাকের চাহিদা, বিশেষ করে গতি এবং স্থিতিশীলতার কথা মাথায় রেখে তৈরি করা হয়েছে।
  • getaddrinfo একটি ব্লকিং কল, যার জন্য ডেডিকেটেড ওয়ার্কার থ্রেডের প্রয়োজন হয় এবং এটি বাতিল করা অসম্ভব (কলটি সম্পূর্ণ না হওয়া পর্যন্ত থ্রেডটি বন্ধ রাখতে হয়)।
  • getaddrinfo ইন্টারফেসটি ব্যর্থতার মূল কারণ সম্পর্কে কোনো ধারণা দেয় না।
  • struct addrinfo ফেরত আসা অ্যাড্রেসগুলোর কোনো TTL (Time To Live) প্রদান করে না। এটি ক্যাশিং পরিচালনার নমনীয়তাকে সীমিত করে (যেমন, পুরনো DNS রেকর্ড ব্যবহারের সুযোগ না থাকা) এবং এর জন্য আমাদের হয় OS DNS ক্যাশের উপর নির্ভর করতে হয়, অথবা TTL-এর ক্ষেত্রে অত্যন্ত রক্ষণশীল হতে হয়।
  • অপারেটিং সিস্টেমের অংশ হিসেবে getaddrinfo বিবর্তন ধীর। একটি কাস্টম স্ট্যাক ব্যবহারের মাধ্যমে Cronet এনক্রিপ্টেড ডিএনএস-এর মতো ফিচারগুলো আরও দ্রুত চালু করতে সক্ষম হয়।

এই শ্রেণীর বেশিরভাগ কনফিগারেশন শুধুমাত্র তখনই প্রযোজ্য হয়, যখন বিল্ট-ইন ডিএনএস রিজলভার ব্যবহার করা হয়।

সারসংক্ষেপ

নেস্টেড প্রকার

DnsOptions এর জন্য বিল্ডার।

যেসব এপিআই এখনও স্থিতিশীল বলে বিবেচিত হয় না, তাদের জন্য একটি টীকা।

ক্রোনেটের পুরনো ডিএনএস কার্যকারিতা কনফিগার করার একটি ক্লাস।

StaleDnsOptions এর জন্য বিল্ডার।

জনসাধারণের কার্যাবলী

নির্মাতা

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

getEnableStaleDns

fun getEnableStaleDns(): Boolean?

getPersistHostCache

fun getPersistHostCache(): Boolean?

getPersistHostCachePeriodMillis

fun getPersistHostCachePeriodMillis(): Long?

পুরোনো ডিএনএস ফলাফলে পূর্ব-স্থাপন সংযোগগুলি পান

fun getPreestablishConnectionsToStaleDnsResults(): Boolean?

getStaleDnsOptions

fun getStaleDnsOptions(): DnsOptions.StaleDnsOptions?

getUseBuiltInDnsResolver

fun getUseBuiltInDnsResolver(): Boolean?