Die PAC-Konvention, die von den großen Webbrowsern, einschließlich der Web-Engine, verwendet wird, besteht darin, eine modifizierte Syntax für reguläre Ausdrücke zu verwenden. Bisher verwendet pacmanager gewöhnliche reguläre Ausdrücke für das Matching. Wir ändern die Funktion shExpMatch , um eine Übereinstimmung zu verwenden, die den Browsern ähnelt.

Diese Änderung bedeutet, dass RoomOS mit den gleichen PAC-Dateiübereinstimmungen wie andere Web-Clients im Netzwerk funktioniert. PAC-Dateien, die speziell für RoomOS geschrieben wurden, müssen möglicherweise aktualisiert werden, um weiterhin wie vorgesehen zu funktionieren.

Die PAC-Datei wird an zwei verschiedenen Orten in der RoomOS-Software ausgewertet:

  • Web-Engine für eigenen Datenverkehr.

  • Pacmanager für den gesamten anderen HTTP-Datenverkehr: HttpFeedback, Webex-Bereitstellung, Anrufsignalisierung usw.

Eine PAC-Datei kann diese Funktion nutzen: shExpMatch(Zeichenfolge, Muster)

Sie gibt true zurück, wenn der String mit dem Muster übereinstimmt, andernfalls false.

Die wichtigsten Unterschiede zwischen den beiden Konventionen sind nachstehend aufgeführt, wobei "REGEX" traditionelle reguläre Ausdrücke und "BROWSER" die Webbrowser-Konvention bedeutet.

Das Punktzeichen "."

  • REGEX: . entspricht einem einzelnen Zeichen, das mit einem Quantifikator wiederholt werden kann

  • BROWSER: . entspricht nur einem Punkt

Der Stern „*“:

  • REGEX: * ist ein Null-oder-mehr-Quantifikator nach einem Element, entspricht aber nichts an sich

  • BROWSER: * entspricht null oder mehr Zeichen

Das Fragezeichen "?":

  • REGEX: ? ist ein Null-oder-ein-Quantifikator nach einem Element, oder kann den *-Quantifikator ändern, um nicht-gierig zu sein, aber entspricht nichts an sich

  • BROWSER: ? entspricht einem einzelnen Zeichen

Ob der gesamte Ausdruck übereinstimmen muss:

  • regex: Ohne vorangestelltes ^ und vorangestelltes $ muss das MUSTER nicht mit der gesamten ZEICHENKETTE übereinstimmen: Es reicht aus, dass die ZEICHENKETTE eine übereinstimmende Zeichenkette enthält.

  • Browser: Zeichenfolge muss immer genau mit MUSTER übereinstimmen

Bespiele

Wir möchten alle Hostnamen unter „provider.domain“ abgleichen, jedoch nicht unter „otherprovider.domain“, „provider.domain.tld“ oder „providersdomain“:

regex:

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

Browser:

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

Wir möchten mit „proxy1.domain“, „proxy2.domain“ usw. übereinstimmen, aber nicht mit „proxytest.domain“:

regex:

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

Browser:

 shExpMatch(url, "Proxy?.Domäne") 

Sonstige Ressourcen

Weitere Informationen zum PAC-Dateiformat finden Sie unter: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .