Considere o seguinte arquivo PAC:
function FindProxyForURL(url, host) {
if (dnsDomainIs(host, "intranet.domain.com"))
return "DIRECT";
if (isInNet(myIpAddress(), "10.10.5.0", "255.255.255.0"))
return "PROXY 1.2.3.4:8080";
return "PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080";
}
Existe uma maneira de transferir essas configurações $http_proxy
e $no_proxy
variáveis de ambiente?
Responder1
no_proxy
poderia ser definido como algo parecido no_proxy="intranet.domain.com,*.local,..."
, mas caso contrário, as variáveis de ambiente são strings por processo, então não há como [†] a) expressar a lógica de tudo o isInNet
que faz ou b) atualizar o ambiente de processos existentes que possuem algumas strings antigas e agora inválidas definidas. A menos que você elimine todos os seus processos, defina um novo http_proxy
com base no que quer isInNet
que faça e reinicie todos os seus processos para que quando eles fork
recebam uma nova cópia do novo http_proxy
do processo pai.
Se todos os processos estiverem sob seu controle, você poderá escrever uma API para ajustar variáveis de ambiente. Isso falhará se você tiver fork
algo que não esteja sob seu controle (porque esse processo poderá ter alguma sequência errada definida) e provavelmente será desnecessariamente complicado em comparação com apenas o uso da lógica de negócios existente.
[†] bem, existe gdb
ou não um macaco corrigindo a memória, então não é uma maneira fácil ou insana