Konvencija PAC, ki jo uporabljajo glavni spletni brskalniki, vključno z Web Engine, je uporaba spremenjene sintakse regularnih izrazov. Do zdaj je pacmanager za ujemanje uporabljal običajne regularne izraze. Funkcijo shExpMatch spreminjamo tako, da uporablja ujemanje, ki je podobno kot v brskalnikih.
Ta sprememba pomeni, da bo sistem RoomOS deloval z enakimi ujemanji datotek PAC kot drugi spletni odjemalci v omrežju. Datoteke PAC, napisane posebej za sistem RoomOS, bo morda treba posodobiti, da bodo delovale, kot je bilo predvideno.
Ocenjevanje datotek PAC se v programski opremi RoomOS izvaja na dveh ločenih mestih:
-
Spletni motor za lasten promet.
-
Pacmanager za ves ostali promet HTTP: HttpFeedback, zagotavljanje storitev Webex, signalizacija klicev in tako naprej.
To funkcijo lahko uporablja datoteka PAC: shExpMatch(niz, vzorec)
Vrne true, če se niz ujema z vzorcem, v nasprotnem primeru pa false.
Glavne razlike med obema konvencijama so navedene spodaj, pri čemer "REGEX" pomeni tradicionalne regularne izraze, "BROWSER" pa konvencijo spletnega brskalnika.
Znak pike "."
-
REGEX: . ustreza enemu znaku, ki ga lahko ponovite s kvantifikatorjem
-
BROWSER: . ustreza samo dobesednemu znaku pike
Zvezda, "*":
-
REGEX: * je kvantifikator nič ali več za elementom, vendar sam po sebi ne ustreza ničemur.
-
BROWSER: * ustreza nič ali več znakov
Vprašalni znak "?":
-
REGEX: ? je kvantifikator nič ali ena za elementom ali lahko spremeni kvantifikator *, da ne bo pohlepen, vendar se sam ne ujema z ničemer.
-
BROWSER: ? ustreza enemu znaku
Ali se mora ujemati celoten izraz:
-
REGEX: Brez uporabe začetnega ^ in končnega $ se vzorcu ni treba ujemati s celotnim nizom: Dovolj je, da STRING vsebuje podrezec, ki se ujema.
-
BROWSER: Vedno zahtevajte, da se STRING natančno ujema z VZORCEM
Primeri
Ujemati želimo vsa gostiteljska imena pod "provider.domain", ne pa tudi "otherprovider.domain", "provider.domain.tld" ali "providersdomain":
REGEX:
shExpMatch(url, "^.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
Želimo, da se ujemajo naslovi "proxy1.domain", "proxy2.domain" in tako naprej, ne pa tudi "proxytest.domain":
REGEX:
shExpMatch(url, "^proxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
Drugi viri
Za več podrobnosti o formatu datoteke PAC glejte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .