From: Dave B. <bla...@us...> - 2011-11-29 14:30:14
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/http In directory vz-cvs-3.sog:/tmp/cvs-serv16095/src/org/sblim/cimclient/internal/http Modified Files: Tag: Experimental HttpClient.java Log Message: 3444912 - Client delay during SSL handshake Index: HttpClient.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/http/HttpClient.java,v retrieving revision 1.12.2.26 retrieving revision 1.12.2.27 diff -u -d -r1.12.2.26 -r1.12.2.27 --- HttpClient.java 8 Sep 2011 12:26:08 -0000 1.12.2.26 +++ HttpClient.java 29 Nov 2011 14:30:11 -0000 1.12.2.27 @@ -60,6 +60,7 @@ * 3235440 2011-03-22 blaschke-oss NullPointerException when socket factory returns null * 3323310 2011-06-20 blaschke-oss Need the ability to override certain Global Properties * 3400209 2011-08-31 blaschke-oss Highlighted Static Analysis (PMD) issues + * 3444912 2011-11-29 blaschke-oss Client delay during SSL handshake */ package org.sblim.cimclient.internal.http; @@ -90,6 +91,7 @@ import javax.net.ssl.HandshakeCompletedListener; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; import org.sblim.cimclient.internal.http.HttpHeader.HeaderEntry; import org.sblim.cimclient.internal.http.io.ASCIIPrintStream; @@ -992,9 +994,18 @@ } logger.trace(Level.FINER, "Creating new http for url " + this.iUrl.toString()); if (socketConnectWithTimeout) { - this.iSocket = factory.createSocket(); - if (this.iSocket != null) this.iSocket.connect(new InetSocketAddress(this.iUrl - .getHost(), this.iUrl.getPort()), timeout); + if (factory instanceof SSLSocketFactory) { + Socket sock = new Socket(); + sock.connect(new InetSocketAddress(this.iUrl.getHost(), this.iUrl.getPort()), + timeout); + this.iSocket = ((SSLSocketFactory) factory).createSocket(sock, this.iUrl + .getHost(), this.iUrl.getPort(), true); + + } else { + this.iSocket = factory.createSocket(); + if (this.iSocket != null) this.iSocket.connect(new InetSocketAddress(this.iUrl + .getHost(), this.iUrl.getPort()), timeout); + } } else { this.iSocket = factory.createSocket(this.iUrl.getHost(), this.iUrl.getPort()); } |