Konwencją PAC używaną przez główne przeglądarki internetowe, w tym silnik sieciowy, jest użycie zmodyfikowanej składni wyrażenia regularnego. Do tej pory pacmanager używał zwykłych wyrażeń regularnych do dopasowania. Zmieniamy funkcję shExpMatch , aby użyć dopasowania podobnego do przeglądarki.

Ta zmiana oznacza, że RoomOS będzie współpracować z tymi samymi dopasowaniami pliku PAC, co inne klienty sieci Web. Pliki PAC napisane specjalnie dla systemu RoomOS mogą wymagać aktualizacji, aby mogły nadal działać zgodnie z przeznaczeniem.

Ocena pliku PAC odbywa się w dwóch oddzielnych miejscach w oprogramowaniu RoomOS:

  • Silnik sieciowy dla własnego ruchu.

  • Menedżer pakietów dla wszystkich innych połączeń HTTP: HttpFeedback, obsługa administracyjna usługi Webex, sygnalizacja połączeń itd.

Plik PAC może skorzystać z tej funkcji: shExpMatch(ciąg, wzorzec)

Zwraca true jeśli łańcuch znaków pasuje do wzorca, false w przeciwnym przypadku.

Poniżej wymieniono główne różnice między tymi dwoma konwencjami: „REGEX” oznacza tradycyjne wyrażenia regularne i „BROWSER” oznacza konwencję przeglądarki internetowej.

Znak kropki „.”

  • REGEX: . pasuje do pojedynczego znaku, który można powtórzyć kwantyfikatorem

  • PRZEGLĄDARKA: . pasuje tylko do literalnego znaku kropki

Gwiazdka „*”:

  • REGEX: * jest kwantyfikatorem zero lub więcej po elemencie, ale nie pasuje do niczego w pojedynkę

  • PRZEGLĄDARKA: * pasuje do zera lub więcej znaków

Znak zapytania „?”:

  • REGEX: ? to kwantyfikator zerowy lub jeden po elemencie, lub może zmodyfikować kwantyfikator * tak, aby był niechciany, ale sam w sobie nie pasuje.

  • PRZEGLĄDARKA: ? pasuje do pojedynczego znaku

Czy całe wyrażenie musi być zgodne:

  • wyrażenie regularne: Bez użycia początkowych ^ i końcowych $, WZORZEC nie musi pasować do całego CIĄGU: Wystarczy, że ŁAŃCUCH zawiera dopasowany do siebie podkład.

  • przeglądarka: Zawsze wymagaj, aby CIĄG był dopasowany dokładnie do WZORCA

Przykłady

Chcemy dopasować wszystkie nazwy hostów w "provider.domain", ale nie w "otherprovider.domain", "provider.domain.tld" ani "providersdomain":

wyrażenie regularne:

 shExpMatch(url, "^.*\\.dostawca\\.domena$") 

przeglądarka:

 shExpMatch(url, „*.dostawca.domena”) 

Chcemy dopasować słowa „proxy1.domena”, „proxy2.domena” itd., ale nie „proxytest.domena”:

wyrażenie regularne:

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

przeglądarka:

 shExpMatch(url, „proxy?.domena”) 

Inne zasoby

Aby uzyskać więcej informacji na temat formatu pliku PAC, zobacz: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .