Jint PAC evaluacija: nedostajući pomoćnici i rezultati ruta
Izvršavanje FindProxyForURL jedan je korak: host mora implementirati PAC pomoćnike, ograničiti izvršavanje i protumačiti vraćeni popis ruta.
Ako Jint prijavi nedostajući dnsResolve ili myIpAddress tijekom evaluacije PAC-a, učitavanje još JavaScripta nije nužno rješenje. Ti PAC pomoćnici pripadaju okruženju koje pruža host aplikacija.
Prije poziva FindProxyForURL
Odaberite podržani skup PAC pomoćnika i obitelji adresa, zatim instalirajte te pomoćnike na engine. Očuvajte njihove ugovore: dnsResolve prima ime hosta, myIpAddress ne prima argumente i zahtijeva politiku lokalnog sučelja, a shExpMatch koristi obrasce u stilu ljuske. Stub koji vraća zgodnu vrijednost može tiho odabrati pogrešnu rutu.
Kad je ta inicijalizacija obavljena, osnovni poziv u Jint 4.4.0 može izgledati ovako:
var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
"FindProxyForURL",
destinationUrl,
destination.IdnHost
).AsString();engine je konfigurirani Jint.Engine; pacSource je dohvaćeni PAC program. destination.IdnHost daje ime hosta bez porta ili putanje. Ovaj poziv niti dohvaća PAC niti otvara proxy vezu.
Nakon poziva
Protumačite rezultat poput PROXY proxy.example:8080; DIRECT kao uređeni popis kandidata ruta i rezervne opcije. Prosljeđivanje cijelog tog niza kao proxy URL-a gubi njegovo značenje. Razlikujte neuspjeh evaluacije od izričitog rezultata DIRECT.
Dok se izvršava
Konfigurirajte Jintova ograničenja trajanja, naredbi, memorije i otkazivanja te izložite samo potrebne host funkcije. Ograničite DNS povratne pozive zasebno: provjere izvršavanja JavaScripta ne čine proizvoljan blokirajući host poziv prekidivim. Serijalizirajte pristup engineu ili paralelnom radu dajte zasebno posjedovane instance; enginei nisu sigurni za istovremenu upotrebu.
Implementacije PAC-a u preglednicima mogu se razlikovati po proširenjima pomoćnika i pojedinostima URL-a koje izlažu, posebno za HTTPS. Podudaranje s jednim primjernim rezultatom dokazuje manje od podudaranja s ponašanjem usmjeravanja preglednika.