Den PAC-konvention, der bruges af de store webbrowsere, herunder webprogrammet, er at bruge en modificeret regulært udtryk syntaks. Indtil nu har pacmanager brugt almindelige regulære udtryk for matchningen. Vi ændrer funktionen shExpMatch til at bruge en matchning, der svarer til browserne.
Denne ændring betyder, at RoomOS vil arbejde med de samme PAC-filresultater som andre webklienter på netværket. PAC-filer, der er specifikt skrevet til RoomOS, skal muligvis opdateres for at fortsætte med at fungere som tilsigtet.
PAC-filevalueringen udføres på to separate steder i RoomOS-softwaren:
-
Webprogram til egen trafik.
-
Pacmanager for al anden HTTP-trafik: HttpFeedback, Webex-klargøring, opkaldssignal osv.
En PAC-fil kan bruge denne funktion: shExpMatch( streng, mønster)
Den giver sand hvis strengen matcher mønsteret, ellers false.
De vigtigste forskelle mellem de to konventioner er anført nedenfor, med "REGEX" betyder traditionelle regulære udtryk og "BROWSER" betyder webbrowserkonventionen.
Priktegnet "."
-
REGEX: . matcher et enkelt tegn, som kan gentages med en kvantifikator
-
BROWSER: . matcher kun et bogstav med punktum
Stjernen, "*":
-
REGEX: * er en nul-eller-mere kvantifikator efter et element, men matcher ikke noget i sig selv
-
Browser: * matcher nul eller flere tegn
Spørgsmålstegnet "?":
-
REGEX: ? er en nul-eller-en kvantifikator efter et element, eller kan ændre * kvantifikatoren til at være ikke-grådig, men matcher ikke noget på egen hånd
-
Browser: ? matcher et enkelt tegn
Om hele udtrykket skal matche:
-
regex: Uden brug af foranstillede ^ og efterstillede $ behøver MØNSTERET ikke at matche hele STRENGEN: Det er nok, at strengen INDEHOLDER en understreng, der matcher.
-
browser: Kræver altid, at STRENG matches nøjagtigt efter MØNSTER
Eksempler:
Vi ønsker at matche alle værtsnavne under "provider.domain", men ikke "otherprovider.domain", "provider.domain.tld" eller "providersdomain":
regex:
shExpMatch( url, "^.*\\.provider\\.domain$")
browser:
shExpMatch(URL, "*.udbyder.domæne")
Vi vil matche "proxy1.domain", "proxy2.domain" osv., men ikke "proxytest.domain":
regex:
shExpMatch( url, "^proxy.\\.domain$")
browser:
shExpMatch(URL, "proxy?.domæne")
Andre ressourcer
For yderligere oplysninger om PAC-filformatet, se: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .