La convenzione PAC utilizzata dai principali browser Web, incluso il motore Web, consiste nell'utilizzare una sintassi delle espressioni regolari modificata. Fino a questo momento, pacmanager ha utilizzato le normali espressioni regolari per la corrispondenza. È in corso una modifica della funzione shExpMatch volta a utilizzare una corrispondenza simile a quella dei browser.

In base a questa modifica, RoomOS utilizzerà le stesse corrispondenze di file PAC degli altri client Web della rete. Per continuare a funzionare come previsto, i file PAC appositamente scritti per RoomOS potrebbero richiedere un aggiornamento.

La valutazione del file PAC viene effettuata in due ubicazioni separate nel software RoomOS:

  • Motore Web per il proprio traffico.

  • Pacmanager per il resto del traffico HTTP: HttpFeedback, provisioning di Webex, segnalazione delle chiamate e così via.

Un file PAC può avvalersi di questa funzione: shExpMatch(string, pattern)

Restituisce true se la stringa corrisponde al percorso e false in caso contrario.

Le principali differenze tra le due convenzioni sono elencate di seguito, dove "REGEX" identifica espressioni regolari tradizionali e "BROWSER" la convenzione del browser Web.

Simbolo di punto "."

  • REGEX: . corrisponde a un solo carattere, che può essere ripetuto con un quantificatore

  • BROWSER: . corrisponde solo a un carattere di punto letterale

Asterisco "*":

  • REGEX: * è un quantificatore pari almeno a zero quando segue un elemento, ma non corrisponde a nulla se è da solo

  • BROWSER: * corrisponde a zero o più caratteri

Punto di domanda "?":

  • REGEX: ? è un quantificatore zero o uno quando segue un elemento oppure può modificare il quantificatore * fungendo da limite, ma che non corrisponda a nulla se è da solo

  • BROWSER: ? corrisponde a un solo carattere

Se è necessario che l'intera espressione corrisponda:

  • REGEX: senza l'utilizzo di ˆ iniziale e $ finale, il PERCORSO non deve corrispondere all'intera STRINGA: è sufficiente che la STRINGA contenga una sottostringa corrispondente.

  • BROWSER: richiedere sempre una STRINGA esattamente corrispondente al PERCORSO

Esempi

È consigliabile trovare una corrispondenza per tutti i nomi host sotto "provider.domain", ma non per "otherprovider.domain", "provider.domain.tld" o "providersdomain":

REGEX:

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

BROWSER:

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

È consigliabile trovare una corrispondenza per "proxy1.domain", "proxy2.domain" e così via, ma non per "proxytest.domain":

REGEX:

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

BROWSER:

shExpMatch(url, "proxy?.domain")

Altre risorse

Per maggiori dettagli sul formato del file PAC, consultare: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file.