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());
}
|