Vlerësimi i PAC në Jint: ndihmës që mungojnë dhe rezultatet e rrugëve
Thirrja e FindProxyForURL është vetëm një hap: hosti duhet të zbatojë ndihmësit PAC, të kufizojë ekzekutimin dhe të interpretojë listën e rrugëve që kthehet.
Nëse Jint raporton se mungon dnsResolve ose myIpAddress gjatë vlerësimit të PAC, ngarkimi i më shumë JavaScript nuk është domosdoshmërisht zgjidhja. Këta ndihmës PAC i përkasin mjedisit që ofron aplikacioni host.
Përpara se të thirret FindProxyForURL
Zgjidhni grupin e ndihmësve PAC të mbështetur dhe familjet e adresave, pastaj instaloni ata ndihmës në motor. Ruani kontratat e tyre: dnsResolve merr një emër hosti, myIpAddress nuk merr argumente dhe kërkon një politikë të ndërfaqes lokale, dhe shExpMatch përdor modele në stil shell. Një stub që kthen një vlerë të përshtatshme mund të zgjedhë në heshtje rrugën e gabuar.
Pasi të kryhet ai inicializim, thirrja kryesore mund të duket kështu në Jint 4.4.0:
var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
"FindProxyForURL",
destinationUrl,
destination.IdnHost
).AsString();engine është Jint.Engine i konfiguruar; pacSource është programi PAC i marrë. destination.IdnHost jep emrin e hostit pa port ose shteg. Kjo thirrje as nuk e merr PAC dhe as nuk hap një lidhje proxy.
Pas thirrjes
Interpreto një rezultat si PROXY proxy.example:8080; DIRECT si një listë të renditur kandidatësh rrugësh dhe rezervë. Kalimi i të gjithë vargut si URL proxy humb kuptimin e tij. Mbaje dështimin e vlerësimit të veçantë nga një rezultat eksplicit DIRECT.
Ndërsa ekzekutohet
Konfiguro kufizimet e Jint për kohëzgjatje, deklarata, memorie dhe anulim, dhe ekspozo vetëm funksionet e nevojshme të hostit. Kufizo thirrjet kthyese DNS veçmas: kontrollet e ekzekutimit të JavaScript nuk e bëjnë të ndërprerëshme një thirrje bllokuese arbitrare të hostit. Serializo aksesin në një motor ose jepu punës paralele instanca të zotëruara veçmas; motorët nuk janë të sigurt për përdorim të njëkohshëm.
Implementimet PAC të shfletuesve mund të ndryshojnë në zgjerimet e ndihmësve dhe në detajet e URL-ve që ekspozojnë, veçanërisht për HTTPS. Përputhja me një rezultat kampioni vërteton më pak sesa përputhja me sjelljen e rrugëzimit të shfletuesit.