Konvencija PAC, ki jo uporabljajo glavni spletni brskalniki, vključno s spletnim mehanizmom, je uporaba spremenjene sintakse regularnega izraza. Do zdaj je pacmanager uporabljal navadne regularne izraze za ujemanje. Funkcijo SHExpMatch spreminjamo tako, da uporabimo ujemanje, ki je podobno brskalnikom.
Ta sprememba pomeni, da bo RoomOS deloval z enakimi ujemanji datotek PAC kot drugi spletni odjemalci v omrežju. Datoteke PAC, posebej napisane za RoomOS, bo morda treba posodobiti, da bodo še naprej delovale, kot je bilo predvideno.
Vrednotenje datoteke PAC poteka na dveh ločenih mestih v programski opremi RooMOS:
-
Spletni mehanizem za lasten promet.
-
Pacmanager za ves drugi promet HTTP: HttpFeedback, zagotavljanje Webex, signalizacija klicev itd.
Datoteka PAC lahko uporablja to funkcijo: SHExpMatch (niz, vzorec)
Če se niz ujema z vzorcem, vrne true, sicer pa false.
Glavne razlike med obema konvencijama so navedene spodaj, pri čemer »REGEX« pomeni tradicionalne regularne izraze, »BROWSER« pa konvencijo spletnega brskalnika.
Znak s pikami, ».«
-
REGEX:. ujema se z enim samim znakom, ki ga je mogoče ponoviti s kvantifikatorjem
-
BRSKALNIK:. se ujema samo z dobesednim pikčastim znakom
Zvezda, »*«:
-
REGEX: * je kvantifikator ničle ali več za postavko, vendar se sam ne ujema z ničemer
-
BRSKALNIK: * ustreza nič ali več znakov
Vprašalnik, »?« :
-
REGEX:? je kvantifikator ničla ali ena za postavko ali pa lahko kvantifikator * spremeni tako, da ni pohlepen, vendar se sam po sebi ne ujema ničemer
-
BRSKALNIK:? ujema se z enim samim znakom
Ali se mora celoten izraz ujemati:
-
REGEX: Brez uporabe vodilnega ^ in zadnjega $ se VZORCU ni treba ujemati s celotnim STRINGOM: Dovolj je, da STRING vsebuje podniz, ki se ujema.
-
BRSKALNIK: Vedno zahtevajte, da se STRING natančno ujema s VZORCEM
Primeri
Želimo ujemati vsa imena gostiteljev pod »provider.domain«, ne pa tudi »otherprovider.domain«, »provider.domain.tld« ali »providersdomain«:
REGEX:
shExpMatch(url, "^.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
Želimo ujemati »proxy1.domain«, »proxy2.domain« itd., vendar ne »proxytest.domain«:
REGEX:
shExpMatch(url, "^proxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
Drugi viri
Za več podrobnosti o obliki datoteke PAC glejte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .