A PAC konvenció, amit a nagy webböngészők használnak, beleértve a webmotorokat is, egy módosított reguláris kifejezés szintaxist. A pacmanager eddig normál reguláris kifejezéseket használt az egyezéshez. Az shExpMatch funkciót a böngészőhöz hasonló egyezés használatára módosítjuk.

Ez a módosítás azt jelenti, hogy a RoomOS ugyanazokkal a PAC-fájlokkal fog működni, mint a hálózat más webkliensei. Előfordulhat, hogy a kifejezetten a RoomOS operációs rendszerhez írt PAC-fájlokat frissíteni kell ahhoz, hogy megfelelően működjenek.

A PAC fájl értékelése két külön helyen történik a RoomOS szoftverben:

  • Webmotor a saját forgalmához.

  • Pacmanager minden más HTTP forgalomhoz: HttpFeedback, Webex beüzemelése, hívásjelzésátvitel és így tovább.

A PAC fájl használhatja ezt a funkciót: shExpMatch( sztring, minta)

TRUE értéket ad vissza, ha a string illeszkedik a mintára, egyébként FALSE értéket ad.

A két konvenció közötti főbb különbségek az alábbiakban olvashatók, a "REGEX" a hagyományos reguláris kifejezéseket és a "BÖNGÉSZŐ" a webböngésző konvencióját jelenti.

A pont jele "."

  • A REGEX: . egyetlen karakterre illeszkedik, amit kvantorral (sokszorozóval) lehet ismételni

  • BÖNGÉSZŐ: . csak egy pont karakternek felel meg

A csillag, "*":

  • REGEX: * egy nulla vagy több kvantor egy elem után, de önmagában nem illeszkedik semmire.

  • BÖNGÉSZŐ: * nulla vagy több karakternek felel meg

A "?" kérdőjel:

  • Ez a kvantor (sokszorozó) alapértelmezés szerint nem mohók, csak a tárgyszöveg elejére illeszkedhetnek.

  • BÖNGÉSZŐ: ? egyetlen karakterre illeszkedik

Az egész kifejezésnek egyeznie kell-e:

  • regex: A kezdő ^ és a záró $ nélkül a MINTÁNAK nem kell az egész szövegre illeszkednie: Elegendő, ha a STRING olyan szövegrészt tartalmaz, ami egyezik.

  • böngésző: Mindig pontosan MINTA szerint kell ILLESZTENI

Példák

A „provider.domain” alatt szereplő összes állomásnevet meg akarjuk egyezni, az „otherprovider.domain”, a „provider.domain.tld” vagy a „providersdomain” cím alatt nem:

regex:

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

böngésző:

 shExpMatch (url, „*.provider.tartomány”) 

Szeretnénk egyeztetni a „proxy1.domain”, a „proxy2.domain” és így tovább, de a „proxytest.domain” nem:

regex:

 shExpMatch (url, "^proxy.\\.tartomány$") 

böngésző:

 shExpMatch (url, "proxy?.tartomány") 

Egyéb erőforrások

A PAC-fájlformátumról bővebben lásd: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .