Konvenciou PAC, ktorú používajú hlavné webové prehliadače vrátane webového nástroja, je použitie modifikovanej syntaxe regulárneho výrazu. Až doteraz pacmanager používal na porovnávanie bežné regulárne výrazy. Funkciu shExpMatch meníme tak, aby používala zhodu, ktorá je podobná prehliadačom.

Táto zmena znamená, že RoomOS bude pracovať s rovnakými súbormi PAC ako ostatní weboví klienti v sieti. Súbory PAC špeciálne napísané pre RoomOS môže byť potrebné aktualizovať, aby fungovali podľa plánu.

Vyhodnotenie súboru PAC sa vykonáva na dvoch samostatných miestach v softvéri RoomOS:

  • Webový nástroj pre vlastnú návštevnosť.

  • Pacmanager pre všetku ostatnú komunikáciu HTTP: HttpFeedback, poskytovanie Webexu, signalizácia hovorov atď.

Súbor PAC môže využívať túto funkciu: shExpMatch(reťazec, vzor)

Ak sa reťazec zhoduje so vzorom, vráti hodnotu true, v opačnom prípade hodnotu false.

Hlavné rozdiely medzi týmito dvoma konvenciami sú uvedené nižšie, pričom „REGEX“ znamená tradičné regulárne výrazy a „BROWSER“ znamená konvenciu webového prehliadača.

Bodka „.“

  • REGEX: . sa zhoduje s jedným znakom, ktorý možno zopakovať s kvantifikátorom

  • PREHLIADAČ: . zhoduje sa iba so znakom doslovnej bodky

Hviezda, "*":

  • REGEX: * je nula alebo viac kvantifikátorov za položkou, ale sama osebe sa s ničím nezhoduje

  • BROWSER: * zodpovedá nule alebo viacerým znakom

Otáznik "?":

  • REGEX: ? je kvantifikátor nula alebo jedna za položkou, alebo môže upraviť * kvantifikátor tak, aby bol nezištný, ale sám sa s ničím nezhoduje

  • PREHLIADAČ: ? zhoduje sa s jedným znakom

Či sa celý výraz musí zhodovať:

  • REGEX: Bez použitia úvodných ^ a koncových $ sa VZOR nemusí zhodovať s celým STRING: Stačí, že STRING obsahuje podreťazec, ktorý sa zhoduje.

  • PREHLIADAČ: Vždy požadujte, aby sa STRING presne zhodoval so vzorom PATTERN

Príklady

Chceme nájsť zhodu všetkých názvov hostiteľov v rámci „provider.domain“, ale nie „otherprovider.domain“, „provider.domain.tld“ alebo „providersdomain“:

REGEX:

 shExpMatch(url, "^.*\\.poskytovateľ\\.domena$") 

PREHLIADAČ:

 shExpMatch(url, "*.provider.domain") 

Chceme nájsť zhodu „proxy1.domain“, „proxy2.domain“ atď., ale nie „proxytest.domain“:

REGEX:

 shExpMatch(url, "^proxy.\\.domena$") 

PREHLIADAČ:

 shExpMatch(url, "proxy?.domena") 

Iné zdroje

Ďalšie podrobnosti o formáte súboru PAC nájdete na stránke: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .