Jint PAC मूल्यांकन: अनुपलब्ध हेल्पर और रूट परिणाम
FindProxyForURL चलाना एक चरण है: होस्ट को PAC हेल्पर लागू करने, निष्पादन सीमित करने और लौटाई गई रूट सूची की व्याख्या करनी होती है।
यदि 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 के लिए। एक नमूना परिणाम से मेल खाना ब्राउज़र के रूटिंग व्यवहार से मेल खाने से कम सिद्ध करता है।