aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Zack Lalanne <zack.lalanne@gmail.com>2018-02-01 09:23:13 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-01 09:25:16 -0800
commit34af6459d873dc066c5d90d9f8755a24eeec1827 (patch)
tree6544482e2c7e71a2ec5acc30cd1195e8e92112db /src/main/java/com/google/devtools
parenta7831cc0aa606a312bd4f6f8a7e3a4c83f6dcbd4 (diff)
Add NO_PROXY environment variable support to downloader
Check the no_proxy and NO_PROXY environment variables for a list of URLs that should not use a proxy. If the requested URL matches the no_proxy list, don't proxy the download. Fixes #4299 Closes #4307. PiperOrigin-RevId: 184149118
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/ProxyHelper.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/ProxyHelper.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/ProxyHelper.java
index 1ae265b89c..c757deeccc 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/ProxyHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/ProxyHelper.java
@@ -51,6 +51,28 @@ public class ProxyHelper {
*/
public Proxy createProxyIfNeeded(URL requestedUrl) throws IOException {
String proxyAddress = null;
+ String noProxyUrl = env.get("no_proxy");
+ if (Strings.isNullOrEmpty(noProxyUrl)) {
+ noProxyUrl = env.get("NO_PROXY");
+ }
+ if (!Strings.isNullOrEmpty(noProxyUrl)) {
+ String[] noProxyUrlArray = noProxyUrl.split(",");
+ String requestedHost = requestedUrl.getHost();
+ for (int i = 0; i < noProxyUrlArray.length; i++) {
+ if (noProxyUrlArray[i].startsWith(".")) {
+ // This entry applies to sub-domains only.
+ if (requestedHost.endsWith(noProxyUrlArray[i])) {
+ return Proxy.NO_PROXY;
+ }
+ } else {
+ // This entry applies to the literal hostname and sub-domains.
+ if (requestedHost.equals(noProxyUrlArray[i])
+ || requestedHost.endsWith("." + noProxyUrlArray[i])) {
+ return Proxy.NO_PROXY;
+ }
+ }
+ }
+ }
if (HttpUtils.isProtocol(requestedUrl, "https")) {
proxyAddress = env.get("https_proxy");
if (Strings.isNullOrEmpty(proxyAddress)) {