Betrachten Sie die folgende PAC-Datei:
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";
}
Gibt es eine Möglichkeit, diese Einstellungen in Umgebungsvariablen zu $http_proxy
übertragen $no_proxy
?
Antwort1
no_proxy
könnte auf etwas wie gesetzt werden no_proxy="intranet.domain.com,*.local,..."
, aber ansonsten sind Umgebungsvariablen prozessbezogene Zeichenfolgen, sodass es keine Möglichkeit[†] gibt, a) die Logik dessen auszudrücken, was auch immer isInNet
geschieht, oder b) die Umgebung bestehender Prozesse zu aktualisieren, die einige alte und jetzt ungültige Zeichenfolgensätze haben. Sofern Sie nicht alle Ihre Prozesse beenden, einen neuen http_proxy
basierend auf dem, was auch immer isInNet
geschieht, festlegen und dann alle Ihre Prozesse neu starten, sodass sie beim fork
Ausführen eine neue Kopie des neuen http_proxy
vom übergeordneten Prozess erhalten.
Wenn Sie alle Prozesse unter Kontrolle haben, können Sie eine API zum Anpassen von Umgebungsvariablen schreiben. Dies schlägt fehl, wenn Sie fork
etwas tun, das nicht unter Ihrer Kontrolle ist (weil in diesem Prozess dann möglicherweise eine falsche Zeichenfolge festgelegt ist) und ist wahrscheinlich unnötig kompliziert im Vergleich zur Verwendung der vorhandenen Geschäftslogik.
[†] Nun, es gibt gdb
oder sonst Monkey Patching Speicher so keine einfache oder nicht verrückte Art und Weise