You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2013/04/30 12:45:19 UTC

svn commit: r1477547 - in /httpcomponents/httpcore/trunk: httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java

Author: olegk
Date: Tue Apr 30 10:45:18 2013
New Revision: 1477547

URL: http://svn.apache.org/r1477547
Log:
Basic connection pool implementations to perform default port resolution for HTTP and HTTPS schemes

Modified:
    httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java?rev=1477547&r1=1477546&r2=1477547&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/pool/BasicNIOConnPool.java Tue Apr 30 10:45:18 2013
@@ -71,7 +71,16 @@ public class BasicNIOConnPool extends Ab
         }
 
         public SocketAddress resolveRemoteAddress(final HttpHost host) {
-            return new InetSocketAddress(host.getHostName(), host.getPort());
+            final String hostname = host.getHostName();
+            int port = host.getPort();
+            if (port == -1) {
+                if (host.getSchemeName().equalsIgnoreCase("http")) {
+                    port = 80;
+                } else if (host.getSchemeName().equalsIgnoreCase("https")) {
+                    port = 443;
+                }
+            }
+            return new InetSocketAddress(hostname, port);
         }
 
     }

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java?rev=1477547&r1=1477546&r2=1477547&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/pool/BasicConnFactory.java Tue Apr 30 10:45:18 2013
@@ -149,8 +149,18 @@ public class BasicConnFactory implements
         if (socket == null) {
             throw new IOException(scheme + " scheme is not supported");
         }
+        final String hostname = host.getHostName();
+        int port = host.getPort();
+        if (port == -1) {
+            if (host.getSchemeName().equalsIgnoreCase("http")) {
+                port = 80;
+            } else if (host.getSchemeName().equalsIgnoreCase("https")) {
+                port = 443;
+            }
+        }
+
         socket.setSoTimeout(this.sconfig.getSoTimeout());
-        socket.connect(new InetSocketAddress(host.getHostName(), host.getPort()), this.connectTimeout);
+        socket.connect(new InetSocketAddress(hostname, port), this.connectTimeout);
         socket.setTcpNoDelay(this.sconfig.isTcpNoDelay());
         final int linger = this.sconfig.getSoLinger();
         if (linger >= 0) {