PAC-konventionen, der bruges af de store webbrowsere, inklusive webmotor, er at bruge en ændret regulær udtrykssyntaks. Indtil nu har pacmanager brugt almindelige regulære udtryk til matchningen. Vi ændrer Shexp Match-funktionen til at bruge en matchning, der ligner browserne.
Denne ændring betyder, at RoomOS fungerer med de samme PAC-filmatches som andre webklienter i netværket. PAC-filer, der er specifikt skrevet til RoomOS, skal muligvis opdateres for at fortsætte med at fungere som beregnet.
PAC-filevalueringen udføres to separate steder i RoomOS-software:
-
Webmotor til sin egen trafik.
-
Pacmanager til al anden HTTP-trafik: HttpFeedback, Webex provisioning, opkaldssignalering og så videre.
En PAC-fil kan gøre brug af denne funktion: ShexpMatch (streng, mønster)
Det returnerer sandt, hvis strengen matcher mønsteret, falsk ellers.
De vigtigste forskelle mellem de to konventioner er anført nedenfor, med „REGEX“, der betyder traditionelle regulære udtryk og „BROWSER“, der betyder webbrowserkonventionen.
Prikketegnet, „.“
-
REGEX:. matcher et enkelt tegn, som kan gentages med en kvantificator
-
BROWSER:. matcher kun et bogstaveligt prikktegn
Stjernen, „*“:
-
REGEX: * er en nul-eller-mer-kvantificator efter et element, men matcher ikke noget alene
-
BROWSER: * matcher nul eller flere tegn
Spørgsmålstegnet, „?“ :
-
REGEX:? er en nul-eller-en-kvantificator efter et element, eller kan ændre *-kvantificatoren til at være ikke-grådig, men matcher ikke noget alene
-
BROWSER:? matcher et enkelt tegn
Om hele udtrykket skal matche:
-
REGEX: Uden brug af ledende ^ og efterfølgende $ behøver PATTERN ikke at matche hele STRENGEN: Det er nok, at STRENGEN indeholder en understreng, der matcher.
-
BROWSER: Kræv altid, at STRING matches nøjagtigt af PATTERN
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, "*.provider.domain")
Vi ønsker at matche „proxy1.domain“, „proxy2.domain“ osv., men ikke „proxytest.domain“:
REGEX:
shExpMatch(url, "^proxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
Andre ressourcer
Du kan finde flere oplysninger om PAC-filformatet på: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .