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?
no_proxy
poderia ser definido para algo comono_proxy="intranet.domain.com,*.local,..."
, mas caso contrário, as variáveis de ambiente são strings por processo, portanto não há como[†] para a) expressar a lógica de tudo o queisInNet
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 novohttp_proxy
com base no que querisInNet
que seja e, em seguida, reinicie todos os seus processos quandofork
eles receberem uma nova cópia do novohttp_proxy
do processo pai.Se todos os processos estiverem sob seu controle, você poderá escrever uma API para ajustar as variáveis de ambiente. Isso falhará se você alguma vez
fork
algo não estiver sob seu controle (porque então esse processo pode ter alguma string errada definida nele) e provavelmente é desnecessariamente complicado em comparação com apenas usar a lógica de negócios existente.[†] bem, existe
gdb
ou não memória de correção de macaco, então não é fácil ou não é uma maneira insana