PAC-konvensjonen som brukes av de store nettleserne, inkludert nettmotoren, er å bruke en modifisert syntaks med regulært uttrykk. Inntil nå har pacmanager brukt vanlige regulære uttrykk for matching. Vi endrer shExpMatch -funksjonen for å bruke en matchning som ligner på nettleserne.

Denne endringen betyr at RoomOS vil fungere med samme PAC-filtreff som andre webklienter i nettverket. PAC-filer som er spesifikt skrevet for RoomOS, må kanskje oppdateres for å fortsette å fungere som tiltenkt.

PAC-filevalueringen utføres på to separate steder i RoomOS-programvaren:

  • Nettmotor for egen trafikk.

  • Pacmanager for all annen HTTP-trafikk: HttpFeedback, Webex-klargjøring, samtalesignalisering og så videre.

En PAC-fil kan bruke denne funksjonen: shExpMatch(streng, mønster)

Den returnerer sann hvis strengen samsvarer med mønsteret, usann hvis ikke.

Hovedforskjellene mellom de to konvensjonene er oppført nedenfor, med «REGEX» som betyr tradisjonelle regulære uttrykk og «BROWSER» som betyr nettleserkonvensjonen.

Prikktegnet, "."

  • REGEX: . samsvarer med et enkelt tegn, som kan gjentas med et kvantum

  • NETTLESER: . samsvarer bare med bokstavelig prikk

Stjernen "*":

  • REGEX: * er en null eller mer kvantifikator etter et element, men samsvarer ikke med noe på egen hånd

  • NETTLESER: * samsvarer med null eller flere tegn

Spørsmålstegnet "?":

  • REGEX: ? er en null-eller-en kvantifikator etter et element, eller kan endre * kvantifikatoren til å være ikke-grådig, men samsvarer ikke med noe på egen hånd

  • NETTLESER: ? samsvarer med et enkelt tegn

Om hele uttrykket må samsvare med:

  • regex: Uten å bruke ledende ^ og etterfølgende $, trenger ikke MØNSTERET å matche hele STRENGEN: Det er nok at STRENGEN inneholder en understreng som samsvarer.

  • nettleser: Krev alltid at STRENG samsvarer nøyaktig med MØNSTER

Eksempler

Vi ønsker å matche alle vertsnavn under "provider.domain", men ikke "otherprovider.domain", "provider.domain.tld" eller "providersdomain":

regex:

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

nettleser:

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

Vi ønsker å matche «proxy1.domain», «proxy2.domain» og så videre, men ikke «proxytest.domain»:

regex:

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

nettleser:

 shExpMatch(url, «proxy?.domain») 

Andre ressurser

Hvis du vil ha mer informasjon om PAC-filformatet, kan du se: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .