A convenção PAC usada pelos principais navegadores da web, incluindo o mecanismo da Web, é usar uma sintaxe de expressão regular modificada. Até agora, o pacmanager usou expressões regulares comuns para a correspondência. Estamos alterando a função shExpMatch para usar uma correspondência semelhante aos navegadores.
Essa alteração significa que o RoomOS funcionará com o mesmo arquivo PAC que outros clientes da web na rede. Os arquivos PAC escritos especificamente para o RoomOS podem precisar ser atualizados para continuar funcionando conforme o esperado.
A avaliação do arquivo PAC é feita em dois locais separados no software RoomOS:
-
Motor da Web para seu próprio tráfego.
-
Pacmanager para todo o outro tráfego HTTP: HttpFeedback, provisionamento Webex, sinalização de chamadas e assim por diante.
Um arquivo PAC pode fazer uso desta função: shExpMatch (string, padrão)
Ele retorna verdadeiro se a string corresponder ao padrão, falso caso contrário.
As principais diferenças entre as duas convenções estão listadas abaixo, com "REGEX" que significa expressões regulares tradicionais e "NAVEGADOR" que significa a convenção do navegador da web.
O sinal de ponto, "."
-
REGEX: . corresponde a um único caractere, que pode ser repetido com um quantificador
-
NAVEGADOR: . apenas corresponde a um caractere de ponto literal
A estrela, "*":
-
REGEX: * é um quantificador zero ou mais após um item, mas não corresponde a nada por conta própria
-
NAVEGADOR: * corresponde a zero ou mais caracteres
O ponto de interrogação "?":
-
REGEX: ? é um quantificador zero ou um após um item, ou pode modificar o quantificador * para não ser ganancioso, mas não corresponde a nada por conta própria
-
BROWSER: corresponde a um único caractere
Se a expressão inteira deve corresponder:
-
REGEX: Sem o uso de lead ^ e trailing $, o PADRÃO não precisa corresponder a toda a STRING: Basta que a STRING contenha uma substring que corresponda.
-
NAVEGADOR: Sempre exigir que a STRING seja igualada exatamente pelo PADRÃO
Exemplos
Queremos combinar todos os nomes de organizadores em "provider.domain", mas não "otherprovider.domain", "provider.domain.tld" ou "providersdomain":
REGEX:
shExpMatch(url, "^.*\\.provider\\.domain$")
NAVEGADOR:
shExpMatch (url, "*.provider.domain")
Queremos combinar "proxy1.domain", "proxy2.domain" e assim por diante, mas não "proxytest.domain":
REGEX:
shExpMatch(url, "^proxy.\\.domain$")
NAVEGADOR:
shExpMatch(url, "proxy?.domain")
Outros recursos
Para obter mais detalhes sobre o formato de arquivo PAC, consulte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .