Meníme spôsob, akým funguje párovanie automatickej konfigurácie servera proxy (PAC) pre správcu softvéru RoomOS.
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 .