Convenția PAC utilizată de principalele browsere web, inclusiv motorul web, este de a utiliza o sintaxă de expresie regulată modificată. Până acum, pacmanager a folosit expresii regulate obișnuite pentru potrivire. Modificăm funcția shExpMatch pentru a utiliza o potrivire similară cu browserele.

Această modificare înseamnă că RoomOS va lucra cu același fișier PAC se potrivește cu alți clienți web din rețea. Este posibil ca fișierele PAC scrise în mod specific pentru RoomOS să trebuiască să fie actualizate pentru a continua să funcționeze conform intenției.

Evaluarea fișierului PAC se face în două locuri separate în software-ul RoomOS:

  • Motor web pentru propriul trafic.

  • Pacmanager pentru toate celelalte tipuri de trafic HTTP: HttpFeedback, configurare Webex, semnalizarea apelurilor și așa mai departe.

Un fișier PAC poate utiliza această funcție: shExpMatch (șir, șablon)

Returnează TRUE dacă şirul de caractere se potriveşte cu modelul, FALSE în caz contrar.

Principalele diferențe dintre cele două convenții sunt enumerate mai jos, „REGEX” însemnând expresii regulate tradiționale și „BROWSER” însemnând convenția browserului web.

Semnul cu puncte, „.”

  • REGEX: . corespunde unui singur caracter, care poate fi repetat cu un cuantic

  • NAVIGATOR: . corespunde numai unui caracter punct literal

Steaua, „*”:

  • REGEX: * este un cuantic zero sau mai mult după un element, dar nu se potrivește cu nimic singur

  • BROWSER: * se potrivește cu zero sau mai multe caractere

Semnul întrebării, „?”:

  • REGEX: ? este un cuantificator zero sau unu după un element, sau poate modifica cuantificatorul * pentru a fi non-lacom, dar nu se potrivește cu nimic pe cont propriu

  • BROWSER: ? corespunde unui singur caracter

Dacă întreaga expresie trebuie să se potrivească:

  • regulă: Fără utilizarea de leading ^ și la sfârșitul $, MODELUL nu trebuie să se potrivească cu întregul ȘIR: Este suficient ca ȘIRUL să conțină un substrat care se potrivește.

  • browser: Solicită întotdeauna ca ȘIRUL să fie potrivit exact după MODEL

Exemple

Vrem să potrivim toate numele de gazdă din „provider.domain”, dar nu și „otherprovider.domain”, „provider.domain.tld” sau „providersdomain”:

regulă:

 shExpMatch (url, „^.*\\.furnizor\\.domeniu$”) 

browser:

 shExpMatch (url, „*.furnizor.domeniu”) 

Vrem să potrivim „proxy1.domain”, „proxy2.domain” și așa mai departe, dar nu și „proxytest.domain”:

regulă:

 shExpMatch (url, „^proxy.\\. domeniu$”) 

browser:

 shExpMatch (url, "proxy?. domeniu") 

Alte resurse

Pentru mai multe detalii despre formatul fișierului PAC, consultați: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .