Posso definir manualmente vários proxies no ambiente?

0

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 para $http_proxy e $no_proxy de variáveis de ambiente?

    
por cprn 27.11.2017 / 19:59

1 resposta

1

no_proxy poderia ser definido como algo como no_proxy="intranet.domain.com,*.local,..." mas caso contrário, as variáveis de ambiente são sequências por processo, portanto não há maneira de [†] expressar a lógica de qualquerisInNet ou b) atualizar o ambiente de processos existentes que possuem algum conjunto de strings antigo e agora inválido. A menos que você mate todos os seus processos, defina um novo http_proxy com base em qualquer isInNet e reinicie todos os seus processos para que, quando fork , eles recebam uma nova cópia do novo http_proxy do processo pai. p>

Se todos os processos estiverem sob seu controle, você poderá escrever uma API para ajustar variáveis de ambiente. Isso falhará se você fork nunca estiver sob o seu controle (porque, então, esse processo pode ter algumas sequências incorretas) e provavelmente será desnecessariamente complicado em comparação com o uso da lógica de negócios existente.

[†] bem, há gdb ou qualquer outro tipo de memória de macacos, então não há maneira fácil ou não insana

    
por 27.11.2017 / 20:11