Den PAC-konvention, der bruges af de store webbrowsere, herunder webprogrammet, er at bruge en modificeret syntaks for et regulært udtryk. Indtil nu har pacmanager brugt regulære udtryk til matchningen. Vi ændrer funktionen shExpMatch, så der bruges en matchning, der svarer til browserne.

Denne ændring betyder, at RoomOS fungerer med de samme PAC-fil-matches som andre webklienter i netværket. PAC-filer, der er specielt skrevet til RoomOS, skal muligvis opdateres for fortsat at fungere efter hensigten.

Evalueringen af PAC-filen udføres to forskellige steder i RoomOS-softwaren:

  • Webprogram til dens egen trafik.

  • Pacmanager til al anden HTTP-trafik: HttpFeedback, Webex-klargøring, opkaldssignalering osv.

En PAC-fil kan bruge denne funktion: shExpMatch (streng, mønster)

Den returnerer sand, hvis strengen matcher mønsteret, og ellers returnerer den falsk.

De væsentligste forskelle mellem de to konventioner er angivet herunder, hvor "REGEX" betyder traditionelle regulære udtryk, og "BROWSER" betyder webbrowserkonventionen.

Punktummet, "."

  • REGEX:. matcher et enkelt tegn, der kan gentages med en kvantifikator

  • BROWSER: . matcher kun et punktum

Stjernen, "*":

  • REGEX: * er en nul-eller-flere-kvantifikator efter et element, men matcher ikke noget alene.

  • BROWSER: * matcher nul eller flere tegn

Spørgsmålstegnet "?":

  • REGEX:? er en nul-eller-én-kvantifikator efter et element eller kan modificere kvantifikatoren *, så den bliver non-greedy, men matcher ikke noget alene

  • BROWSER:? matcher et enkelt tegn

Om hele udtrykket skal matche:

  • REGEX: uden brug af indledende ˆ og efterfølgende $ skal MØNSTERet ikke matche hele STRENGen: Det er nok, at STRENGen indeholder en understreng, der matcher.

  • BROWSER: Kræv altid, at MØNSTERet matcher STRENGen nøjagtigt

Eksempler:

Vi vil matche alle værtsnavne under "provider.domain", men ikke "otherprovider.domain", "provider.domain." eller "providersdomain":

REGEX:

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

BROWSER:

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

Vi vil matche "proxy1.domain", "proxy2.domain" osv., men ikke "proxytest.domain":

REGEX:

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

BROWSER:

shExpMatch(url, "proxy?.domain")

Andre ressourcer

Hvis du ønsker yderligere oplysninger om PAC-filformatet, kan du se: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file.