PAC konvencija koju koriste glavni web preglednici, uključujući web engine, je koristiti modificiranu sintaksu regularnog izraza. Do sada je pacmanager koristio obične regularne izraze za podudaranje. Mijenjamo funkciju shExpMatch tako da koristite podudaranje koje je slično preglednicima.
Ova promjena znači da će RoomOS raditi s istim podudaranjima PAC datoteke kao i drugi web-klijenti u mreži. PAC datoteke posebno napisane za RoomOS možda će se morati ažurirati kako bi radile prema planu.
Procjena PAC datoteke provodi se na dva odvojena mjesta u softveru RoomOS:
-
Web pokretač za vlastiti promet.
-
Pacmanager za sve ostale HTTP promet: HttpFeedback, Webex dodjela resursa, signalizacija poziva itd.
PAC datoteka može koristiti ovu funkciju: shExpMatch (niz, uzorak)
Vraća se istinito ako niz odgovara uzorku, inače false.
Glavne razlike između dvije konvencije navedene su u nastavku, pri čemu "REGEX" znači tradicionalni regularni izrazi, a "BROWSER" znači konvencija web preglednika.
Znak točke, „.”
-
REGEX: . odgovara jednom znaku, koji se može ponoviti s kvantifikatorom
-
PREGLEDNIK: . odgovara samo doslovnom znaku točke
Zvijezda, „*”:
-
REGEX: * je nula ili više kvantifikatora nakon stavke, ali ne odgovara ništa sam po sebi
-
PREGLEDNIK: * odgovara nula ili više znakova
Upitnik, "?":
-
REGEX: ? je nula ili jedan kvantifikator nakon stavke, ili može modificirati * kvantifikator kako bi bio negreedy, ali ne odgovara ništa sam po sebi
-
PREGLEDNIK: ? odgovara jednom znaku
Mora li cijeli izraz odgovarati:
-
Regularni izraz: Bez upotrebe vodećeg ^ i sljedećeg $, UZORAK ne mora odgovarati cijelom NIZU: Dovoljno je da NIZ sadrži podniz koji se podudara.
-
preglednik: Uvijek zahtijevaj da se NIZ točno podudara prema UZORKU
Primjerima
Želimo uskladiti sve nazive glavnih računala pod "provider.domain", ali ne i "otherprovider.domain", "provider.domain.tld" ili "providersdomain":
Regularni izraz:
shExpMatch(url, „^.*\\.provider\\.domain$”)
preglednik:
shExpMatch(url, "*.provider.domain")
Želimo uskladiti "proxy1.domain", "proxy2.domain" i tako dalje, ali ne i "proxytest.domain":
Regularni izraz:
shExpMatch(url, „^proxy.\\.domain$“)
preglednik:
shExpMatch(url, "proxy?.domena")
Ostali resursi
Dodatne pojedinosti o PAC formatu datoteke potražite u: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .