Paghawak sa pagkabigo ng DNS sa loob ng isang tuntuning PAC
Bigyan ng sariling sangay ng patakaran ang nabigong PAC DNS lookup sa halip na ituring itong beripikadong address sa labas ng lokal na network.
Ang nabigong lookup ay hindi nagpapatunay na ang destinasyon ay nasa labas ng iyong pribadong network. Pinatutunayan lamang nito na hindi nakuha ng PAC evaluation na ito ang address na kailangan nito.
Mahalaga ang pagkakaibang iyon kapag ang dnsResolve() ay nagpapakain sa isang tuntuning isInNet(). Nagbabalik ang PAC implementation ng Chromium ng null kapag nabigo ang resolution. Huwag itayong sangay ng kabiguan sa alaala na ang resulta ay laging walang laman na string.
function FindProxyForURL(url, host) {
var address = dnsResolve(host);
if (!address) {
return "PROXY proxy.example:8080";
}
if (isInNet(address, "10.40.0.0", "255.255.0.0")) {
return "DIRECT";
}
return "PROXY proxy.example:8080";
}
Ipinapadala ng halimbawang ito ang mga hindi nareresolbang pangalan sa proxy. Ito ay pagpili ng patakaran, hindi isang pangkalahatang ligtas na default. Maaari itong maging kapaki-pakinabang kapag ang proxy ay may resolver o pananaw sa network na wala ang client. Ang network na nangangailangan ng lokal na resolution ay kailangan ng ibang tahasang resulta.
Resolbahin nang isang beses at gamitin muli ang resulta. Pinapanatili nitong nakatali ang desisyon sa isang halaga at iniiwasan ang pag-uulit ng posibleng mabagal na auxiliary na tawag.
Suriin din ang aktwal na PAC consumer. Ang legacy IPv4 helpers at pinalawak na IPv6 helpers ay may magkaibang kontrata. Ang tuntuning sinubukan sa implementation ng isang browser ay hindi nagpapatunay ng suporta sa bawat application na gumagamit ng parehong PAC URL.
Kung ang pangangailangan ay i-route lamang ang isang kilalang company suffix, maaaring iwasan nang lubusan ng panuntunan sa hostname ang lookup. Gamitin ang klasipikasyong nakabatay sa address kapag ang address ay impormasyong talagang kailangan ng patakaran.