PAC konvencija koju koriste glavni web preglednici, uključujući Web engine, je korištenje modificirane sintakse regularnog izraza. Do sada je pacmanager koristio obične regularne izraze za podudaranje. Mijenjamo funkciju SHExpMatch kako bismo koristili podudaranje slično preglednicima.
Ova promjena znači da će RooMOS raditi s istim podudaranjima PAC datoteka kao i drugi web klijenti u mreži. PAC datoteke posebno napisane za RoomOS možda će trebati ažurirati kako bi nastavile raditi kako je predviđeno.
Procjena PAC datoteke vrši se na dva odvojena mjesta u softveru RooMOS:
-
Web motor za vlastiti promet.
-
Pacmanager za sav drugi HTTP promet: HttpFeedback, Webex pružanje usluga, signalizacija poziva i tako dalje.
PAC datoteka može koristiti ovu funkciju: SHExpMatch (niz, uzorak)
Vraća istinito ako se niz podudara s uzorkom, inače netočno.
Glavne razlike između dvije konvencije navedene su u nastavku, pri čemu "REGEX" znači tradicionalne regularne izraze, a "BROWSER" znači konvenciju web preglednika.
Točkasti znak, "."
-
REGEX:. odgovara jednom znaku, koji se može ponoviti s kvantifikatorom
-
PREGLEDNIK:. odgovara samo doslovnom znaku točke
Zvijezda, "*":
-
REGEX: * je kvantifikator nule ili više nakon stavke, ali sam po sebi ne podudara ništa
-
PREGLEDNIK: * odgovara nuli ili više znakova
Znak upitnika, "?" :
-
REGEX:? je kvantifikator nula ili jedan nakon stavke, ili može izmijeniti kvantifikator* tako da nije pohlepan, ali ne podudara se ništa sam po sebi
-
PREGLEDNIK:? odgovara jednom znaku
Da li se cijeli izraz mora podudarati:
-
REGEX: Bez upotrebe vodećeg ^ i trailinga $, PATTERN ne mora odgovarati cijelom STRINGU: Dovoljno je da STRING sadrži podniz koji se podudara.
-
PREGLEDNIK: Uvijek zahtijevajte da STRING bude točno usklađen s UZORKOM
Primjeri
Želimo uskladiti sva imena hosta pod "provider.domain", ali ne i "otherprovider.domain", "provider.domain.tld" ili "providersdomain":
REGEX:
shExpMatch(url, "^.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
Želimo podudarati "proxy1.domain", "proxy2.domain" i tako dalje, ali ne i "proxytest.domain":
REGEX:
shExpMatch(url, "^proxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
Ostali resursi
Za više detalja o formatu datoteke PAC pogledajte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .