Konvencia PAC, ktorú používajú hlavné webové prehliadače, vrátane webového nástroja, spočíva v používaní modifikovanej syntaxe regulárneho výrazu. Doteraz pacmanager používal bežné regulárne výrazy pre párovanie. Meníme funkciu shExpMatch tak, aby používala zhodu, ktorá je podobná prehliadačom.

Táto zmena znamená, že RoomOS bude pracovať s rovnakými zhodami súborov 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ý engine pre vlastnú prevádzku.

  • Pacmanager pre všetky ostatné prenosy HTTP: HttpFeedback, Webex poskytovanie, signalizácia hovorov atď.

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

Vráti hodnotu true, ak sa reťazec zhoduje so vzorom, inak nepravda.

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: . Zhoduje sa s jedným znakom, ktorý je možné opakovať pomocou kvantifikátora

  • PREHLIADAČ:. Zodpovedá iba doslovnému bodkovému znaku

Hviezda "*":

  • REGEX: * je nulový alebo viac kvantifikátor za položkou, ale sám o sebe nič nezodpovedá

  • PREHLIADAČ: * zodpovedá nule alebo viacerým znakom

Otáznik "?":

  • REGEX: ? je nulový alebo jeden kvantifikátor za položkou, alebo môže modifikovať kvantifikátor * tak, aby nebol chamtivý, ale sám o sebe sa ničomu nezhoduje

  • PREHLIADAČ:? Zodpovedá jednému znaku

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

  • REGEX: Bez použitia úvodného ˆ a koncového $ sa PATTERN nemusí zhodovať s celým STRING: Stačí, aby STRING obsahoval podreťazec, ktorý sa zhoduje.

  • PREHLIADAČ: Vždy vyžadovať, aby sa STRING presne zhodoval s PATTERN

Príklady

Chceme zhodovať všetky názvy hostiteľov s reťazcom provider.domain, ale nie s názvom "otherprovider.domain", "provider.domain.tld" alebo "providersdomain":

REGEX:

 shExpMatch(url; "ˆ.*\\.provider\\.domain$") 

PREHLIADAČ:

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

Chceme priradiť "proxy1.domain", "proxy2.domain" atď., ale nie "proxytest.domain":

REGEX:

 shExpMatch(url; "ˆproxy.\\.domain$") 

PREHLIADAČ:

 shExpMatch(url; "proxy?. doména") 

Ďalšie zdroje

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