Considere el siguiente archivo 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";
}
¿Hay alguna manera de transferir esas configuraciones a $http_proxy
variables $no_proxy
de entorno?
Respuesta1
no_proxy
podría establecerse en algo así, no_proxy="intranet.domain.com,*.local,..."
pero de lo contrario las variables de entorno son cadenas por proceso, por lo que no hay forma[†] de a) expresar la lógica de lo que isInNet
sea ob) actualizar el entorno de los procesos existentes que tienen un conjunto de cadenas antiguo y ahora no válido. A menos que elimine todos sus procesos, establezca uno nuevo http_proxy
en función de lo que isInNet
haga, luego reinicie todos sus procesos para que cuando fork
reciban una nueva copia del nuevo http_proxy
del proceso principal.
Si todos los procesos están bajo su control, puede escribir una API para ajustar las variables de entorno. Esto fallará si alguna vez tiene fork
algo que no está bajo su control (porque entonces ese proceso puede tener pronto una cadena incorrecta configurada) y probablemente sea innecesariamente complicado en comparación con simplemente usar la lógica de negocios existente.
[†] bueno, existe gdb
o no un parche de memoria de mono, por lo que no es una manera fácil o no loca