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 .