Spreminjamo način delovanja ujemanja samodejne konfiguracije strežnika proxy (PAC) za pacmanager v programski opremi RoomOS.
Konvencija PAC, ki jo uporabljajo glavni spletni brskalniki, vključno s spletnim mehanizmom, je uporaba spremenjene sintakse običajnega izraza. Do sedaj je pacmanager za ujemanje uporabljal običajne običajne izraze. Funkcijo shExpMatch spreminjamo tako, da uporablja ujemanje, ki je podobno brskalnikom.
Ta sprememba pomeni, da bo RoomOS deloval z enakimi ujemanjem datotek PAC kot drugi spletni odjemalci v omrežju. Datoteke PAC, napisane posebej za RoomOS, bo morda treba posodobiti, da bodo še naprej delovale, kot je bilo predvideno.
Vrednotenje datoteke PAC poteka na dveh ločenih mestih v programski opremi RoomOS:
-
Spletni motor za lasten promet.
-
Pacmanager za ves drug promet HTTP: HttpFeedback, omogočanje uporabe Webex, signalizacija klicev in tako naprej.
Datoteka PAC lahko uporablja to funkcijo: shExpMatch(niz, vzorec)
Vrne vrednost true, če se niz ujema z vzorcem, sicer pa napačno.
Glavne razlike med obema dogovoroma so navedene spodaj, pri čemer "REGEX" pomeni tradicionalne regularne izraze, "BROWSER" pa konvencijo o spletnem brskalniku.
Znak s piko, "."
-
REGEX: . se ujema z enim znakom, ki se lahko ponovi s kvantifikatorjem
-
BRSKALNIK:. Ujema se samo z dobesednim znakom pike
Zvezda, "*":
-
REGEX: * je ničelni ali večji kvantifikator za elementom, vendar se sam po sebi ne ujema z ničemer
-
BRSKALNIK: * se ujema z nič ali več znaki
Vprašaj "?":
-
REGEX: ? je kvantifikator nič ali ena za elementom ali pa lahko kvantifikator * spremeni tako, da ni pohlepen, vendar se sam po sebi ne ujema z ničemer
-
BRSKALNIK:? se ujema z enim znakom
Ali se mora celoten izraz ujemati:
-
REGEX: Brez uporabe vodilnih ˆ in zadnjih $ se PATTERN ne ujema s celotnim NIZOM: Dovolj je, da STRING vsebuje podniz, ki se ujema.
-
BRSKALNIK: Vedno zahtevajte, da se STRING natančno ujema z PATTERN
Primeri
Vsa imena gostiteljev želimo povezati pod »provider.domain«, ne pa tudi »otherprovider.domain«, »provider.domain.tld« ali »providersdomain«:
REGEX:
shExpMatch(url, "ˆ.*\\.provider\\.domain$")
BRSKALNIK:
shExpMatch(url, "*.provider.domain")
Želimo se ujemati z »proxy1.domain«, »proxy2.domain« in tako naprej, ne pa tudi »proxytest.domain«:
REGEX:
shExpMatch(url, "ˆproxy.\\.domain$")
BRSKALNIK:
shExpMatch(url, »proxy?. domena")
Drugi viri
Za več podrobnosti o obliki zapisa datoteke PAC glejte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .