You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2007/02/05 07:58:31 UTC
svn commit: r503570 - in
/harmony/enhanced/classlib/trunk/modules/luni/src/main/java:
java/net/Socket.java
org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
Author: mloenko
Date: Sun Feb 4 22:58:31 2007
New Revision: 503570
URL: http://svn.apache.org/viewvc?view=rev&rev=503570
Log:
fixed HARMONY-3113
[classlib][luni] can't http connect thru a proxy
(no regression test since the bug is confihuratrion-dependent)
Modified:
harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java
harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java?view=diff&rev=503570&r1=503569&r2=503570
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/Socket.java Sun Feb 4 22:58:31 2007
@@ -912,7 +912,7 @@
InetSocketAddress inetAddr = (InetSocketAddress) remoteAddr;
InetAddress addr;
if ((addr = inetAddr.getAddress()) == null) {
- throw new UnknownHostException(Msg.getString("K0317"));//$NON-NLS-1$
+ throw new UnknownHostException(Msg.getString("K0317", remoteAddr));//$NON-NLS-1$
}
int port = inetAddr.getPort();
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java?view=diff&rev=503570&r1=503569&r2=503570
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnection.java Sun Feb 4 22:58:31 2007
@@ -34,6 +34,7 @@
import java.net.ProxySelector;
import java.net.ResponseCache;
import java.net.Socket;
+import java.net.SocketAddress;
import java.net.SocketPermission;
import java.net.URI;
import java.net.URISyntaxException;
@@ -635,7 +636,23 @@
getConnectTimeout());
} else if (proxy.type() == Proxy.Type.HTTP) {
socket = new Socket();
- socket.connect(proxy.address(), getConnectTimeout());
+
+ SocketAddress proxyAddr = proxy.address();
+
+ if (!(proxyAddr instanceof InetSocketAddress)) {
+ throw new IllegalArgumentException(Msg.getString(
+ "K0316", proxyAddr.getClass())); //$NON-NLS-1$
+ }
+
+ InetSocketAddress iProxyAddr = (InetSocketAddress) proxyAddr;
+
+ if( iProxyAddr.getAddress() == null ) {
+ // Resolve proxy, see HARMONY-3113
+ socket.connect(new InetSocketAddress((iProxyAddr.getHostName()),
+ iProxyAddr.getPort()), getConnectTimeout());
+ } else {
+ socket.connect(iProxyAddr, getConnectTimeout());
+ }
} else {
// using SOCKS proxy
socket = new Socket(proxy);