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 .