PAC konvencija koju koriste glavni veb pregledači, uključujući veb pokretač, je da koristi izmenjenu sintaksu regularnog izraza. Pacmanager je do sada koristio obične regularne izraze za podudaranje. Menjamo funkciju shExpMatch da bismo koristili podudaranje koje je slično pregledačima.
Ova promena znači da će RoomOS raditi sa istom PAC datotekom koja se podudara sa drugim veb-klijentima u mreži. PAC datoteke posebno napisane za RoomOS možda će morati da se ažuriraju kako bi nastavili da rade po predviđenom planu.
PAC procena datoteke obavlja se na dva odvojena mesta u RoomOS softveru:
-
Web engine za sopstveni saobraćaj.
-
Pacmanager za sav drugi HTTP saobraćaj: HttpFeedback, obezbeđivanje usluge Webex, signaliziranje poziva itd.
PAC datoteka može da koristi ovu funkciju: shExpMatch(niska, pattern)
Vraća se tačno ako se niska podudara sa obrascem, a netačno u suprotnom.
Glavne razlike između ove dve konvencije navedene su ispod, sa „REGEX” što znači tradicionalni regularni izraz i „BROWSER” što znači konvenciju veb pregledača.
Znak tačke, „“.
-
REGEX: . odgovara jednom karakteru, koji se može ponavljati sa kvantifikatom
-
Pregledač: . se podudara samo sa literalnim znakom tačke
Zvezda, „*”:
-
REGEX: * je kvantifikator nula-više posle stavke, ali ne odgovara ničemu samostalno.
-
Pregledač: * odgovara nuli ili više znakova
Znak pitanja, „?“:
-
REGEX: ? je nulti ili jedan kvantifikator posle stavke, ili može da izmeni kvantifikator da bude nepohlepan, ali ne odgovara ničemu sam po sebi.
-
Pregledač: ? odgovara jednom znaku
Da li ceo izraz mora da se podudara:
-
regex : Bez korišćenja vodećeg ^ and trailing $, OBRAZAC ne mora da odgovara celom NIZU: Dovoljno je da STRING sadrži podniz koji se podudara.
-
pregledač: Uvek zahtevaj da se NISKA tačno podudara po ŠABLONU
Primeri
Želimo da se podudaramo sa svim imenima hosta pod „provider.domain“, ali ne i „otherprovider.domain“, „provider.domain.tld“ ili „providersdomain“:
regex :
shExpMatch(url, „^.*\\.provider\\.domain$“)
pregledač:
shExpMatch (url, „*.provider.domain“)
Želimo da odgovara „proxy1.domain”, „proxy2.domain” i tako dalje, ali ne i „proxy.domain”:
regex :
shExpMatch(url, „^proxy.\\.domain$“)
pregledač:
shExpMatch (url, "proxy?.domain")
Drugi resursi
Za više detalja o PAC formatu datoteke pogledajte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .