PAC মূল্যায়নের সময় Jint যদি অনুপস্থিত dnsResolve বা myIpAddress রিপোর্ট করে, তবে আরও JavaScript লোড করা অবশ্যই সমাধান নয়। ওই PAC হেল্পারগুলো হোস্ট অ্যাপ্লিকেশন যে পরিবেশ দেয় তার অংশ।

FindProxyForURL কল করার আগে

সমর্থিত PAC হেল্পার সেট ও ঠিকানা পরিবার বেছে নিন, তারপর ওই হেল্পারগুলো ইঞ্জিনে ইনস্টল করুন। তাদের চুক্তি রক্ষা করুন: dnsResolve একটি হোস্টনেম নেয়, myIpAddress কোনো আর্গুমেন্ট নেয় না এবং স্থানীয়-ইন্টারফেস নীতি দরকার, আর shExpMatch শেল-ধাঁচের প্যাটার্ন ব্যবহার করে। সুবিধাজনক মান ফেরত দেওয়া একটি স্টাব নিঃশব্দে ভুল রুট বেছে নিতে পারে।

ওই ইনিশিয়ালাইজেশন সম্পন্ন হলে, মূল কলটি Jint 4.4.0-এ এমন দেখাতে পারে:

var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
    "FindProxyForURL",
    destinationUrl,
    destination.IdnHost
).AsString();

engine হলো কনফিগার করা Jint.Engine; pacSource হলো সংগৃহীত PAC প্রোগ্রাম। destination.IdnHost পোর্ট বা পাথ ছাড়াই হোস্টনেম দেয়। এই কল PAC আনে না এবং প্রক্সি সংযোগও খোলে না।

কলের পরে

PROXY proxy.example:8080; DIRECT-এর মতো ফলাফলকে রুট প্রার্থী ও ফলব্যাকের ক্রমবদ্ধ তালিকা হিসেবে ব্যাখ্যা করুন। পুরো স্ট্রিংটি প্রক্সি URL হিসেবে পাঠালে তার অর্থ হারায়। মূল্যায়ন ব্যর্থতাকে স্পষ্ট DIRECT ফলাফল থেকে আলাদা রাখুন।

এটি চলার সময়

Jint-এর সময়কাল, বিবৃতি, স্মৃতি ও বাতিলকরণ সীমা কনফিগার করুন, এবং কেবল প্রয়োজনীয় হোস্ট ফাংশন প্রকাশ করুন। DNS কলব্যাক আলাদাভাবে সীমাবদ্ধ করুন: JavaScript সম্পাদন পরীক্ষা কোনো ইচ্ছামত ব্লকিং হোস্ট কলকে বাধাযোগ্য করে না। একটি ইঞ্জিনে প্রবেশ ক্রমানুসারে করুন বা সমকালীন কাজকে আলাদা মালিকানার দৃষ্টান্ত দিন; ইঞ্জিনগুলো একসঙ্গে ব্যবহারের জন্য নিরাপদ নয়।

ব্রাউজার PAC বাস্তবায়ন হেল্পার এক্সটেনশন ও প্রকাশ করা URL বিবরণে ভিন্ন হতে পারে, বিশেষত HTTPS-এ। একটি নমুনা ফলাফল মেলানো ব্রাউজারের রাউটিং আচরণ মেলানোর চেয়ে কম প্রমাণ করে।

সম্পর্কিত নিবন্ধ