La convenzione PAC utilizzata dai principali browser web, incluso il motore Web, è quella di utilizzare una sintassi di espressione regolare modificata. Fino ad ora, pacmanager ha usato le espressioni regolari ordinarie per la corrispondenza. È stata modificata la funzione shExpMatch per utilizzare una corrispondenza simile a quella dei browser.

Questa modifica significa che RoomOS funzionerà con la stessa corrispondenza di file PAC degli altri client Web nella rete. Potrebbe essere necessario aggiornare i file PAC scritti specificatamente per RoomOS per continuare a funzionare come previsto.

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

  • Motore Web per il proprio traffico.

  • Pacmanager per tutto il traffico HTTP: HttpFeedback, provisioning Webex, segnali di chiamata e così via.

Un file PAC può utilizzare questa funzione: shExpMatch(stringa, schema)

Restituisce true se la stringa soddisfa il criterio di riconoscimento, false in caso contrario.

Le principali differenze tra le due convenzioni sono elencate di seguito, con "REGEX" che significa espressioni regolari tradizionali e "BROWSER" che significa convenzione browser web.

Il segno di punto "."

  • REGEX: . identifica un singolo carattere che può essere ripetuto con una occorrenza

  • BROWSER: . corrisponde solo a un carattere punto letterale

La stella, "*":

  • REGEX: * indica le occorrenze zero o più dopo un elemento, ma non identifica nulla di suo

  • BROWSER: * corrisponde a zero o più caratteri

Il punto interrogativo, "?":

  • REGEX: ? è una occorrenza zero or one dopo un elemento, o può cambiare * in modo da non essere "greedy", ma non riconosce nulla di suo

  • BROWSER: ? corrisponde a un singolo carattere

Se l'intera espressione deve corrispondere:

  • regex: Senza l 'uso di ^ iniziale e $ finale, il CRITERIO non deve necessariamente riconoscere l 'intera STRINGA: È sufficiente che la STRINGA contenga una sottostringa corrispondente.

  • browser: Richiede sempre che STRINGA corrisponda esattamente al MODELLO

Esempi

Si desidera associare tutti i nomi host nella sezione "provider.domain", ma non "otherprovider.domain", "provider.domain.tld" o "providersdomain":

regex:

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

browser:

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

Si desidera identificare "proxy1.domain", "proxy2.domain" e così via, ma non "proxytest.domain":

regex:

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

browser:

 shExpMatch(url, "proxy?.dominio") 

Altre risorse

Per ulteriori dettagli sul formato di file PAC, vedere: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .