summaryrefslogtreecommitdiffstats
path: root/src/org/apache/http/impl/conn/DefaultClientConnectionOperator.java
Commit message (Collapse)AuthorAgeFilesLines
* Try the next address after any type of connection failure.Jesse Wilson2011-09-121-3/+9
| | | | | | | | | Previously we'd fail IPv4 if IPv6 failed with a EHOSTUNREACH error (which may be thrown as a SocketException or as a NoRouteToHostException, depending on the platform). Bug: http://b/5293809 Change-Id: Idca2e9bd561a23cff88b1399d45db65b96980148
* Fixed problem using HTTPS with Apache HTTP Client when using proxyAndreas Sandblad2010-07-131-1/+1
| | | | | | | | | Problem described at: http://code.google.com/p/android/issues/detail?id=2690 The fix is to set default port for scheme to avoid passing -1 as port, which would cause an IllegalArgumentException. Change-Id: Ib1324618cdb6e3aa629dea2a2de1856136223aaf
* b/2599994 Should call prepareSocket on underlying socket, not layered socketBrian Carlstrom2010-04-181-2/+12
| | | | | | | | | | | | | | | | | | | 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
* Implement proper multihoming support, second attempt.Steinar H. Gunderson2010-03-051-9/+47
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Revert "Implement proper multihoming support, so if one server fails for ↵Kenny Root2010-02-261-27/+13
| | | | | | whatever reason" This reverts commit ceab342827538782a715a10e5030a222700895ce.
* Implement proper multihoming support, so if one server fails for whatever reasonSteinar H. Gunderson2010-02-261-13/+27
| | | | | | | | | | | | | | | | | | | | | | (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.
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+216
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-216/+0
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+216