History log of /external/apache-http/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2e9f166eba309e50c1c1f52ff8d2694f058ab2cf 18-Apr-2010 Brian Carlstrom <bdc@google.com> b/2599994 Should call prepareSocket on underlying socket, not layered socket

DefaultClientConnectionOperator.openConnection was recently changed to
use LayeredSocketFactory.createSocket(Socket, ...) to create an
SSLSocket around a plain java.net.Socket. However, this means code in
LayeredSocketFactory.createSocket(Socket, ...) is called before socket
options such as timeout are set by
DefaultClientConnectionOperator.prepareSocket. However, the default
org.apache.http.conn.ssl.SSLSocketFactory.createSocket(Socket, ...)
performes the SSL handshake to perform hostname verification, meaning
the handshake is performed without timeouts set.

This change to DefaultClientConnectionOperator.openConnection moves
the call prepareSocket to be on the underlying java.net.Socket before
it is has the SSLSocket layered on top of it to prevent hangs during
SSL handshakes.

Change-Id: If705cc1acfe524281ec1338f73eccf7c0f4d1227
/external/apache-http/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
6c446082cd6a8b9ff2b94870f5022f5dfdc11693 18-Feb-2010 Steinar H. Gunderson <sesse@google.com> Implement proper multihoming support, second attempt.

This patch makes our HTTP client multihoming-aware, so if one server fails for
whatever reason (including timeout), we'll fall back to the next. It's a bit
more complex than the first attempt, but we're hopefully not breaking SSL
connection (incl. checkin) anymore.

Also includes one patch from upstream, in that timeouts are converted from
Java's exception hierarchy to our own exceptions.

Here's an example tcpdump from a fake checkin server with both AAAA and A records,
where the IPv6 connectivity is deliberately broken to demonstrate the effects of
this patch:

11:49:28.202620 IP6 2620:0:105f:a:223:76ff:fe8d:3a3c.37109 > 2001:700:300:1880::2.80: S 24035192:24035192(0) win 5760 <mss 1440,sackOK,timestamp 1110775 0,[|tcp]>
11:49:31.211370 IP6 2620:0:105f:a:223:76ff:fe8d:3a3c.37109 > 2001:700:300:1880::2.80: S 24035192:24035192(0) win 5760 <mss 1440,sackOK,timestamp 1111075 0,[|tcp]>
11:49:37.211186 IP6 2620:0:105f:a:223:76ff:fe8d:3a3c.37109 > 2001:700:300:1880::2.80: S 24035192:24035192(0) win 5760 <mss 1440,sackOK,timestamp 1111675 0,[|tcp]>
11:49:48.216299 IP 74.125.57.33.58205 > 129.241.93.35.80: S 2632654863:2632654863(0) win 5840 <mss 1372,sackOK,timestamp 1112775 0,nop,wscale 1>
11:49:48.216324 IP 129.241.93.35.80 > 74.125.57.33.58205: S 3149921981:3149921981(0) ack 2632654864 win 5792 <mss 1460,sackOK,timestamp 62633484 1112775,nop,wscale 8>
(...)

and then the HTTP connection proceeds as usual.

I intend to push this fix upstream once we get it reviewed and committed locally.
/external/apache-http/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
07b7bb333f41e90af0a72a462fed847378641d21 26-Feb-2010 Kenny Root <kroot@google.com> Revert "Implement proper multihoming support, so if one server fails for whatever reason"

This reverts commit ceab342827538782a715a10e5030a222700895ce.
/external/apache-http/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
ceab342827538782a715a10e5030a222700895ce 18-Feb-2010 Steinar H. Gunderson <sesse@google.com> Implement proper multihoming support, so if one server fails for whatever reason
(including timeout), we'll fall back to the next.

Also includes one patch from upstream, in that timeouts are converted from
Java's exception hierarchy to our own exceptions.

Here's an example tcpdump from a fake checkin server with both AAAA and A records,
where the IPv6 connectivity is deliberately broken to demonstrate the effects of
this patch:

11:49:28.202620 IP6 2620:0:105f:a:223:76ff:fe8d:3a3c.37109 > 2001:700:300:1880::2.80: S 24035192:24035192(0) win 5760 <mss 1440,sackOK,timestamp 1110775 0,[|tcp]>
11:49:31.211370 IP6 2620:0:105f:a:223:76ff:fe8d:3a3c.37109 > 2001:700:300:1880::2.80: S 24035192:24035192(0) win 5760 <mss 1440,sackOK,timestamp 1111075 0,[|tcp]>
11:49:37.211186 IP6 2620:0:105f:a:223:76ff:fe8d:3a3c.37109 > 2001:700:300:1880::2.80: S 24035192:24035192(0) win 5760 <mss 1440,sackOK,timestamp 1111675 0,[|tcp]>
11:49:48.216299 IP 74.125.57.33.58205 > 129.241.93.35.80: S 2632654863:2632654863(0) win 5840 <mss 1372,sackOK,timestamp 1112775 0,nop,wscale 1>
11:49:48.216324 IP 129.241.93.35.80 > 74.125.57.33.58205: S 3149921981:3149921981(0) ack 2632654864 win 5792 <mss 1460,sackOK,timestamp 62633484 1112775,nop,wscale 8>
(...)

and then the HTTP connection proceeds as usual.

I intend to push this fix upstream once we get it reviewed and committed locally.
/external/apache-http/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
069490a5ca2fd1988d29daf45d892f47ad665115 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/external/apache-http/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
e5d9544310b857f3ee9ec172bdbff8077323f9a1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/external/apache-http/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
417f3b92ba4549b2f22340e3107d869d2b9c5bb8 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/external/apache-http/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java