Skip to contentSkip to conversation

Allow http_proxy values without protocol-part

PATCH In review Christian Halstrick 2 participants 2 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Allow http_proxy values without protocol-part

From: Christian Halstrick <[email protected]>

jgit reads the environment variable http_proxy to configure the proxy for http traffic in the same way as applications using the libcurl library. It would be nice if jgit would understand the same values as libcurl, but for libcurl the protocol part is optional (e.g. http_proxy=proxy:8080 is valid). I changed jgit to also support http_proxy values without a protocol spec. When no protocol is specified "http://" is assumed.

---
 .../src/org/spearce/jgit/util/HttpSupport.java     |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
org.spearce.jgit/src/org/spearce/jgit/util/HttpSupport.java +1 -1
index 33dfcee..5f21677 100644
@@ -69,7 +69,7 @@ public static void configureHttpProxy() throws MalformedURLException {
 		if (s == null || s.equals(""))
 			return;
 
-		final URL u = new URL(s);
+		final URL u = new URL((s.indexOf("://")==-1) ? "http://"+s : s);
 		if (!"http".equals(u.getProtocol()))
 			throw new MalformedURLException("Invalid http_proxy: " + s
 					+ ": Only http supported.");
Signature · 1 line
1.6.3.2.1299.gee46c
#1 lore raw

Sorry I didn't respond earlier this week, I was more or less offline for basically 2.5 days.

Quoted 7 lines · Christian Halstrick

jgit reads the environment variable http_proxy to configure the proxy for http traffic in the same way as applications using the libcurl library. It would be nice if jgit would understand the same values as libcurl, but for libcurl the protocol part is optional (e.g. http_proxy=proxy:8080 is valid). I changed jgit to also support http_proxy values without a protocol spec. When no protocol is specified "http://" is assumed.

This didn't really fit with our style of commit messages. Instead of saying what you did, we prefer to say *why* you did it. The what is clear from the diff. The why is usually less clear.

I replaced the message with the following:

--8<--
Allow http_proxy values without protocol-part

jgit reads the environment variable http_proxy to configure the JRE's URL library for HTTP traffic through the proxy in the same way as other applications that are using the libcurl library. libcurl assumes "http://" when the protocol is not specified in http_proxy, so jgit should do the same.

Thus http_proxy=proxy:8080 is now valid.

-->8--

org.spearce.jgit/src/org/spearce/jgit/util/HttpSupport.java public static void configureHttpProxy() throws MalformedURLException { · line 72

Quoted 10 lines
org.spearce.jgit/src/org/spearce/jgit/util/HttpSupport.java +1 -1
index 33dfcee..5f21677 100644
@@ -69,7 +69,7 @@ public static void configureHttpProxy() throws MalformedURLException {
 		if (s == null || s.equals(""))
 			return;
 
-		final URL u = new URL(s);
+		final URL u = new URL((s.indexOf("://")==-1) ? "http://"+s : s);

Also, our formatting rules tend to place spaces around operators, so this line was reformatted slightly to honor that convention. If you are using Eclipse, the projects should be configured automatically with our preferred code formatting rules, though Eclipse often gets Javadoc blocks wrong and adds a trailing space on the end of a blank line.

But, patches applied clean, so your techique of sending works. Thanks.

Signature · 1 line
Shawn.