summaryrefslogtreecommitdiffstats
path: root/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2019-04-23 15:32:23 -0400
committerMatt A. Tobin <email@mattatobin.com>2019-04-23 15:32:23 -0400
commitabe80cc31d5a40ebed743085011fbcda0c1a9a10 (patch)
treefb3762f06b84745b182af281abb107b95a9fcf01 /mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn
parent63295d0087eb58a6eb34cad324c4c53d1b220491 (diff)
downloadUXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.tar
UXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.tar.gz
UXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.tar.lz
UXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.tar.xz
UXP-abe80cc31d5a40ebed743085011fbcda0c1a9a10.zip
Issue #1053 - Drop support Android and remove Fennec - Part 1a: Remove mobile/android
Diffstat (limited to 'mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn')
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/BasicEofSensorWatcher.java105
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/BasicManagedEntity.java208
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionManager.java117
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionManagerFactory.java47
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionOperator.java107
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionRequest.java74
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectTimeoutException.java94
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionKeepAliveStrategy.java66
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionPoolTimeoutException.java60
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionReleaseTrigger.java70
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionRequest.java69
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/DnsResolver.java54
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/EofSensorInputStream.java289
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/EofSensorWatcher.java95
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpClientConnectionManager.java176
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpConnectionFactory.java41
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpHostConnectException.java82
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpInetSocketAddress.java65
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpRoutedConnection.java81
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ManagedClientConnection.java228
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ManagedHttpClientConnection.java80
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/MultihomePlainSocketFactory.java173
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/OperatedClientConnection.java155
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/SchemePortResolver.java43
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/UnsupportedSchemeException.java51
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/package-info.java31
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnConnectionPNames.java64
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnConnectionParamBean.java59
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerPNames.java67
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerParamBean.java63
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerParams.java147
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnPerRoute.java46
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnPerRouteBean.java112
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRoutePNames.java79
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRouteParamBean.java70
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRouteParams.java178
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/package-info.java32
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/BasicRouteDirector.java181
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRoute.java328
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRouteDirector.java74
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRoutePlanner.java67
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/RouteInfo.java161
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/RouteTracker.java366
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/package-info.java31
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/HostNameResolver.java52
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSchemeSocketFactory.java68
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactory.java69
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactoryAdaptor.java53
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/PlainSocketFactory.java160
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/Scheme.java260
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactory.java69
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor.java57
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor2.java74
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeRegistry.java168
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactory.java130
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactoryAdaptor.java100
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SocketFactory.java127
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SocketFactoryAdaptor.java97
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/package-info.java32
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/ConnectionSocketFactory.java80
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/LayeredConnectionSocketFactory.java63
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/PlainConnectionSocketFactory.java83
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/package-info.java31
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/AbstractVerifier.java386
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/AllowAllHostnameVerifier.java54
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/BrowserCompatHostnameVerifier.java67
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/DistinguishedNameParser.java131
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyDetails.java63
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyStrategy.java44
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLConnectionSocketFactory.java295
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLContextBuilder.java259
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLContexts.java90
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLInitializationException.java37
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLSocketFactory.java570
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/StrictHostnameVerifier.java69
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TokenParser.java266
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustSelfSignedStrategy.java45
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustStrategy.java57
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/X509HostnameVerifier.java85
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/package-info.java31
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/InetAddressUtils.java123
-rw-r--r--mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/package-info.java31
82 files changed, 0 insertions, 9262 deletions
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/BasicEofSensorWatcher.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/BasicEofSensorWatcher.java
deleted file mode 100644
index 0273224ad..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/BasicEofSensorWatcher.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Basic implementation of {@link EofSensorWatcher}. The underlying connection
- * is released on close or EOF.
- *
- * @since 4.0
- *
- * @deprecated (4.3) do not use.
- */
-@Deprecated
-@NotThreadSafe
-public class BasicEofSensorWatcher implements EofSensorWatcher {
-
- /** The connection to auto-release. */
- protected final ManagedClientConnection managedConn;
-
- /** Whether to keep the connection alive. */
- protected final boolean attemptReuse;
-
- /**
- * Creates a new watcher for auto-releasing a connection.
- *
- * @param conn the connection to auto-release
- * @param reuse whether the connection should be re-used
- */
- public BasicEofSensorWatcher(final ManagedClientConnection conn,
- final boolean reuse) {
- Args.notNull(conn, "Connection");
- managedConn = conn;
- attemptReuse = reuse;
- }
-
- public boolean eofDetected(final InputStream wrapped)
- throws IOException {
-
- try {
- if (attemptReuse) {
- // there may be some cleanup required, such as
- // reading trailers after the response body:
- wrapped.close();
- managedConn.markReusable();
- }
- } finally {
- managedConn.releaseConnection();
- }
- return false;
- }
-
- public boolean streamClosed(final InputStream wrapped)
- throws IOException {
-
- try {
- if (attemptReuse) {
- // this assumes that closing the stream will
- // consume the remainder of the response body:
- wrapped.close();
- managedConn.markReusable();
- }
- } finally {
- managedConn.releaseConnection();
- }
- return false;
- }
-
- public boolean streamAbort(final InputStream wrapped)
- throws IOException {
-
- managedConn.abortConnection();
- return false;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/BasicManagedEntity.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/BasicManagedEntity.java
deleted file mode 100644
index 59556b5e9..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/BasicManagedEntity.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.SocketException;
-
-import ch.boye.httpclientandroidlib.HttpEntity;
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-import ch.boye.httpclientandroidlib.entity.HttpEntityWrapper;
-import ch.boye.httpclientandroidlib.util.Args;
-import ch.boye.httpclientandroidlib.util.EntityUtils;
-
-/**
- * An entity that releases a {@link ManagedClientConnection connection}.
- * A {@link ManagedClientConnection} will
- * typically <i>not</i> return a managed entity, but you can replace
- * the unmanaged entity in the response with a managed one.
- *
- * @since 4.0
- *
- * @deprecated (4.3) do not use.
- */
-@Deprecated
-@NotThreadSafe
-public class BasicManagedEntity extends HttpEntityWrapper
- implements ConnectionReleaseTrigger, EofSensorWatcher {
-
- /** The connection to release. */
- protected ManagedClientConnection managedConn;
-
- /** Whether to keep the connection alive. */
- protected final boolean attemptReuse;
-
- /**
- * Creates a new managed entity that can release a connection.
- *
- * @param entity the entity of which to wrap the content.
- * Note that the argument entity can no longer be used
- * afterwards, since the content will be taken by this
- * managed entity.
- * @param conn the connection to release
- * @param reuse whether the connection should be re-used
- */
- public BasicManagedEntity(final HttpEntity entity,
- final ManagedClientConnection conn,
- final boolean reuse) {
- super(entity);
- Args.notNull(conn, "Connection");
- this.managedConn = conn;
- this.attemptReuse = reuse;
- }
-
- @Override
- public boolean isRepeatable() {
- return false;
- }
-
- @Override
- public InputStream getContent() throws IOException {
- return new EofSensorInputStream(wrappedEntity.getContent(), this);
- }
-
- private void ensureConsumed() throws IOException {
- if (managedConn == null) {
- return;
- }
-
- try {
- if (attemptReuse) {
- // this will not trigger a callback from EofSensorInputStream
- EntityUtils.consume(wrappedEntity);
- managedConn.markReusable();
- } else {
- managedConn.unmarkReusable();
- }
- } finally {
- releaseManagedConnection();
- }
- }
-
- /**
- * @deprecated (4.1) Use {@link EntityUtils#consume(HttpEntity)}
- */
- @Deprecated
- @Override
- public void consumeContent() throws IOException {
- ensureConsumed();
- }
-
- @Override
- public void writeTo(final OutputStream outstream) throws IOException {
- super.writeTo(outstream);
- ensureConsumed();
- }
-
- public void releaseConnection() throws IOException {
- ensureConsumed();
- }
-
- public void abortConnection() throws IOException {
-
- if (managedConn != null) {
- try {
- managedConn.abortConnection();
- } finally {
- managedConn = null;
- }
- }
- }
-
- public boolean eofDetected(final InputStream wrapped) throws IOException {
- try {
- if (managedConn != null) {
- if (attemptReuse) {
- // there may be some cleanup required, such as
- // reading trailers after the response body:
- wrapped.close();
- managedConn.markReusable();
- } else {
- managedConn.unmarkReusable();
- }
- }
- } finally {
- releaseManagedConnection();
- }
- return false;
- }
-
- public boolean streamClosed(final InputStream wrapped) throws IOException {
- try {
- if (managedConn != null) {
- if (attemptReuse) {
- final boolean valid = managedConn.isOpen();
- // this assumes that closing the stream will
- // consume the remainder of the response body:
- try {
- wrapped.close();
- managedConn.markReusable();
- } catch (final SocketException ex) {
- if (valid) {
- throw ex;
- }
- }
- } else {
- managedConn.unmarkReusable();
- }
- }
- } finally {
- releaseManagedConnection();
- }
- return false;
- }
-
- public boolean streamAbort(final InputStream wrapped) throws IOException {
- if (managedConn != null) {
- managedConn.abortConnection();
- }
- return false;
- }
-
- /**
- * Releases the connection gracefully.
- * The connection attribute will be nullified.
- * Subsequent invocations are no-ops.
- *
- * @throws IOException in case of an IO problem.
- * The connection attribute will be nullified anyway.
- */
- protected void releaseManagedConnection()
- throws IOException {
-
- if (managedConn != null) {
- try {
- managedConn.releaseConnection();
- } finally {
- managedConn = null;
- }
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionManager.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionManager.java
deleted file mode 100644
index dcdbb4ce5..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionManager.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.util.concurrent.TimeUnit;
-
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-import ch.boye.httpclientandroidlib.conn.scheme.SchemeRegistry;
-
-/**
- * Management interface for {@link ManagedClientConnection client connections}.
- * The purpose of an HTTP connection manager is to serve as a factory for new
- * HTTP connections, manage persistent connections and synchronize access to
- * persistent connections making sure that only one thread of execution can
- * have access to a connection at a time.
- * <p>
- * Implementations of this interface must be thread-safe. Access to shared
- * data must be synchronized as methods of this interface may be executed
- * from multiple threads.
- *
- * @since 4.0
- *
- * @deprecated (4.3) replaced by {@link HttpClientConnectionManager}.
- */
-@Deprecated
-public interface ClientConnectionManager {
-
- /**
- * Obtains the scheme registry used by this manager.
- *
- * @return the scheme registry, never <code>null</code>
- */
- SchemeRegistry getSchemeRegistry();
-
- /**
- * Returns a new {@link ClientConnectionRequest}, from which a
- * {@link ManagedClientConnection} can be obtained or the request can be
- * aborted.
- */
- ClientConnectionRequest requestConnection(HttpRoute route, Object state);
-
- /**
- * Releases a connection for use by others.
- * You may optionally specify how long the connection is valid
- * to be reused. Values <= 0 are considered to be valid forever.
- * If the connection is not marked as reusable, the connection will
- * not be reused regardless of the valid duration.
- *
- * If the connection has been released before,
- * the call will be ignored.
- *
- * @param conn the connection to release
- * @param validDuration the duration of time this connection is valid for reuse
- * @param timeUnit the unit of time validDuration is measured in
- *
- * @see #closeExpiredConnections()
- */
- void releaseConnection(ManagedClientConnection conn, long validDuration, TimeUnit timeUnit);
-
- /**
- * Closes idle connections in the pool.
- * Open connections in the pool that have not been used for the
- * timespan given by the argument will be closed.
- * Currently allocated connections are not subject to this method.
- * Times will be checked with milliseconds precision
- *
- * All expired connections will also be closed.
- *
- * @param idletime the idle time of connections to be closed
- * @param tunit the unit for the <code>idletime</code>
- *
- * @see #closeExpiredConnections()
- */
- void closeIdleConnections(long idletime, TimeUnit tunit);
-
- /**
- * Closes all expired connections in the pool.
- * Open connections in the pool that have not been used for
- * the timespan defined when the connection was released will be closed.
- * Currently allocated connections are not subject to this method.
- * Times will be checked with milliseconds precision.
- */
- void closeExpiredConnections();
-
- /**
- * Shuts down this connection manager and releases allocated resources.
- * This includes closing all connections, whether they are currently
- * used or not.
- */
- void shutdown();
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionManagerFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionManagerFactory.java
deleted file mode 100644
index 895690e95..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionManagerFactory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import ch.boye.httpclientandroidlib.conn.scheme.SchemeRegistry;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * A factory for creating new {@link ClientConnectionManager} instances.
- *
- * @since 4.0
- *
- * @deprecated (4.3) replaced by {@link HttpClientConnectionManager}.
- */
-@Deprecated
-public interface ClientConnectionManagerFactory {
-
- ClientConnectionManager newInstance(
- HttpParams params,
- SchemeRegistry schemeRegistry);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionOperator.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionOperator.java
deleted file mode 100644
index 333975b2c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionOperator.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.net.InetAddress;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-
-/**
- * ClientConnectionOperator represents a strategy for creating
- * {@link OperatedClientConnection} instances and updating the underlying
- * {@link java.net.Socket} of those objects. Implementations will most
- * likely make use of {@link ch.boye.httpclientandroidlib.conn.scheme.SchemeSocketFactory}s
- * to create {@link java.net.Socket} instances.
- * <p>
- * The methods in this interface allow the creation of plain and layered
- * sockets. Creating a tunnelled connection through a proxy, however,
- * is not within the scope of the operator.
- * <p>
- * Implementations of this interface must be thread-safe. Access to shared
- * data must be synchronized as methods of this interface may be executed
- * from multiple threads.
- *
- * @since 4.0
- *
- * @deprecated (4.3) replaced by {@link HttpClientConnectionManager}.
- */
-@Deprecated
-public interface ClientConnectionOperator {
-
- /**
- * Creates a new connection that can be operated.
- *
- * @return a new, unopened connection for use with this operator
- */
- OperatedClientConnection createConnection();
-
- /**
- * Opens a connection to the given target host.
- *
- * @param conn the connection to open
- * @param target the target host to connect to
- * @param local the local address to route from, or
- * <code>null</code> for the default
- * @param context the context for the connection
- * @param params the parameters for the connection
- *
- * @throws IOException in case of a problem
- */
- void openConnection(OperatedClientConnection conn,
- HttpHost target,
- InetAddress local,
- HttpContext context,
- HttpParams params)
- throws IOException;
-
- /**
- * Updates a connection with a layered secure connection.
- * The typical use of this method is to update a tunnelled plain
- * connection (HTTP) to a secure TLS/SSL connection (HTTPS).
- *
- * @param conn the open connection to update
- * @param target the target host for the updated connection.
- * The connection must already be open or tunnelled
- * to the host and port, but the scheme of the target
- * will be used to create a layered connection.
- * @param context the context for the connection
- * @param params the parameters for the updated connection
- *
- * @throws IOException in case of a problem
- */
- void updateSecureConnection(OperatedClientConnection conn,
- HttpHost target,
- HttpContext context,
- HttpParams params)
- throws IOException;
-
-}
-
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionRequest.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionRequest.java
deleted file mode 100644
index 656284081..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ClientConnectionRequest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * Encapsulates a request for a {@link ManagedClientConnection}.
- *
- * @since 4.0
- *
- * @deprecated (4.3) replaced by {@link ConnectionRequest}.
- */
-@Deprecated
-public interface ClientConnectionRequest {
-
- /**
- * Obtains a connection within a given time.
- * This method will block until a connection becomes available,
- * the timeout expires, or the connection manager is
- * {@link ClientConnectionManager#shutdown() shut down}.
- * Timeouts are handled with millisecond precision.
- *
- * If {@link #abortRequest()} is called while this is blocking or
- * before this began, an {@link InterruptedException} will
- * be thrown.
- *
- * @param timeout the timeout, 0 or negative for no timeout
- * @param tunit the unit for the <code>timeout</code>,
- * may be <code>null</code> only if there is no timeout
- *
- * @return a connection that can be used to communicate
- * along the given route
- *
- * @throws ConnectionPoolTimeoutException
- * in case of a timeout
- * @throws InterruptedException
- * if the calling thread is interrupted while waiting
- */
- ManagedClientConnection getConnection(long timeout, TimeUnit tunit)
- throws InterruptedException, ConnectionPoolTimeoutException;
-
- /**
- * Aborts the call to {@link #getConnection(long, TimeUnit)},
- * causing it to throw an {@link InterruptedException}.
- */
- void abortRequest();
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectTimeoutException.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectTimeoutException.java
deleted file mode 100644
index f98bd1941..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectTimeoutException.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.net.InetAddress;
-import java.util.Arrays;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * A timeout while connecting to an HTTP server or waiting for an
- * available connection from an HttpConnectionManager.
- *
- *
- * @since 4.0
- */
-@Immutable
-public class ConnectTimeoutException extends InterruptedIOException {
-
- private static final long serialVersionUID = -4816682903149535989L;
-
- private final HttpHost host;
-
- /**
- * Creates a ConnectTimeoutException with a <tt>null</tt> detail message.
- */
- public ConnectTimeoutException() {
- super();
- this.host = null;
- }
-
- /**
- * Creates a ConnectTimeoutException with the specified detail message.
- */
- public ConnectTimeoutException(final String message) {
- super(message);
- this.host = null;
- }
-
- /**
- * Creates a ConnectTimeoutException based on original {@link IOException}.
- *
- * @since 4.3
- */
- public ConnectTimeoutException(
- final IOException cause,
- final HttpHost host,
- final InetAddress... remoteAddresses) {
- super("Connect to " +
- (host != null ? host.toHostString() : "remote host") +
- (remoteAddresses != null && remoteAddresses.length > 0 ?
- " " + Arrays.asList(remoteAddresses) : "") +
- ((cause != null && cause.getMessage() != null) ?
- " failed: " + cause.getMessage() : " timed out"));
- this.host = host;
- initCause(cause);
- }
-
- /**
- * @since 4.3
- */
- public HttpHost getHost() {
- return host;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionKeepAliveStrategy.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionKeepAliveStrategy.java
deleted file mode 100644
index 3f06e4873..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionKeepAliveStrategy.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import ch.boye.httpclientandroidlib.HttpResponse;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-
-/**
- * Interface for deciding how long a connection can remain
- * idle before being reused.
- * <p>
- * Implementations of this interface must be thread-safe. Access to shared
- * data must be synchronized as methods of this interface may be executed
- * from multiple threads.
- *
- * @since 4.0
- */
-public interface ConnectionKeepAliveStrategy {
-
- /**
- * Returns the duration of time which this connection can be safely kept
- * idle. If the connection is left idle for longer than this period of time,
- * it MUST not reused. A value of 0 or less may be returned to indicate that
- * there is no suitable suggestion.
- *
- * When coupled with a {@link ch.boye.httpclientandroidlib.ConnectionReuseStrategy}, if
- * {@link ch.boye.httpclientandroidlib.ConnectionReuseStrategy#keepAlive(
- * HttpResponse, HttpContext)} returns true, this allows you to control
- * how long the reuse will last. If keepAlive returns false, this should
- * have no meaningful impact
- *
- * @param response
- * The last response received over the connection.
- * @param context
- * the context in which the connection is being used.
- *
- * @return the duration in ms for which it is safe to keep the connection
- * idle, or <=0 if no suggested duration.
- */
- long getKeepAliveDuration(HttpResponse response, HttpContext context);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionPoolTimeoutException.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionPoolTimeoutException.java
deleted file mode 100644
index d4066b2a3..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionPoolTimeoutException.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * A timeout while waiting for an available connection
- * from a connection manager.
- *
- *
- * @since 4.0
- */
-@Immutable
-public class ConnectionPoolTimeoutException extends ConnectTimeoutException {
-
- private static final long serialVersionUID = -7898874842020245128L;
-
- /**
- * Creates a ConnectTimeoutException with a <tt>null</tt> detail message.
- */
- public ConnectionPoolTimeoutException() {
- super();
- }
-
- /**
- * Creates a ConnectTimeoutException with the specified detail message.
- *
- * @param message The exception detail message
- */
- public ConnectionPoolTimeoutException(final String message) {
- super(message);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionReleaseTrigger.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionReleaseTrigger.java
deleted file mode 100644
index 97269268b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionReleaseTrigger.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-
-/**
- * Interface for releasing a connection. This can be implemented by various
- * "trigger" objects which are associated with a connection, for example
- * a {@link EofSensorInputStream stream} or an {@link BasicManagedEntity entity}
- * or the {@link ManagedClientConnection connection} itself.
- * <p>
- * The methods in this interface can safely be called multiple times.
- * The first invocation releases the connection, subsequent calls
- * are ignored.
- *
- * @since 4.0
- */
-public interface ConnectionReleaseTrigger {
-
- /**
- * Releases the connection with the option of keep-alive. This is a
- * "graceful" release and may cause IO operations for consuming the
- * remainder of a response entity. Use
- * {@link #abortConnection abortConnection} for a hard release. The
- * connection may be reused as specified by the duration.
- *
- * @throws IOException
- * in case of an IO problem. The connection will be released
- * anyway.
- */
- void releaseConnection()
- throws IOException;
-
- /**
- * Releases the connection without the option of keep-alive.
- * This is a "hard" release that implies a shutdown of the connection.
- * Use {@link #releaseConnection()} for a graceful release.
- *
- * @throws IOException in case of an IO problem.
- * The connection will be released anyway.
- */
- void abortConnection()
- throws IOException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionRequest.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionRequest.java
deleted file mode 100644
index 838c35567..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ConnectionRequest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-
-import ch.boye.httpclientandroidlib.HttpClientConnection;
-import ch.boye.httpclientandroidlib.concurrent.Cancellable;
-
-/**
- * Represents a request for a {@link HttpClientConnection} whose life cycle
- * is managed by a connection manager.
- *
- * @since 4.3
- */
-public interface ConnectionRequest extends Cancellable {
-
- /**
- * Obtains a connection within a given time.
- * This method will block until a connection becomes available,
- * the timeout expires, or the connection manager is shut down.
- * Timeouts are handled with millisecond precision.
- *
- * If {@link #cancel()} is called while this is blocking or
- * before this began, an {@link InterruptedException} will
- * be thrown.
- *
- * @param timeout the timeout, 0 or negative for no timeout
- * @param tunit the unit for the <code>timeout</code>,
- * may be <code>null</code> only if there is no timeout
- *
- * @return a connection that can be used to communicate
- * along the given route
- *
- * @throws ConnectionPoolTimeoutException
- * in case of a timeout
- * @throws InterruptedException
- * if the calling thread is interrupted while waiting
- */
- HttpClientConnection get(long timeout, TimeUnit tunit)
- throws InterruptedException, ExecutionException, ConnectionPoolTimeoutException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/DnsResolver.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/DnsResolver.java
deleted file mode 100644
index 78ce8709b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/DnsResolver.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-/**
- * Users may implement this interface to override the normal DNS lookup offered
- * by the OS.
- *
- * @since 4.2
- */
-public interface DnsResolver {
-
- /**
- * Returns the IP address for the specified host name, or null if the given
- * host is not recognized or the associated IP address cannot be used to
- * build an InetAddress instance.
- *
- * @see InetAddress
- *
- * @param host
- * The host name to be resolved by this resolver.
- * @return The IP address associated to the given host name, or null if the
- * host name is not known by the implementation class.
- */
- InetAddress[] resolve(String host) throws UnknownHostException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/EofSensorInputStream.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/EofSensorInputStream.java
deleted file mode 100644
index 7db23eed4..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/EofSensorInputStream.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * A stream wrapper that triggers actions on {@link #close close()} and EOF.
- * Primarily used to auto-release an underlying managed connection when the response
- * body is consumed or no longer needed.
- *
- * @see EofSensorWatcher
- *
- * @since 4.0
- */
-// don't use FilterInputStream as the base class, we'd have to
-// override markSupported(), mark(), and reset() to disable them
-@NotThreadSafe
-public class EofSensorInputStream extends InputStream implements ConnectionReleaseTrigger {
-
- /**
- * The wrapped input stream, while accessible.
- * The value changes to <code>null</code> when the wrapped stream
- * becomes inaccessible.
- */
- protected InputStream wrappedStream;
-
- /**
- * Indicates whether this stream itself is closed.
- * If it isn't, but {@link #wrappedStream wrappedStream}
- * is <code>null</code>, we're running in EOF mode.
- * All read operations will indicate EOF without accessing
- * the underlying stream. After closing this stream, read
- * operations will trigger an {@link IOException IOException}.
- *
- * @see #isReadAllowed isReadAllowed
- */
- private boolean selfClosed;
-
- /** The watcher to be notified, if any. */
- private final EofSensorWatcher eofWatcher;
-
- /**
- * Creates a new EOF sensor.
- * If no watcher is passed, the underlying stream will simply be
- * closed when EOF is detected or {@link #close close} is called.
- * Otherwise, the watcher decides whether the underlying stream
- * should be closed before detaching from it.
- *
- * @param in the wrapped stream
- * @param watcher the watcher for events, or <code>null</code> for
- * auto-close behavior without notification
- */
- public EofSensorInputStream(final InputStream in,
- final EofSensorWatcher watcher) {
- Args.notNull(in, "Wrapped stream");
- wrappedStream = in;
- selfClosed = false;
- eofWatcher = watcher;
- }
-
- boolean isSelfClosed() {
- return selfClosed;
- }
-
- InputStream getWrappedStream() {
- return wrappedStream;
- }
-
- /**
- * Checks whether the underlying stream can be read from.
- *
- * @return <code>true</code> if the underlying stream is accessible,
- * <code>false</code> if this stream is in EOF mode and
- * detached from the underlying stream
- *
- * @throws IOException if this stream is already closed
- */
- protected boolean isReadAllowed() throws IOException {
- if (selfClosed) {
- throw new IOException("Attempted read on closed stream.");
- }
- return (wrappedStream != null);
- }
-
- @Override
- public int read() throws IOException {
- int l = -1;
-
- if (isReadAllowed()) {
- try {
- l = wrappedStream.read();
- checkEOF(l);
- } catch (final IOException ex) {
- checkAbort();
- throw ex;
- }
- }
-
- return l;
- }
-
- @Override
- public int read(final byte[] b, final int off, final int len) throws IOException {
- int l = -1;
-
- if (isReadAllowed()) {
- try {
- l = wrappedStream.read(b, off, len);
- checkEOF(l);
- } catch (final IOException ex) {
- checkAbort();
- throw ex;
- }
- }
-
- return l;
- }
-
- @Override
- public int read(final byte[] b) throws IOException {
- return read(b, 0, b.length);
- }
-
- @Override
- public int available() throws IOException {
- int a = 0; // not -1
-
- if (isReadAllowed()) {
- try {
- a = wrappedStream.available();
- // no checkEOF() here, available() can't trigger EOF
- } catch (final IOException ex) {
- checkAbort();
- throw ex;
- }
- }
-
- return a;
- }
-
- @Override
- public void close() throws IOException {
- // tolerate multiple calls to close()
- selfClosed = true;
- checkClose();
- }
-
- /**
- * Detects EOF and notifies the watcher.
- * This method should only be called while the underlying stream is
- * still accessible. Use {@link #isReadAllowed isReadAllowed} to
- * check that condition.
- * <br/>
- * If EOF is detected, the watcher will be notified and this stream
- * is detached from the underlying stream. This prevents multiple
- * notifications from this stream.
- *
- * @param eof the result of the calling read operation.
- * A negative value indicates that EOF is reached.
- *
- * @throws IOException
- * in case of an IO problem on closing the underlying stream
- */
- protected void checkEOF(final int eof) throws IOException {
-
- if ((wrappedStream != null) && (eof < 0)) {
- try {
- boolean scws = true; // should close wrapped stream?
- if (eofWatcher != null) {
- scws = eofWatcher.eofDetected(wrappedStream);
- }
- if (scws) {
- wrappedStream.close();
- }
- } finally {
- wrappedStream = null;
- }
- }
- }
-
- /**
- * Detects stream close and notifies the watcher.
- * There's not much to detect since this is called by {@link #close close}.
- * The watcher will only be notified if this stream is closed
- * for the first time and before EOF has been detected.
- * This stream will be detached from the underlying stream to prevent
- * multiple notifications to the watcher.
- *
- * @throws IOException
- * in case of an IO problem on closing the underlying stream
- */
- protected void checkClose() throws IOException {
-
- if (wrappedStream != null) {
- try {
- boolean scws = true; // should close wrapped stream?
- if (eofWatcher != null) {
- scws = eofWatcher.streamClosed(wrappedStream);
- }
- if (scws) {
- wrappedStream.close();
- }
- } finally {
- wrappedStream = null;
- }
- }
- }
-
- /**
- * Detects stream abort and notifies the watcher.
- * There's not much to detect since this is called by
- * {@link #abortConnection abortConnection}.
- * The watcher will only be notified if this stream is aborted
- * for the first time and before EOF has been detected or the
- * stream has been {@link #close closed} gracefully.
- * This stream will be detached from the underlying stream to prevent
- * multiple notifications to the watcher.
- *
- * @throws IOException
- * in case of an IO problem on closing the underlying stream
- */
- protected void checkAbort() throws IOException {
-
- if (wrappedStream != null) {
- try {
- boolean scws = true; // should close wrapped stream?
- if (eofWatcher != null) {
- scws = eofWatcher.streamAbort(wrappedStream);
- }
- if (scws) {
- wrappedStream.close();
- }
- } finally {
- wrappedStream = null;
- }
- }
- }
-
- /**
- * Same as {@link #close close()}.
- */
- public void releaseConnection() throws IOException {
- close();
- }
-
- /**
- * Aborts this stream.
- * This is a special version of {@link #close close()} which prevents
- * re-use of the underlying connection, if any. Calling this method
- * indicates that there should be no attempt to read until the end of
- * the stream.
- */
- public void abortConnection() throws IOException {
- // tolerate multiple calls
- selfClosed = true;
- checkAbort();
- }
-
-}
-
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/EofSensorWatcher.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/EofSensorWatcher.java
deleted file mode 100644
index c57772fb8..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/EofSensorWatcher.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * A watcher for {@link EofSensorInputStream}. Each stream will notify its
- * watcher at most once.
- *
- * @since 4.0
- */
-public interface EofSensorWatcher {
-
- /**
- * Indicates that EOF is detected.
- *
- * @param wrapped the underlying stream which has reached EOF
- *
- * @return <code>true</code> if <code>wrapped</code> should be closed,
- * <code>false</code> if it should be left alone
- *
- * @throws IOException
- * in case of an IO problem, for example if the watcher itself
- * closes the underlying stream. The caller will leave the
- * wrapped stream alone, as if <code>false</code> was returned.
- */
- boolean eofDetected(InputStream wrapped)
- throws IOException;
-
- /**
- * Indicates that the {@link EofSensorInputStream stream} is closed.
- * This method will be called only if EOF was <i>not</i> detected
- * before closing. Otherwise, {@link #eofDetected eofDetected} is called.
- *
- * @param wrapped the underlying stream which has not reached EOF
- *
- * @return <code>true</code> if <code>wrapped</code> should be closed,
- * <code>false</code> if it should be left alone
- *
- * @throws IOException
- * in case of an IO problem, for example if the watcher itself
- * closes the underlying stream. The caller will leave the
- * wrapped stream alone, as if <code>false</code> was returned.
- */
- boolean streamClosed(InputStream wrapped)
- throws IOException;
-
- /**
- * Indicates that the {@link EofSensorInputStream stream} is aborted.
- * This method will be called only if EOF was <i>not</i> detected
- * before aborting. Otherwise, {@link #eofDetected eofDetected} is called.
- * <p/>
- * This method will also be invoked when an input operation causes an
- * IOException to be thrown to make sure the input stream gets shut down.
- *
- * @param wrapped the underlying stream which has not reached EOF
- *
- * @return <code>true</code> if <code>wrapped</code> should be closed,
- * <code>false</code> if it should be left alone
- *
- * @throws IOException
- * in case of an IO problem, for example if the watcher itself
- * closes the underlying stream. The caller will leave the
- * wrapped stream alone, as if <code>false</code> was returned.
- */
- boolean streamAbort(InputStream wrapped)
- throws IOException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpClientConnectionManager.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpClientConnectionManager.java
deleted file mode 100644
index 0381a803f..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpClientConnectionManager.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-
-import ch.boye.httpclientandroidlib.HttpClientConnection;
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-
-/**
- * Represents a manager of persistent client connections.
- * <p/>
- * The purpose of an HTTP connection manager is to serve as a factory for new
- * HTTP connections, manage persistent connections and synchronize access to
- * persistent connections making sure that only one thread of execution can
- * have access to a connection at a time.
- * <p/>
- * Implementations of this interface must be thread-safe. Access to shared
- * data must be synchronized as methods of this interface may be executed
- * from multiple threads.
- *
- * @since 4.3
- */
-public interface HttpClientConnectionManager {
-
- /**
- * Returns a new {@link ConnectionRequest}, from which a
- * {@link HttpClientConnection} can be obtained or the request can be
- * aborted.
- * <p/>
- * Please note that newly allocated connections can be returned
- * in the closed state. The consumer of that connection is responsible
- * for fully establishing the route the to the connection target
- * by calling {@link #connect(ch.boye.httpclientandroidlib.HttpClientConnection,
- * ch.boye.httpclientandroidlib.conn.routing.HttpRoute, int,
- * ch.boye.httpclientandroidlib.protocol.HttpContext) connect} in order to connect
- * directly to the target or to the first proxy hop, optionally calling
- * {@link #upgrade(ch.boye.httpclientandroidlib.HttpClientConnection,
- * ch.boye.httpclientandroidlib.conn.routing.HttpRoute,
- * ch.boye.httpclientandroidlib.protocol.HttpContext) upgrade} method to upgrade
- * the connection after having executed <code>CONNECT</code> method to
- * all intermediate proxy hops and and finally calling {@link #routeComplete(
- * ch.boye.httpclientandroidlib.HttpClientConnection,
- * ch.boye.httpclientandroidlib.conn.routing.HttpRoute,
- * ch.boye.httpclientandroidlib.protocol.HttpContext) routeComplete} to mark the route
- * as fully completed.
- *
- * @param route HTTP route of the requested connection.
- * @param state expected state of the connection or <code>null</code>
- * if the connection is not expected to carry any state.
- */
- ConnectionRequest requestConnection(HttpRoute route, Object state);
-
- /**
- * Releases the connection back to the manager making it potentially
- * re-usable by other consumers. Optionally, the maximum period
- * of how long the manager should keep the connection alive can be
- * defined using <code>validDuration</code> and <code>timeUnit</code>
- * parameters.
- *
- * @param conn the managed connection to release.
- * @param validDuration the duration of time this connection is valid for reuse.
- * @param timeUnit the time unit.
- *
- * @see #closeExpiredConnections()
- */
- void releaseConnection(
- HttpClientConnection conn, Object newState, long validDuration, TimeUnit timeUnit);
-
- /**
- * Connects the underlying connection socket to the connection target in case
- * of a direct route or to the first proxy hop in case of a route via a proxy
- * (or multiple proxies).
- *
- * @param conn the managed connection.
- * @param route the route of the connection.
- * @param connectTimeout connect timeout in milliseconds.
- * @param context the actual HTTP context.
- * @throws IOException
- */
- void connect(
- HttpClientConnection conn,
- HttpRoute route,
- int connectTimeout,
- HttpContext context) throws IOException;
-
- /**
- * Upgrades the underlying connection socket to TLS/SSL (or another layering
- * protocol) after having executed <code>CONNECT</code> method to all
- * intermediate proxy hops
- *
- * @param conn the managed connection.
- * @param route the route of the connection.
- * @param context the actual HTTP context.
- * @throws IOException
- */
- void upgrade(
- HttpClientConnection conn,
- HttpRoute route,
- HttpContext context) throws IOException;
-
- /**
- * Marks the connection as fully established with all its intermediate
- * hops completed.
- *
- * @param conn the managed connection.
- * @param route the route of the connection.
- * @param context the actual HTTP context.
- * @throws IOException
- */
- void routeComplete(
- HttpClientConnection conn,
- HttpRoute route,
- HttpContext context) throws IOException;
-
- /**
- * Closes idle connections in the pool.
- * <p/>
- * Open connections in the pool that have not been used for the
- * timespan given by the argument will be closed.
- * Currently allocated connections are not subject to this method.
- * Times will be checked with milliseconds precision
- *
- * All expired connections will also be closed.
- *
- * @param idletime the idle time of connections to be closed
- * @param tunit the unit for the <code>idletime</code>
- *
- * @see #closeExpiredConnections()
- */
- void closeIdleConnections(long idletime, TimeUnit tunit);
-
- /**
- * Closes all expired connections in the pool.
- * <p/>
- * Open connections in the pool that have not been used for
- * the timespan defined when the connection was released will be closed.
- * Currently allocated connections are not subject to this method.
- * Times will be checked with milliseconds precision.
- */
- void closeExpiredConnections();
-
- /**
- * Shuts down this connection manager and releases allocated resources.
- * This includes closing all connections, whether they are currently
- * used or not.
- */
- void shutdown();
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpConnectionFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpConnectionFactory.java
deleted file mode 100644
index be910921f..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpConnectionFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import ch.boye.httpclientandroidlib.HttpConnection;
-import ch.boye.httpclientandroidlib.config.ConnectionConfig;
-
-/**
- * Generic {@link HttpConnection} factory.
- *
- * @since 4.3
- */
-public interface HttpConnectionFactory<T, C extends HttpConnection> {
-
- C create(T route, ConnectionConfig config);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpHostConnectException.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpHostConnectException.java
deleted file mode 100644
index 9b1a1c57a..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpHostConnectException.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.net.ConnectException;
-import java.net.InetAddress;
-import java.util.Arrays;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * A {@link ConnectException} that specifies the {@link HttpHost} that was
- * being connected to.
- *
- * @since 4.0
- */
-@Immutable
-public class HttpHostConnectException extends ConnectException {
-
- private static final long serialVersionUID = -3194482710275220224L;
-
- private final HttpHost host;
-
- /**
- * @deprecated (4.3) use {@link #HttpHostConnectException(java.io.IOException, ch.boye.httpclientandroidlib.HttpHost,
- * java.net.InetAddress...)}
- */
- @Deprecated
- public HttpHostConnectException(final HttpHost host, final ConnectException cause) {
- this(cause, host, null);
- }
-
- /**
- * Creates a HttpHostConnectException based on original {@link java.io.IOException}.
- *
- * @since 4.3
- */
- public HttpHostConnectException(
- final IOException cause,
- final HttpHost host,
- final InetAddress... remoteAddresses) {
- super("Connect to " +
- (host != null ? host.toHostString() : "remote host") +
- (remoteAddresses != null && remoteAddresses .length > 0 ?
- " " + Arrays.asList(remoteAddresses) : "") +
- ((cause != null && cause.getMessage() != null) ?
- " failed: " + cause.getMessage() : " refused"));
- this.host = host;
- initCause(cause);
- }
-
- public HttpHost getHost() {
- return this.host;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpInetSocketAddress.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpInetSocketAddress.java
deleted file mode 100644
index 3bd878d21..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpInetSocketAddress.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Extended {@link InetSocketAddress} implementation that also provides access to the original
- * {@link HttpHost} used to resolve the address.
- *
- * @since 4.2 no longer used.
- *
- * @deprecated (4.3)
- */
-@Deprecated
-public class HttpInetSocketAddress extends InetSocketAddress {
-
- private static final long serialVersionUID = -6650701828361907957L;
-
- private final HttpHost httphost;
-
- public HttpInetSocketAddress(final HttpHost httphost, final InetAddress addr, final int port) {
- super(addr, port);
- Args.notNull(httphost, "HTTP host");
- this.httphost = httphost;
- }
-
- public HttpHost getHttpHost() {
- return this.httphost;
- }
-
- @Override
- public String toString() {
- return this.httphost.getHostName() + ":" + getPort();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpRoutedConnection.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpRoutedConnection.java
deleted file mode 100644
index 956e61208..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/HttpRoutedConnection.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import javax.net.ssl.SSLSession;
-
-import ch.boye.httpclientandroidlib.HttpInetConnection;
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-
-/**
- * Interface to access routing information of a client side connection.
- *
- * @since 4.1
- *
- * @deprecated (4.3) replaced by {@link HttpClientConnectionManager}.
- */
-@Deprecated
-public interface HttpRoutedConnection extends HttpInetConnection {
-
- /**
- * Indicates whether this connection is secure.
- * The return value is well-defined only while the connection is open.
- * It may change even while the connection is open.
- *
- * @return <code>true</code> if this connection is secure,
- * <code>false</code> otherwise
- */
- boolean isSecure();
-
- /**
- * Obtains the current route of this connection.
- *
- * @return the route established so far, or
- * <code>null</code> if not connected
- */
- HttpRoute getRoute();
-
- /**
- * Obtains the SSL session of the underlying connection, if any.
- * If this connection is open, and the underlying socket is an
- * {@link javax.net.ssl.SSLSocket SSLSocket}, the SSL session of
- * that socket is obtained. This is a potentially blocking operation.
- * <br/>
- * <b>Note:</b> Whether the underlying socket is an SSL socket
- * can not necessarily be determined via {@link #isSecure}.
- * Plain sockets may be considered secure, for example if they are
- * connected to a known host in the same network segment.
- * On the other hand, SSL sockets may be considered insecure,
- * for example depending on the chosen cipher suite.
- *
- * @return the underlying SSL session if available,
- * <code>null</code> otherwise
- */
- SSLSession getSSLSession();
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ManagedClientConnection.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ManagedClientConnection.java
deleted file mode 100644
index a54567b4f..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ManagedClientConnection.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-
-import javax.net.ssl.SSLSession;
-
-import ch.boye.httpclientandroidlib.HttpClientConnection;
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-
-/**
- * A client-side connection with advanced connection logic.
- * Instances are typically obtained from a connection manager.
- *
- * @since 4.0
- *
- * @deprecated (4.3) replaced by {@link HttpClientConnectionManager}.
- */
-@Deprecated
-public interface ManagedClientConnection extends
- HttpClientConnection, HttpRoutedConnection, ManagedHttpClientConnection, ConnectionReleaseTrigger {
-
- /**
- * Indicates whether this connection is secure.
- * The return value is well-defined only while the connection is open.
- * It may change even while the connection is open.
- *
- * @return <code>true</code> if this connection is secure,
- * <code>false</code> otherwise
- */
- boolean isSecure();
-
- /**
- * Obtains the current route of this connection.
- *
- * @return the route established so far, or
- * <code>null</code> if not connected
- */
- HttpRoute getRoute();
-
- /**
- * Obtains the SSL session of the underlying connection, if any.
- * If this connection is open, and the underlying socket is an
- * {@link javax.net.ssl.SSLSocket SSLSocket}, the SSL session of
- * that socket is obtained. This is a potentially blocking operation.
- * <br/>
- * <b>Note:</b> Whether the underlying socket is an SSL socket
- * can not necessarily be determined via {@link #isSecure}.
- * Plain sockets may be considered secure, for example if they are
- * connected to a known host in the same network segment.
- * On the other hand, SSL sockets may be considered insecure,
- * for example depending on the chosen cipher suite.
- *
- * @return the underlying SSL session if available,
- * <code>null</code> otherwise
- */
- SSLSession getSSLSession();
-
- /**
- * Opens this connection according to the given route.
- *
- * @param route the route along which to open. It will be opened to
- * the first proxy if present, or directly to the target.
- * @param context the context for opening this connection
- * @param params the parameters for opening this connection
- *
- * @throws IOException in case of a problem
- */
- void open(HttpRoute route, HttpContext context, HttpParams params)
- throws IOException;
-
- /**
- * Indicates that a tunnel to the target has been established.
- * The route is the one previously passed to {@link #open open}.
- * Subsequently, {@link #layerProtocol layerProtocol} can be called
- * to layer the TLS/SSL protocol on top of the tunnelled connection.
- * <br/>
- * <b>Note:</b> In HttpClient 3, a call to the corresponding method
- * would automatically trigger the layering of the TLS/SSL protocol.
- * This is not the case anymore, you can establish a tunnel without
- * layering a new protocol over the connection.
- *
- * @param secure <code>true</code> if the tunnel should be considered
- * secure, <code>false</code> otherwise
- * @param params the parameters for tunnelling this connection
- *
- * @throws IOException in case of a problem
- */
- void tunnelTarget(boolean secure, HttpParams params)
- throws IOException;
-
- /**
- * Indicates that a tunnel to an intermediate proxy has been established.
- * This is used exclusively for so-called <i>proxy chains</i>, where
- * a request has to pass through multiple proxies before reaching the
- * target. In that case, all proxies but the last need to be tunnelled
- * when establishing the connection. Tunnelling of the last proxy to the
- * target is optional and would be indicated via {@link #tunnelTarget}.
- *
- * @param next the proxy to which the tunnel was established.
- * This is <i>not</i> the proxy <i>through</i> which
- * the tunnel was established, but the new end point
- * of the tunnel. The tunnel does <i>not</i> yet
- * reach to the target, use {@link #tunnelTarget}
- * to indicate an end-to-end tunnel.
- * @param secure <code>true</code> if the connection should be
- * considered secure, <code>false</code> otherwise
- * @param params the parameters for tunnelling this connection
- *
- * @throws IOException in case of a problem
- */
- void tunnelProxy(HttpHost next, boolean secure, HttpParams params)
- throws IOException;
-
- /**
- * Layers a new protocol on top of a {@link #tunnelTarget tunnelled}
- * connection. This is typically used to create a TLS/SSL connection
- * through a proxy.
- * The route is the one previously passed to {@link #open open}.
- * It is not guaranteed that the layered connection is
- * {@link #isSecure secure}.
- *
- * @param context the context for layering on top of this connection
- * @param params the parameters for layering on top of this connection
- *
- * @throws IOException in case of a problem
- */
- void layerProtocol(HttpContext context, HttpParams params)
- throws IOException;
-
- /**
- * Marks this connection as being in a reusable communication state.
- * The checkpoints for reuseable communication states (in the absence
- * of pipelining) are before sending a request and after receiving
- * the response in its entirety.
- * The connection will automatically clear the checkpoint when
- * used for communication. A call to this method indicates that
- * the next checkpoint has been reached.
- * <br/>
- * A reusable communication state is necessary but not sufficient
- * for the connection to be reused.
- * A {@link #getRoute route} mismatch, the connection being closed,
- * or other circumstances might prevent reuse.
- */
- void markReusable();
-
- /**
- * Marks this connection as not being in a reusable state.
- * This can be used immediately before releasing this connection
- * to prevent its reuse. Reasons for preventing reuse include
- * error conditions and the evaluation of a
- * {@link ch.boye.httpclientandroidlib.ConnectionReuseStrategy reuse strategy}.
- * <br/>
- * <b>Note:</b>
- * It is <i>not</i> necessary to call here before writing to
- * or reading from this connection. Communication attempts will
- * automatically unmark the state as non-reusable. It can then
- * be switched back using {@link #markReusable markReusable}.
- */
- void unmarkReusable();
-
- /**
- * Indicates whether this connection is in a reusable communication state.
- * See {@link #markReusable markReusable} and
- * {@link #unmarkReusable unmarkReusable} for details.
- *
- * @return <code>true</code> if this connection is marked as being in
- * a reusable communication state,
- * <code>false</code> otherwise
- */
- boolean isMarkedReusable();
-
- /**
- * Assigns a state object to this connection. Connection managers may make
- * use of the connection state when allocating persistent connections.
- *
- * @param state The state object
- */
- void setState(Object state);
-
- /**
- * Returns the state object associated with this connection.
- *
- * @return The state object
- */
- Object getState();
-
- /**
- * Sets the duration that this connection can remain idle before it is
- * reused. The connection should not be used again if this time elapses. The
- * idle duration must be reset after each request sent over this connection.
- * The elapsed time starts counting when the connection is released, which
- * is typically after the headers (and any response body, if present) is
- * fully consumed.
- */
- void setIdleDuration(long duration, TimeUnit unit);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ManagedHttpClientConnection.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ManagedHttpClientConnection.java
deleted file mode 100644
index 4195d59b7..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ManagedHttpClientConnection.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.net.Socket;
-
-import javax.net.ssl.SSLSession;
-
-import ch.boye.httpclientandroidlib.HttpClientConnection;
-import ch.boye.httpclientandroidlib.HttpInetConnection;
-
-/**
- * Represents a managed connection whose state and life cycle is managed by
- * a connection manager. This interface extends {@link HttpClientConnection}
- * with methods to bind the connection to an arbitrary socket and
- * to obtain SSL session details.
- *
- * @since 4.3
- */
-public interface ManagedHttpClientConnection extends HttpClientConnection, HttpInetConnection {
-
- /**
- * Returns connection ID which is expected to be unique
- * for the life span of the connection manager.
- */
- String getId();
-
- /**
- * Binds this connection to the given socket. The connection
- * is considered open if it is bound and the underlying socket
- * is connection to a remote host.
- *
- * @param socket the socket to bind the connection to.
- * @throws IOException
- */
- void bind(Socket socket) throws IOException;
-
- /**
- * Returns the underlying socket.
- */
- Socket getSocket();
-
- /**
- * Obtains the SSL session of the underlying connection, if any.
- * If this connection is open, and the underlying socket is an
- * {@link javax.net.ssl.SSLSocket SSLSocket}, the SSL session of
- * that socket is obtained. This is a potentially blocking operation.
- *
- * @return the underlying SSL session if available,
- * <code>null</code> otherwise
- */
- SSLSession getSSLSession();
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/MultihomePlainSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/MultihomePlainSocketFactory.java
deleted file mode 100644
index c4c34f769..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/MultihomePlainSocketFactory.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.SocketTimeoutException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.conn.scheme.SocketFactory;
-import ch.boye.httpclientandroidlib.params.HttpConnectionParams;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.util.Args;
-import ch.boye.httpclientandroidlib.util.Asserts;
-
-/**
- * Socket factory that implements a simple multi-home fail-over on connect failure,
- * provided the same hostname resolves to multiple {@link InetAddress}es. Please note
- * the {@link #connectSocket(Socket, String, int, InetAddress, int, HttpParams)}
- * method cannot be reliably interrupted by closing the socket returned by the
- * {@link #createSocket()} method.
- *
- * @since 4.0
- *
- * @deprecated (4.1) Do not use. For multihome support socket factories must implement
- * {@link ch.boye.httpclientandroidlib.conn.scheme.SchemeSocketFactory} interface.
- */
-@Deprecated
-@Immutable
-public final class MultihomePlainSocketFactory implements SocketFactory {
-
- /**
- * The factory singleton.
- */
- private static final
- MultihomePlainSocketFactory DEFAULT_FACTORY = new MultihomePlainSocketFactory();
-
- /**
- * Gets the singleton instance of this class.
- * @return the one and only plain socket factory
- */
- public static MultihomePlainSocketFactory getSocketFactory() {
- return DEFAULT_FACTORY;
- }
-
- /**
- * Restricted default constructor.
- */
- private MultihomePlainSocketFactory() {
- super();
- }
-
-
- // non-javadoc, see interface ch.boye.httpclientandroidlib.conn.SocketFactory
- public Socket createSocket() {
- return new Socket();
- }
-
- /**
- * Attempts to connects the socket to any of the {@link InetAddress}es the
- * given host name resolves to. If connection to all addresses fail, the
- * last I/O exception is propagated to the caller.
- *
- * @param socket socket to connect to any of the given addresses
- * @param host Host name to connect to
- * @param port the port to connect to
- * @param localAddress local address
- * @param localPort local port
- * @param params HTTP parameters
- *
- * @throws IOException if an error occurs during the connection
- * @throws SocketTimeoutException if timeout expires before connecting
- */
- public Socket connectSocket(final Socket socket, final String host, final int port,
- final InetAddress localAddress, final int localPort,
- final HttpParams params)
- throws IOException {
- Args.notNull(host, "Target host");
- Args.notNull(params, "HTTP parameters");
-
- Socket sock = socket;
- if (sock == null) {
- sock = createSocket();
- }
-
- if ((localAddress != null) || (localPort > 0)) {
- final InetSocketAddress isa = new InetSocketAddress(localAddress,
- localPort > 0 ? localPort : 0);
- sock.bind(isa);
- }
-
- final int timeout = HttpConnectionParams.getConnectionTimeout(params);
-
- final InetAddress[] inetadrs = InetAddress.getAllByName(host);
- final List<InetAddress> addresses = new ArrayList<InetAddress>(inetadrs.length);
- addresses.addAll(Arrays.asList(inetadrs));
- Collections.shuffle(addresses);
-
- IOException lastEx = null;
- for (final InetAddress remoteAddress: addresses) {
- try {
- sock.connect(new InetSocketAddress(remoteAddress, port), timeout);
- break;
- } catch (final SocketTimeoutException ex) {
- throw new ConnectTimeoutException("Connect to " + remoteAddress + " timed out");
- } catch (final IOException ex) {
- // create new socket
- sock = new Socket();
- // keep the last exception and retry
- lastEx = ex;
- }
- }
- if (lastEx != null) {
- throw lastEx;
- }
- return sock;
- } // connectSocket
-
-
- /**
- * Checks whether a socket connection is secure.
- * This factory creates plain socket connections
- * which are not considered secure.
- *
- * @param sock the connected socket
- *
- * @return <code>false</code>
- *
- * @throws IllegalArgumentException if the argument is invalid
- */
- public final boolean isSecure(final Socket sock)
- throws IllegalArgumentException {
-
- Args.notNull(sock, "Socket");
- // This check is performed last since it calls a method implemented
- // by the argument object. getClass() is final in java.lang.Object.
- Asserts.check(!sock.isClosed(), "Socket is closed");
- return false;
-
- } // isSecure
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/OperatedClientConnection.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/OperatedClientConnection.java
deleted file mode 100644
index 3f8df0591..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/OperatedClientConnection.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-import java.net.Socket;
-
-import ch.boye.httpclientandroidlib.HttpClientConnection;
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.HttpInetConnection;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * A client-side connection that relies on outside logic to connect sockets to the
- * appropriate hosts. It can be operated directly by an application, or through an
- * {@link ClientConnectionOperator operator}.
- *
- * @since 4.0
- *
- * @deprecated (4.3) replaced by {@link HttpClientConnectionManager}.
- */
-@Deprecated
-public interface OperatedClientConnection extends HttpClientConnection, HttpInetConnection {
-
- /**
- * Obtains the target host for this connection.
- * If the connection is to a proxy but not tunnelled, this is
- * the proxy. If the connection is tunnelled through a proxy,
- * this is the target of the tunnel.
- * <br/>
- * The return value is well-defined only while the connection is open.
- * It may change even while the connection is open,
- * because of an {@link #update update}.
- *
- * @return the host to which this connection is opened
- */
- HttpHost getTargetHost();
-
- /**
- * Indicates whether this connection is secure.
- * The return value is well-defined only while the connection is open.
- * It may change even while the connection is open,
- * because of an {@link #update update}.
- *
- * @return <code>true</code> if this connection is secure,
- * <code>false</code> otherwise
- */
- boolean isSecure();
-
- /**
- * Obtains the socket for this connection.
- * The return value is well-defined only while the connection is open.
- * It may change even while the connection is open,
- * because of an {@link #update update}.
- *
- * @return the socket for communicating with the
- * {@link #getTargetHost target host}
- */
- Socket getSocket();
-
- /**
- * Signals that this connection is in the process of being open.
- * <p>
- * By calling this method, the connection can be re-initialized
- * with a new Socket instance before {@link #openCompleted} is called.
- * This enabled the connection to close that socket if
- * {@link ch.boye.httpclientandroidlib.HttpConnection#shutdown shutdown}
- * is called before it is fully open. Closing an unconnected socket
- * will interrupt a thread that is blocked on the connect.
- * Otherwise, that thread will either time out on the connect,
- * or it returns successfully and then opens this connection
- * which was just shut down.
- * <p>
- * This method can be called multiple times if the connection
- * is layered over another protocol. <b>Note:</b> This method
- * will <i>not</i> close the previously used socket. It is
- * the caller's responsibility to close that socket if it is
- * no longer required.
- * <p>
- * The caller must invoke {@link #openCompleted} in order to complete
- * the process.
- *
- * @param sock the unconnected socket which is about to
- * be connected.
- * @param target the target host of this connection
- */
- void opening(Socket sock, HttpHost target)
- throws IOException;
-
- /**
- * Signals that the connection has been successfully open.
- * An attempt to call this method on an open connection will cause
- * an exception.
- *
- * @param secure <code>true</code> if this connection is secure, for
- * example if an <code>SSLSocket</code> is used, or
- * <code>false</code> if it is not secure
- * @param params parameters for this connection. The parameters will
- * be used when creating dependent objects, for example
- * to determine buffer sizes.
- */
- void openCompleted(boolean secure, HttpParams params)
- throws IOException;
-
- /**
- * Updates this connection.
- * A connection can be updated only while it is open.
- * Updates are used for example when a tunnel has been established,
- * or when a TLS/SSL connection has been layered on top of a plain
- * socket connection.
- * <br/>
- * <b>Note:</b> Updating the connection will <i>not</i> close the
- * previously used socket. It is the caller's responsibility to close
- * that socket if it is no longer required.
- *
- * @param sock the new socket for communicating with the target host,
- * or <code>null</code> to continue using the old socket.
- * If <code>null</code> is passed, helper objects that
- * depend on the socket should be re-used. In that case,
- * some changes in the parameters will not take effect.
- * @param target the new target host of this connection
- * @param secure <code>true</code> if this connection is now secure,
- * <code>false</code> if it is not secure
- * @param params new parameters for this connection
- */
- void update(Socket sock, HttpHost target,
- boolean secure, HttpParams params)
- throws IOException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/SchemePortResolver.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/SchemePortResolver.java
deleted file mode 100644
index 10df60f04..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/SchemePortResolver.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-
-/**
- * Strategy for default port resolution for protocol schemes.
- *
- * @since 4.3
- */
-public interface SchemePortResolver {
-
- /**
- * Returns the actual port for the host based on the protocol scheme.
- */
- int resolve(HttpHost host) throws UnsupportedSchemeException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/UnsupportedSchemeException.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/UnsupportedSchemeException.java
deleted file mode 100644
index c8034191e..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/UnsupportedSchemeException.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn;
-
-import java.io.IOException;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * Signals failure to establish connection using an unknown protocol scheme.
- *
- * @since 4.3
- */
-@Immutable
-public class UnsupportedSchemeException extends IOException {
-
- private static final long serialVersionUID = 3597127619218687636L;
-
- /**
- * Creates a UnsupportedSchemeException with the specified detail message.
- */
- public UnsupportedSchemeException(final String message) {
- super(message);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/package-info.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/package-info.java
deleted file mode 100644
index 6d83f5a8b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/package-info.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-/**
- * Client connection management APIs.
- */
-package ch.boye.httpclientandroidlib.conn;
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnConnectionPNames.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnConnectionPNames.java
deleted file mode 100644
index 59246459f..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnConnectionPNames.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.params;
-
-/**
- * Parameter names for HTTP client connections.
- *
- * @since 4.0
- *
- * @deprecated (4.1) use custom {@link
- * ch.boye.httpclientandroidlib.impl.conn.DefaultHttpResponseParser} implementation.
- */
-@Deprecated
-public interface ConnConnectionPNames {
-
- /**
- * Defines the maximum number of ignorable lines before we expect
- * a HTTP response's status line.
- * <p>
- * With HTTP/1.1 persistent connections, the problem arises that
- * broken scripts could return a wrong Content-Length
- * (there are more bytes sent than specified).
- * Unfortunately, in some cases, this cannot be detected after the
- * bad response, but only before the next one.
- * So HttpClient must be able to skip those surplus lines this way.
- * </p>
- * <p>
- * This parameter expects a value of type {@link Integer}.
- * 0 disallows all garbage/empty lines before the status line.
- * Use {@link java.lang.Integer#MAX_VALUE} for unlimited number.
- * </p>
- *
- * @deprecated (4.1) Use custom {@link
- * ch.boye.httpclientandroidlib.impl.conn.DefaultHttpResponseParser} implementation
- */
- @Deprecated
- public static final String MAX_STATUS_LINE_GARBAGE = "http.connection.max-status-line-garbage";
-
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnConnectionParamBean.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnConnectionParamBean.java
deleted file mode 100644
index 8c8b1b2dc..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnConnectionParamBean.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.params;
-
-import ch.boye.httpclientandroidlib.params.HttpAbstractParamBean;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * This is a Java Bean class that can be used to wrap an instance of
- * {@link HttpParams} and manipulate HTTP client connection parameters
- * using Java Beans conventions.
- *
- * @since 4.0
- *
- * @deprecated (4.1) use custom {@link
- * ch.boye.httpclientandroidlib.impl.conn.DefaultHttpResponseParser} implementation.
- */
-@Deprecated
-public class ConnConnectionParamBean extends HttpAbstractParamBean {
-
- public ConnConnectionParamBean (final HttpParams params) {
- super(params);
- }
-
- /**
- * @deprecated (4.2) Use custom {@link
- * ch.boye.httpclientandroidlib.impl.conn.DefaultHttpResponseParser} implementation
- */
- @Deprecated
- public void setMaxStatusLineGarbage (final int maxStatusLineGarbage) {
- params.setIntParameter(ConnConnectionPNames.MAX_STATUS_LINE_GARBAGE, maxStatusLineGarbage);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerPNames.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerPNames.java
deleted file mode 100644
index 16a79ca18..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerPNames.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.params;
-
-/**
- * Parameter names for connection managers in HttpConn.
- *
- * @since 4.0
- *
- * @deprecated (4.1) use configuration methods of the specific connection manager implementation.
-*/
-@Deprecated
-public interface ConnManagerPNames {
-
- /**
- * Defines the timeout in milliseconds used when retrieving an instance of
- * {@link ch.boye.httpclientandroidlib.conn.ManagedClientConnection} from the
- * {@link ch.boye.httpclientandroidlib.conn.ClientConnectionManager}.
- * <p>
- * This parameter expects a value of type {@link Long}.
- */
- public static final String TIMEOUT = "http.conn-manager.timeout";
-
- /**
- * Defines the maximum number of connections per route.
- * This limit is interpreted by client connection managers
- * and applies to individual manager instances.
- * <p>
- * This parameter expects a value of type {@link ConnPerRoute}.
- * <p>
- */
- public static final String MAX_CONNECTIONS_PER_ROUTE = "http.conn-manager.max-per-route";
-
- /**
- * Defines the maximum number of connections in total.
- * This limit is interpreted by client connection managers
- * and applies to individual manager instances.
- * <p>
- * This parameter expects a value of type {@link Integer}.
- */
- public static final String MAX_TOTAL_CONNECTIONS = "http.conn-manager.max-total";
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerParamBean.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerParamBean.java
deleted file mode 100644
index 735a25360..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerParamBean.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.params;
-
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-import ch.boye.httpclientandroidlib.params.HttpAbstractParamBean;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * This is a Java Bean class that can be used to wrap an instance of
- * {@link HttpParams} and manipulate connection manager parameters
- * using Java Beans conventions.
- *
- * @since 4.0
- *
- * @deprecated (4.1) use configuration methods of the specific connection manager implementation.
- */
-@NotThreadSafe
-@Deprecated
-public class ConnManagerParamBean extends HttpAbstractParamBean {
-
- public ConnManagerParamBean (final HttpParams params) {
- super(params);
- }
-
- public void setTimeout (final long timeout) {
- params.setLongParameter(ConnManagerPNames.TIMEOUT, timeout);
- }
-
- public void setMaxTotalConnections (final int maxConnections) {
- params.setIntParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, maxConnections);
- }
-
- public void setConnectionsPerRoute(final ConnPerRouteBean connPerRoute) {
- params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, connPerRoute);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerParams.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerParams.java
deleted file mode 100644
index e6521134a..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnManagerParams.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.params;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * An adaptor for manipulating HTTP connection management
- * parameters in {@link HttpParams}.
- *
- * @since 4.0
- *
- * @see ConnManagerPNames
- *
- * @deprecated (4.1) use configuration methods of the specific connection manager implementation.
- */
-@Deprecated
-@Immutable
-public final class ConnManagerParams implements ConnManagerPNames {
-
- /** The default maximum number of connections allowed overall */
- public static final int DEFAULT_MAX_TOTAL_CONNECTIONS = 20;
-
- /**
- * Returns the timeout in milliseconds used when retrieving a
- * {@link ch.boye.httpclientandroidlib.conn.ManagedClientConnection} from the
- * {@link ch.boye.httpclientandroidlib.conn.ClientConnectionManager}.
- *
- * @return timeout in milliseconds.
- *
- * @deprecated (4.1) use {@link
- * ch.boye.httpclientandroidlib.params.HttpConnectionParams#getConnectionTimeout(HttpParams)}
- */
- @Deprecated
- public static long getTimeout(final HttpParams params) {
- Args.notNull(params, "HTTP parameters");
- return params.getLongParameter(TIMEOUT, 0);
- }
-
- /**
- * Sets the timeout in milliseconds used when retrieving a
- * {@link ch.boye.httpclientandroidlib.conn.ManagedClientConnection} from the
- * {@link ch.boye.httpclientandroidlib.conn.ClientConnectionManager}.
- *
- * @param timeout the timeout in milliseconds
- *
- * @deprecated (4.1) use {@link
- * ch.boye.httpclientandroidlib.params.HttpConnectionParams#setConnectionTimeout(HttpParams, int)}
- */
- @Deprecated
- public static void setTimeout(final HttpParams params, final long timeout) {
- Args.notNull(params, "HTTP parameters");
- params.setLongParameter(TIMEOUT, timeout);
- }
-
- /** The default maximum number of connections allowed per host */
- private static final ConnPerRoute DEFAULT_CONN_PER_ROUTE = new ConnPerRoute() {
-
- public int getMaxForRoute(final HttpRoute route) {
- return ConnPerRouteBean.DEFAULT_MAX_CONNECTIONS_PER_ROUTE;
- }
-
- };
-
- /**
- * Sets lookup interface for maximum number of connections allowed per route.
- *
- * @param params HTTP parameters
- * @param connPerRoute lookup interface for maximum number of connections allowed
- * per route
- */
- public static void setMaxConnectionsPerRoute(final HttpParams params,
- final ConnPerRoute connPerRoute) {
- Args.notNull(params, "HTTP parameters");
- params.setParameter(MAX_CONNECTIONS_PER_ROUTE, connPerRoute);
- }
-
- /**
- * Returns lookup interface for maximum number of connections allowed per route.
- *
- * @param params HTTP parameters
- *
- * @return lookup interface for maximum number of connections allowed per route.
- */
- public static ConnPerRoute getMaxConnectionsPerRoute(final HttpParams params) {
- Args.notNull(params, "HTTP parameters");
- ConnPerRoute connPerRoute = (ConnPerRoute) params.getParameter(MAX_CONNECTIONS_PER_ROUTE);
- if (connPerRoute == null) {
- connPerRoute = DEFAULT_CONN_PER_ROUTE;
- }
- return connPerRoute;
- }
-
- /**
- * Sets the maximum number of connections allowed.
- *
- * @param params HTTP parameters
- * @param maxTotalConnections The maximum number of connections allowed.
- */
- public static void setMaxTotalConnections(
- final HttpParams params,
- final int maxTotalConnections) {
- Args.notNull(params, "HTTP parameters");
- params.setIntParameter(MAX_TOTAL_CONNECTIONS, maxTotalConnections);
- }
-
- /**
- * Gets the maximum number of connections allowed.
- *
- * @param params HTTP parameters
- *
- * @return The maximum number of connections allowed.
- */
- public static int getMaxTotalConnections(
- final HttpParams params) {
- Args.notNull(params, "HTTP parameters");
- return params.getIntParameter(MAX_TOTAL_CONNECTIONS, DEFAULT_MAX_TOTAL_CONNECTIONS);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnPerRoute.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnPerRoute.java
deleted file mode 100644
index ebaad93cb..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnPerRoute.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.params;
-
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-
-/**
- * This interface is intended for looking up maximum number of connections
- * allowed for a given route. This class can be used by pooling
- * {@link ch.boye.httpclientandroidlib.conn.ClientConnectionManager connection managers} for
- * a fine-grained control of connections on a per route basis.
- *
- * @since 4.0
- *
- * @deprecated (4.3) no longer used.
- */
-@Deprecated
-public interface ConnPerRoute {
-
- int getMaxForRoute(HttpRoute route);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnPerRouteBean.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnPerRouteBean.java
deleted file mode 100644
index 6cc6da8ab..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnPerRouteBean.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.params;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * This class maintains a map of HTTP routes to maximum number of connections allowed
- * for those routes. This class can be used by pooling
- * {@link ch.boye.httpclientandroidlib.conn.ClientConnectionManager connection managers} for
- * a fine-grained control of connections on a per route basis.
- *
- * @since 4.0
- *
- * @deprecated (4.2) use {@link ch.boye.httpclientandroidlib.pool.ConnPoolControl}
- */
-@Deprecated
-@ThreadSafe
-public final class ConnPerRouteBean implements ConnPerRoute {
-
- /** The default maximum number of connections allowed per host */
- public static final int DEFAULT_MAX_CONNECTIONS_PER_ROUTE = 2; // Per RFC 2616 sec 8.1.4
-
- private final ConcurrentHashMap<HttpRoute, Integer> maxPerHostMap;
-
- private volatile int defaultMax;
-
- public ConnPerRouteBean(final int defaultMax) {
- super();
- this.maxPerHostMap = new ConcurrentHashMap<HttpRoute, Integer>();
- setDefaultMaxPerRoute(defaultMax);
- }
-
- public ConnPerRouteBean() {
- this(DEFAULT_MAX_CONNECTIONS_PER_ROUTE);
- }
-
- public int getDefaultMax() {
- return this.defaultMax;
- }
-
- /**
- * @since 4.1
- */
- public int getDefaultMaxPerRoute() {
- return this.defaultMax;
- }
-
- public void setDefaultMaxPerRoute(final int max) {
- Args.positive(max, "Defautl max per route");
- this.defaultMax = max;
- }
-
- public void setMaxForRoute(final HttpRoute route, final int max) {
- Args.notNull(route, "HTTP route");
- Args.positive(max, "Max per route");
- this.maxPerHostMap.put(route, Integer.valueOf(max));
- }
-
- public int getMaxForRoute(final HttpRoute route) {
- Args.notNull(route, "HTTP route");
- final Integer max = this.maxPerHostMap.get(route);
- if (max != null) {
- return max.intValue();
- } else {
- return this.defaultMax;
- }
- }
-
- public void setMaxForRoutes(final Map<HttpRoute, Integer> map) {
- if (map == null) {
- return;
- }
- this.maxPerHostMap.clear();
- this.maxPerHostMap.putAll(map);
- }
-
- @Override
- public String toString() {
- return this.maxPerHostMap.toString();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRoutePNames.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRoutePNames.java
deleted file mode 100644
index 083216b14..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRoutePNames.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.params;
-
-/**
- * Parameter names for connection routing.
- *
- * @since 4.0
- *
- * @deprecated (4.3) use {@link ch.boye.httpclientandroidlib.client.config.RequestConfig}.
- */
-@Deprecated
-public interface ConnRoutePNames {
-
- /**
- * Parameter for the default proxy.
- * The default value will be used by some
- * {@link ch.boye.httpclientandroidlib.conn.routing.HttpRoutePlanner HttpRoutePlanner}
- * implementations, in particular the default implementation.
- * <p>
- * This parameter expects a value of type {@link ch.boye.httpclientandroidlib.HttpHost}.
- * </p>
- */
- public static final String DEFAULT_PROXY = "http.route.default-proxy";
-
- /**
- * Parameter for the local address.
- * On machines with multiple network interfaces, this parameter
- * can be used to select the network interface from which the
- * connection originates.
- * It will be interpreted by the standard
- * {@link ch.boye.httpclientandroidlib.conn.routing.HttpRoutePlanner HttpRoutePlanner}
- * implementations, in particular the default implementation.
- * <p>
- * This parameter expects a value of type {@link java.net.InetAddress}.
- * </p>
- */
- public static final String LOCAL_ADDRESS = "http.route.local-address";
-
- /**
- * Parameter for an forced route.
- * The forced route will be interpreted by the standard
- * {@link ch.boye.httpclientandroidlib.conn.routing.HttpRoutePlanner HttpRoutePlanner}
- * implementations.
- * Instead of computing a route, the given forced route will be
- * returned, even if it points to the wrong target host.
- * <p>
- * This parameter expects a value of type
- * {@link ch.boye.httpclientandroidlib.conn.routing.HttpRoute HttpRoute}.
- * </p>
- */
- public static final String FORCED_ROUTE = "http.route.forced-route";
-
-}
-
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRouteParamBean.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRouteParamBean.java
deleted file mode 100644
index d3018ad0b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRouteParamBean.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.params;
-
-import java.net.InetAddress;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-import ch.boye.httpclientandroidlib.params.HttpAbstractParamBean;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * This is a Java Bean class that can be used to wrap an instance of
- * {@link HttpParams} and manipulate connection routing parameters
- * using Java Beans conventions.
- *
- * @since 4.0
- *
- * @deprecated (4.3) use {@link ch.boye.httpclientandroidlib.client.config.RequestConfig}.
- */
-@Deprecated
-@NotThreadSafe
-public class ConnRouteParamBean extends HttpAbstractParamBean {
-
- public ConnRouteParamBean (final HttpParams params) {
- super(params);
- }
-
- /** @see ConnRoutePNames#DEFAULT_PROXY */
- public void setDefaultProxy (final HttpHost defaultProxy) {
- params.setParameter(ConnRoutePNames.DEFAULT_PROXY, defaultProxy);
- }
-
- /** @see ConnRoutePNames#LOCAL_ADDRESS */
- public void setLocalAddress (final InetAddress address) {
- params.setParameter(ConnRoutePNames.LOCAL_ADDRESS, address);
- }
-
- /** @see ConnRoutePNames#FORCED_ROUTE */
- public void setForcedRoute (final HttpRoute route) {
- params.setParameter(ConnRoutePNames.FORCED_ROUTE, route);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRouteParams.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRouteParams.java
deleted file mode 100644
index 241953dbd..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/ConnRouteParams.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.params;
-
-import java.net.InetAddress;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * An adaptor for manipulating HTTP routing parameters
- * in {@link HttpParams}.
- *
- * @since 4.0
- *
- * @deprecated (4.3) use {@link ch.boye.httpclientandroidlib.client.config.RequestConfig}.
- */
-@Deprecated
-@Immutable
-public class ConnRouteParams implements ConnRoutePNames {
-
- /**
- * A special value indicating "no host".
- * This relies on a nonsense scheme name to avoid conflicts
- * with actual hosts. Note that this is a <i>valid</i> host.
- */
- public static final HttpHost NO_HOST =
- new HttpHost("127.0.0.255", 0, "no-host"); // Immutable
-
- /**
- * A special value indicating "no route".
- * This is a route with {@link #NO_HOST} as the target.
- */
- public static final HttpRoute NO_ROUTE = new HttpRoute(NO_HOST); // Immutable
-
- /** Disabled default constructor. */
- private ConnRouteParams() {
- // no body
- }
-
- /**
- * Obtains the {@link ConnRoutePNames#DEFAULT_PROXY DEFAULT_PROXY}
- * parameter value.
- * {@link #NO_HOST} will be mapped to <code>null</code>,
- * to allow unsetting in a hierarchy.
- *
- * @param params the parameters in which to look up
- *
- * @return the default proxy set in the argument parameters, or
- * <code>null</code> if not set
- */
- public static HttpHost getDefaultProxy(final HttpParams params) {
- Args.notNull(params, "Parameters");
- HttpHost proxy = (HttpHost)
- params.getParameter(DEFAULT_PROXY);
- if ((proxy != null) && NO_HOST.equals(proxy)) {
- // value is explicitly unset
- proxy = null;
- }
- return proxy;
- }
-
- /**
- * Sets the {@link ConnRoutePNames#DEFAULT_PROXY DEFAULT_PROXY}
- * parameter value.
- *
- * @param params the parameters in which to set the value
- * @param proxy the value to set, may be <code>null</code>.
- * Note that {@link #NO_HOST} will be mapped to
- * <code>null</code> by {@link #getDefaultProxy},
- * to allow for explicit unsetting in hierarchies.
- */
- public static void setDefaultProxy(final HttpParams params,
- final HttpHost proxy) {
- Args.notNull(params, "Parameters");
- params.setParameter(DEFAULT_PROXY, proxy);
- }
-
- /**
- * Obtains the {@link ConnRoutePNames#FORCED_ROUTE FORCED_ROUTE}
- * parameter value.
- * {@link #NO_ROUTE} will be mapped to <code>null</code>,
- * to allow unsetting in a hierarchy.
- *
- * @param params the parameters in which to look up
- *
- * @return the forced route set in the argument parameters, or
- * <code>null</code> if not set
- */
- public static HttpRoute getForcedRoute(final HttpParams params) {
- Args.notNull(params, "Parameters");
- HttpRoute route = (HttpRoute)
- params.getParameter(FORCED_ROUTE);
- if ((route != null) && NO_ROUTE.equals(route)) {
- // value is explicitly unset
- route = null;
- }
- return route;
- }
-
- /**
- * Sets the {@link ConnRoutePNames#FORCED_ROUTE FORCED_ROUTE}
- * parameter value.
- *
- * @param params the parameters in which to set the value
- * @param route the value to set, may be <code>null</code>.
- * Note that {@link #NO_ROUTE} will be mapped to
- * <code>null</code> by {@link #getForcedRoute},
- * to allow for explicit unsetting in hierarchies.
- */
- public static void setForcedRoute(final HttpParams params,
- final HttpRoute route) {
- Args.notNull(params, "Parameters");
- params.setParameter(FORCED_ROUTE, route);
- }
-
- /**
- * Obtains the {@link ConnRoutePNames#LOCAL_ADDRESS LOCAL_ADDRESS}
- * parameter value.
- * There is no special value that would automatically be mapped to
- * <code>null</code>. You can use the wildcard address (0.0.0.0 for IPv4,
- * :: for IPv6) to override a specific local address in a hierarchy.
- *
- * @param params the parameters in which to look up
- *
- * @return the local address set in the argument parameters, or
- * <code>null</code> if not set
- */
- public static InetAddress getLocalAddress(final HttpParams params) {
- Args.notNull(params, "Parameters");
- final InetAddress local = (InetAddress)
- params.getParameter(LOCAL_ADDRESS);
- // no explicit unsetting
- return local;
- }
-
- /**
- * Sets the {@link ConnRoutePNames#LOCAL_ADDRESS LOCAL_ADDRESS}
- * parameter value.
- *
- * @param params the parameters in which to set the value
- * @param local the value to set, may be <code>null</code>
- */
- public static void setLocalAddress(final HttpParams params,
- final InetAddress local) {
- Args.notNull(params, "Parameters");
- params.setParameter(LOCAL_ADDRESS, local);
- }
-
-}
-
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/package-info.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/package-info.java
deleted file mode 100644
index 32b359e3e..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/package-info.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-/**
- * Deprecated.
- * @deprecated (4.3).
- */
-package ch.boye.httpclientandroidlib.conn.params;
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/BasicRouteDirector.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/BasicRouteDirector.java
deleted file mode 100644
index 9c653eb3c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/BasicRouteDirector.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.routing;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * Basic {@link HttpRouteDirector} implementation.
- *
- * @since 4.0
- */
-@Immutable
-public class BasicRouteDirector implements HttpRouteDirector {
-
- /**
- * Provides the next step.
- *
- * @param plan the planned route
- * @param fact the currently established route, or
- * <code>null</code> if nothing is established
- *
- * @return one of the constants defined in this class, indicating
- * either the next step to perform, or success, or failure.
- * 0 is for success, a negative value for failure.
- */
- public int nextStep(final RouteInfo plan, final RouteInfo fact) {
- Args.notNull(plan, "Planned route");
-
- int step = UNREACHABLE;
-
- if ((fact == null) || (fact.getHopCount() < 1)) {
- step = firstStep(plan);
- } else if (plan.getHopCount() > 1) {
- step = proxiedStep(plan, fact);
- } else {
- step = directStep(plan, fact);
- }
-
- return step;
-
- } // nextStep
-
-
- /**
- * Determines the first step to establish a route.
- *
- * @param plan the planned route
- *
- * @return the first step
- */
- protected int firstStep(final RouteInfo plan) {
-
- return (plan.getHopCount() > 1) ?
- CONNECT_PROXY : CONNECT_TARGET;
- }
-
-
- /**
- * Determines the next step to establish a direct connection.
- *
- * @param plan the planned route
- * @param fact the currently established route
- *
- * @return one of the constants defined in this class, indicating
- * either the next step to perform, or success, or failure
- */
- protected int directStep(final RouteInfo plan, final RouteInfo fact) {
-
- if (fact.getHopCount() > 1) {
- return UNREACHABLE;
- }
- if (!plan.getTargetHost().equals(fact.getTargetHost()))
- {
- return UNREACHABLE;
- // If the security is too low, we could now suggest to layer
- // a secure protocol on the direct connection. Layering on direct
- // connections has not been supported in HttpClient 3.x, we don't
- // consider it here until there is a real-life use case for it.
- }
-
- // Should we tolerate if security is better than planned?
- // (plan.isSecure() && !fact.isSecure())
- if (plan.isSecure() != fact.isSecure()) {
- return UNREACHABLE;
- }
-
- // Local address has to match only if the plan specifies one.
- if ((plan.getLocalAddress() != null) &&
- !plan.getLocalAddress().equals(fact.getLocalAddress())
- ) {
- return UNREACHABLE;
- }
-
- return COMPLETE;
- }
-
-
- /**
- * Determines the next step to establish a connection via proxy.
- *
- * @param plan the planned route
- * @param fact the currently established route
- *
- * @return one of the constants defined in this class, indicating
- * either the next step to perform, or success, or failure
- */
- protected int proxiedStep(final RouteInfo plan, final RouteInfo fact) {
-
- if (fact.getHopCount() <= 1) {
- return UNREACHABLE;
- }
- if (!plan.getTargetHost().equals(fact.getTargetHost())) {
- return UNREACHABLE;
- }
- final int phc = plan.getHopCount();
- final int fhc = fact.getHopCount();
- if (phc < fhc) {
- return UNREACHABLE;
- }
-
- for (int i=0; i<fhc-1; i++) {
- if (!plan.getHopTarget(i).equals(fact.getHopTarget(i))) {
- return UNREACHABLE;
- }
- }
- // now we know that the target matches and proxies so far are the same
- if (phc > fhc)
- {
- return TUNNEL_PROXY; // need to extend the proxy chain
- }
-
- // proxy chain and target are the same, check tunnelling and layering
- if ((fact.isTunnelled() && !plan.isTunnelled()) ||
- (fact.isLayered() && !plan.isLayered())) {
- return UNREACHABLE;
- }
-
- if (plan.isTunnelled() && !fact.isTunnelled()) {
- return TUNNEL_TARGET;
- }
- if (plan.isLayered() && !fact.isLayered()) {
- return LAYER_PROTOCOL;
- }
-
- // tunnel and layering are the same, remains to check the security
- // Should we tolerate if security is better than planned?
- // (plan.isSecure() && !fact.isSecure())
- if (plan.isSecure() != fact.isSecure()) {
- return UNREACHABLE;
- }
-
- return COMPLETE;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRoute.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRoute.java
deleted file mode 100644
index 7bf02d14c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRoute.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.routing;
-
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-import ch.boye.httpclientandroidlib.util.LangUtils;
-
-/**
- * The route for a request.
- *
- * @since 4.0
- */
-@Immutable
-public final class HttpRoute implements RouteInfo, Cloneable {
-
- /** The target host to connect to. */
- private final HttpHost targetHost;
-
- /**
- * The local address to connect from.
- * <code>null</code> indicates that the default should be used.
- */
- private final InetAddress localAddress;
-
- /** The proxy servers, if any. Never null. */
- private final List<HttpHost> proxyChain;
-
- /** Whether the the route is tunnelled through the proxy. */
- private final TunnelType tunnelled;
-
- /** Whether the route is layered. */
- private final LayerType layered;
-
- /** Whether the route is (supposed to be) secure. */
- private final boolean secure;
-
- private HttpRoute(final HttpHost target, final InetAddress local, final List<HttpHost> proxies,
- final boolean secure, final TunnelType tunnelled, final LayerType layered) {
- Args.notNull(target, "Target host");
- this.targetHost = target;
- this.localAddress = local;
- if (proxies != null && !proxies.isEmpty()) {
- this.proxyChain = new ArrayList<HttpHost>(proxies);
- } else {
- this.proxyChain = null;
- }
- if (tunnelled == TunnelType.TUNNELLED) {
- Args.check(this.proxyChain != null, "Proxy required if tunnelled");
- }
- this.secure = secure;
- this.tunnelled = tunnelled != null ? tunnelled : TunnelType.PLAIN;
- this.layered = layered != null ? layered : LayerType.PLAIN;
- }
-
- /**
- * Creates a new route with all attributes specified explicitly.
- *
- * @param target the host to which to route
- * @param local the local address to route from, or
- * <code>null</code> for the default
- * @param proxies the proxy chain to use, or
- * <code>null</code> for a direct route
- * @param secure <code>true</code> if the route is (to be) secure,
- * <code>false</code> otherwise
- * @param tunnelled the tunnel type of this route
- * @param layered the layering type of this route
- */
- public HttpRoute(final HttpHost target, final InetAddress local, final HttpHost[] proxies,
- final boolean secure, final TunnelType tunnelled, final LayerType layered) {
- this(target, local, proxies != null ? Arrays.asList(proxies) : null,
- secure, tunnelled, layered);
- }
-
- /**
- * Creates a new route with at most one proxy.
- *
- * @param target the host to which to route
- * @param local the local address to route from, or
- * <code>null</code> for the default
- * @param proxy the proxy to use, or
- * <code>null</code> for a direct route
- * @param secure <code>true</code> if the route is (to be) secure,
- * <code>false</code> otherwise
- * @param tunnelled <code>true</code> if the route is (to be) tunnelled
- * via the proxy,
- * <code>false</code> otherwise
- * @param layered <code>true</code> if the route includes a
- * layered protocol,
- * <code>false</code> otherwise
- */
- public HttpRoute(final HttpHost target, final InetAddress local, final HttpHost proxy,
- final boolean secure, final TunnelType tunnelled, final LayerType layered) {
- this(target, local, proxy != null ? Collections.singletonList(proxy) : null,
- secure, tunnelled, layered);
- }
-
- /**
- * Creates a new direct route.
- * That is a route without a proxy.
- *
- * @param target the host to which to route
- * @param local the local address to route from, or
- * <code>null</code> for the default
- * @param secure <code>true</code> if the route is (to be) secure,
- * <code>false</code> otherwise
- */
- public HttpRoute(final HttpHost target, final InetAddress local, final boolean secure) {
- this(target, local, Collections.<HttpHost>emptyList(), secure,
- TunnelType.PLAIN, LayerType.PLAIN);
- }
-
- /**
- * Creates a new direct insecure route.
- *
- * @param target the host to which to route
- */
- public HttpRoute(final HttpHost target) {
- this(target, null, Collections.<HttpHost>emptyList(), false,
- TunnelType.PLAIN, LayerType.PLAIN);
- }
-
- /**
- * Creates a new route through a proxy.
- * When using this constructor, the <code>proxy</code> MUST be given.
- * For convenience, it is assumed that a secure connection will be
- * layered over a tunnel through the proxy.
- *
- * @param target the host to which to route
- * @param local the local address to route from, or
- * <code>null</code> for the default
- * @param proxy the proxy to use
- * @param secure <code>true</code> if the route is (to be) secure,
- * <code>false</code> otherwise
- */
- public HttpRoute(final HttpHost target, final InetAddress local, final HttpHost proxy,
- final boolean secure) {
- this(target, local, Collections.singletonList(Args.notNull(proxy, "Proxy host")), secure,
- secure ? TunnelType.TUNNELLED : TunnelType.PLAIN,
- secure ? LayerType.LAYERED : LayerType.PLAIN);
- }
-
- /**
- * Creates a new plain route through a proxy.
- *
- * @param target the host to which to route
- * @param proxy the proxy to use
- *
- * @since 4.3
- */
- public HttpRoute(final HttpHost target, final HttpHost proxy) {
- this(target, null, proxy, false);
- }
-
- public final HttpHost getTargetHost() {
- return this.targetHost;
- }
-
- public final InetAddress getLocalAddress() {
- return this.localAddress;
- }
-
- public final InetSocketAddress getLocalSocketAddress() {
- return this.localAddress != null ? new InetSocketAddress(this.localAddress, 0) : null;
- }
-
- public final int getHopCount() {
- return proxyChain != null ? proxyChain.size() + 1 : 1;
- }
-
- public final HttpHost getHopTarget(final int hop) {
- Args.notNegative(hop, "Hop index");
- final int hopcount = getHopCount();
- Args.check(hop < hopcount, "Hop index exceeds tracked route length");
- if (hop < hopcount - 1) {
- return this.proxyChain.get(hop);
- } else {
- return this.targetHost;
- }
- }
-
- public final HttpHost getProxyHost() {
- return proxyChain != null && !this.proxyChain.isEmpty() ? this.proxyChain.get(0) : null;
- }
-
- public final TunnelType getTunnelType() {
- return this.tunnelled;
- }
-
- public final boolean isTunnelled() {
- return (this.tunnelled == TunnelType.TUNNELLED);
- }
-
- public final LayerType getLayerType() {
- return this.layered;
- }
-
- public final boolean isLayered() {
- return (this.layered == LayerType.LAYERED);
- }
-
- public final boolean isSecure() {
- return this.secure;
- }
-
- /**
- * Compares this route to another.
- *
- * @param obj the object to compare with
- *
- * @return <code>true</code> if the argument is the same route,
- * <code>false</code>
- */
- @Override
- public final boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj instanceof HttpRoute) {
- final HttpRoute that = (HttpRoute) obj;
- return
- // Do the cheapest tests first
- (this.secure == that.secure) &&
- (this.tunnelled == that.tunnelled) &&
- (this.layered == that.layered) &&
- LangUtils.equals(this.targetHost, that.targetHost) &&
- LangUtils.equals(this.localAddress, that.localAddress) &&
- LangUtils.equals(this.proxyChain, that.proxyChain);
- } else {
- return false;
- }
- }
-
-
- /**
- * Generates a hash code for this route.
- *
- * @return the hash code
- */
- @Override
- public final int hashCode() {
- int hash = LangUtils.HASH_SEED;
- hash = LangUtils.hashCode(hash, this.targetHost);
- hash = LangUtils.hashCode(hash, this.localAddress);
- if (this.proxyChain != null) {
- for (final HttpHost element : this.proxyChain) {
- hash = LangUtils.hashCode(hash, element);
- }
- }
- hash = LangUtils.hashCode(hash, this.secure);
- hash = LangUtils.hashCode(hash, this.tunnelled);
- hash = LangUtils.hashCode(hash, this.layered);
- return hash;
- }
-
- /**
- * Obtains a description of this route.
- *
- * @return a human-readable representation of this route
- */
- @Override
- public final String toString() {
- final StringBuilder cab = new StringBuilder(50 + getHopCount()*30);
- if (this.localAddress != null) {
- cab.append(this.localAddress);
- cab.append("->");
- }
- cab.append('{');
- if (this.tunnelled == TunnelType.TUNNELLED) {
- cab.append('t');
- }
- if (this.layered == LayerType.LAYERED) {
- cab.append('l');
- }
- if (this.secure) {
- cab.append('s');
- }
- cab.append("}->");
- if (this.proxyChain != null) {
- for (final HttpHost aProxyChain : this.proxyChain) {
- cab.append(aProxyChain);
- cab.append("->");
- }
- }
- cab.append(this.targetHost);
- return cab.toString();
- }
-
- // default implementation of clone() is sufficient
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRouteDirector.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRouteDirector.java
deleted file mode 100644
index f8b774603..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRouteDirector.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.routing;
-
-/**
- * Provides directions on establishing a route.
- * Implementations of this interface compare a planned route with
- * a tracked route and indicate the next step required.
- *
- * @since 4.0
- */
-public interface HttpRouteDirector {
-
- /** Indicates that the route can not be established at all. */
- public final static int UNREACHABLE = -1;
-
- /** Indicates that the route is complete. */
- public final static int COMPLETE = 0;
-
- /** Step: open connection to target. */
- public final static int CONNECT_TARGET = 1;
-
- /** Step: open connection to proxy. */
- public final static int CONNECT_PROXY = 2;
-
- /** Step: tunnel through proxy to target. */
- public final static int TUNNEL_TARGET = 3;
-
- /** Step: tunnel through proxy to other proxy. */
- public final static int TUNNEL_PROXY = 4;
-
- /** Step: layer protocol (over tunnel). */
- public final static int LAYER_PROTOCOL = 5;
-
-
- /**
- * Provides the next step.
- *
- * @param plan the planned route
- * @param fact the currently established route, or
- * <code>null</code> if nothing is established
- *
- * @return one of the constants defined in this interface, indicating
- * either the next step to perform, or success, or failure.
- * 0 is for success, a negative value for failure.
- */
- public int nextStep(RouteInfo plan, RouteInfo fact);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRoutePlanner.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRoutePlanner.java
deleted file mode 100644
index 9e8ba19d3..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/HttpRoutePlanner.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.routing;
-
-import ch.boye.httpclientandroidlib.HttpException;
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.HttpRequest;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-
-/**
- * Encapsulates logic to compute a {@link HttpRoute} to a target host.
- * Implementations may for example be based on parameters, or on the
- * standard Java system properties.
- * <p/>
- * Implementations of this interface must be thread-safe. Access to shared
- * data must be synchronized as methods of this interface may be executed
- * from multiple threads.
- *
- * @since 4.0
- */
-public interface HttpRoutePlanner {
-
- /**
- * Determines the route for a request.
- *
- * @param target the target host for the request.
- * Implementations may accept <code>null</code>
- * if they can still determine a route, for example
- * to a default target or by inspecting the request.
- * @param request the request to execute
- * @param context the context to use for the subsequent execution.
- * Implementations may accept <code>null</code>.
- *
- * @return the route that the request should take
- *
- * @throws HttpException in case of a problem
- */
- public HttpRoute determineRoute(HttpHost target,
- HttpRequest request,
- HttpContext context) throws HttpException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/RouteInfo.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/RouteInfo.java
deleted file mode 100644
index 0784b7894..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/RouteInfo.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.routing;
-
-import java.net.InetAddress;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-
-/**
- * Read-only interface for route information.
- *
- * @since 4.0
- */
-public interface RouteInfo {
-
- /**
- * The tunnelling type of a route.
- * Plain routes are established by connecting to the target or
- * the first proxy.
- * Tunnelled routes are established by connecting to the first proxy
- * and tunnelling through all proxies to the target.
- * Routes without a proxy cannot be tunnelled.
- */
- public enum TunnelType { PLAIN, TUNNELLED }
-
- /**
- * The layering type of a route.
- * Plain routes are established by connecting or tunnelling.
- * Layered routes are established by layering a protocol such as TLS/SSL
- * over an existing connection.
- * Protocols can only be layered over a tunnel to the target, or
- * or over a direct connection without proxies.
- * <br/>
- * Layering a protocol
- * over a direct connection makes little sense, since the connection
- * could be established with the new protocol in the first place.
- * But we don't want to exclude that use case.
- */
- public enum LayerType { PLAIN, LAYERED }
-
- /**
- * Obtains the target host.
- *
- * @return the target host
- */
- HttpHost getTargetHost();
-
- /**
- * Obtains the local address to connect from.
- *
- * @return the local address,
- * or <code>null</code>
- */
- InetAddress getLocalAddress();
-
- /**
- * Obtains the number of hops in this route.
- * A direct route has one hop. A route through a proxy has two hops.
- * A route through a chain of <i>n</i> proxies has <i>n+1</i> hops.
- *
- * @return the number of hops in this route
- */
- int getHopCount();
-
- /**
- * Obtains the target of a hop in this route.
- * The target of the last hop is the {@link #getTargetHost target host},
- * the target of previous hops is the respective proxy in the chain.
- * For a route through exactly one proxy, target of hop 0 is the proxy
- * and target of hop 1 is the target host.
- *
- * @param hop index of the hop for which to get the target,
- * 0 for first
- *
- * @return the target of the given hop
- *
- * @throws IllegalArgumentException
- * if the argument is negative or not less than
- * {@link #getHopCount getHopCount()}
- */
- HttpHost getHopTarget(int hop);
-
- /**
- * Obtains the first proxy host.
- *
- * @return the first proxy in the proxy chain, or
- * <code>null</code> if this route is direct
- */
- HttpHost getProxyHost();
-
- /**
- * Obtains the tunnel type of this route.
- * If there is a proxy chain, only end-to-end tunnels are considered.
- *
- * @return the tunnelling type
- */
- TunnelType getTunnelType();
-
- /**
- * Checks whether this route is tunnelled through a proxy.
- * If there is a proxy chain, only end-to-end tunnels are considered.
- *
- * @return <code>true</code> if tunnelled end-to-end through at least
- * one proxy,
- * <code>false</code> otherwise
- */
- boolean isTunnelled();
-
- /**
- * Obtains the layering type of this route.
- * In the presence of proxies, only layering over an end-to-end tunnel
- * is considered.
- *
- * @return the layering type
- */
- LayerType getLayerType();
-
- /**
- * Checks whether this route includes a layered protocol.
- * In the presence of proxies, only layering over an end-to-end tunnel
- * is considered.
- *
- * @return <code>true</code> if layered,
- * <code>false</code> otherwise
- */
- boolean isLayered();
-
- /**
- * Checks whether this route is secure.
- *
- * @return <code>true</code> if secure,
- * <code>false</code> otherwise
- */
- boolean isSecure();
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/RouteTracker.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/RouteTracker.java
deleted file mode 100644
index 9a900319c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/RouteTracker.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.routing;
-
-import java.net.InetAddress;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-import ch.boye.httpclientandroidlib.util.Asserts;
-import ch.boye.httpclientandroidlib.util.LangUtils;
-
-/**
- * Helps tracking the steps in establishing a route.
- *
- * @since 4.0
- */
-@NotThreadSafe
-public final class RouteTracker implements RouteInfo, Cloneable {
-
- /** The target host to connect to. */
- private final HttpHost targetHost;
-
- /**
- * The local address to connect from.
- * <code>null</code> indicates that the default should be used.
- */
- private final InetAddress localAddress;
-
- // the attributes above are fixed at construction time
- // now follow attributes that indicate the established route
-
- /** Whether the first hop of the route is established. */
- private boolean connected;
-
- /** The proxy chain, if any. */
- private HttpHost[] proxyChain;
-
- /** Whether the the route is tunnelled end-to-end through proxies. */
- private TunnelType tunnelled;
-
- /** Whether the route is layered over a tunnel. */
- private LayerType layered;
-
- /** Whether the route is secure. */
- private boolean secure;
-
- /**
- * Creates a new route tracker.
- * The target and origin need to be specified at creation time.
- *
- * @param target the host to which to route
- * @param local the local address to route from, or
- * <code>null</code> for the default
- */
- public RouteTracker(final HttpHost target, final InetAddress local) {
- Args.notNull(target, "Target host");
- this.targetHost = target;
- this.localAddress = local;
- this.tunnelled = TunnelType.PLAIN;
- this.layered = LayerType.PLAIN;
- }
-
- /**
- * @since 4.2
- */
- public void reset() {
- this.connected = false;
- this.proxyChain = null;
- this.tunnelled = TunnelType.PLAIN;
- this.layered = LayerType.PLAIN;
- this.secure = false;
- }
-
- /**
- * Creates a new tracker for the given route.
- * Only target and origin are taken from the route,
- * everything else remains to be tracked.
- *
- * @param route the route to track
- */
- public RouteTracker(final HttpRoute route) {
- this(route.getTargetHost(), route.getLocalAddress());
- }
-
- /**
- * Tracks connecting to the target.
- *
- * @param secure <code>true</code> if the route is secure,
- * <code>false</code> otherwise
- */
- public final void connectTarget(final boolean secure) {
- Asserts.check(!this.connected, "Already connected");
- this.connected = true;
- this.secure = secure;
- }
-
- /**
- * Tracks connecting to the first proxy.
- *
- * @param proxy the proxy connected to
- * @param secure <code>true</code> if the route is secure,
- * <code>false</code> otherwise
- */
- public final void connectProxy(final HttpHost proxy, final boolean secure) {
- Args.notNull(proxy, "Proxy host");
- Asserts.check(!this.connected, "Already connected");
- this.connected = true;
- this.proxyChain = new HttpHost[]{ proxy };
- this.secure = secure;
- }
-
- /**
- * Tracks tunnelling to the target.
- *
- * @param secure <code>true</code> if the route is secure,
- * <code>false</code> otherwise
- */
- public final void tunnelTarget(final boolean secure) {
- Asserts.check(this.connected, "No tunnel unless connected");
- Asserts.notNull(this.proxyChain, "No tunnel without proxy");
- this.tunnelled = TunnelType.TUNNELLED;
- this.secure = secure;
- }
-
- /**
- * Tracks tunnelling to a proxy in a proxy chain.
- * This will extend the tracked proxy chain, but it does not mark
- * the route as tunnelled. Only end-to-end tunnels are considered there.
- *
- * @param proxy the proxy tunnelled to
- * @param secure <code>true</code> if the route is secure,
- * <code>false</code> otherwise
- */
- public final void tunnelProxy(final HttpHost proxy, final boolean secure) {
- Args.notNull(proxy, "Proxy host");
- Asserts.check(this.connected, "No tunnel unless connected");
- Asserts.notNull(this.proxyChain, "No tunnel without proxy");
- // prepare an extended proxy chain
- final HttpHost[] proxies = new HttpHost[this.proxyChain.length+1];
- System.arraycopy(this.proxyChain, 0,
- proxies, 0, this.proxyChain.length);
- proxies[proxies.length-1] = proxy;
-
- this.proxyChain = proxies;
- this.secure = secure;
- }
-
- /**
- * Tracks layering a protocol.
- *
- * @param secure <code>true</code> if the route is secure,
- * <code>false</code> otherwise
- */
- public final void layerProtocol(final boolean secure) {
- // it is possible to layer a protocol over a direct connection,
- // although this case is probably not considered elsewhere
- Asserts.check(this.connected, "No layered protocol unless connected");
- this.layered = LayerType.LAYERED;
- this.secure = secure;
- }
-
- public final HttpHost getTargetHost() {
- return this.targetHost;
- }
-
- public final InetAddress getLocalAddress() {
- return this.localAddress;
- }
-
- public final int getHopCount() {
- int hops = 0;
- if (this.connected) {
- if (proxyChain == null) {
- hops = 1;
- } else {
- hops = proxyChain.length + 1;
- }
- }
- return hops;
- }
-
- public final HttpHost getHopTarget(final int hop) {
- Args.notNegative(hop, "Hop index");
- final int hopcount = getHopCount();
- Args.check(hop < hopcount, "Hop index exceeds tracked route length");
- HttpHost result = null;
- if (hop < hopcount-1) {
- result = this.proxyChain[hop];
- } else {
- result = this.targetHost;
- }
-
- return result;
- }
-
- public final HttpHost getProxyHost() {
- return (this.proxyChain == null) ? null : this.proxyChain[0];
- }
-
- public final boolean isConnected() {
- return this.connected;
- }
-
- public final TunnelType getTunnelType() {
- return this.tunnelled;
- }
-
- public final boolean isTunnelled() {
- return (this.tunnelled == TunnelType.TUNNELLED);
- }
-
- public final LayerType getLayerType() {
- return this.layered;
- }
-
- public final boolean isLayered() {
- return (this.layered == LayerType.LAYERED);
- }
-
- public final boolean isSecure() {
- return this.secure;
- }
-
- /**
- * Obtains the tracked route.
- * If a route has been tracked, it is {@link #isConnected connected}.
- * If not connected, nothing has been tracked so far.
- *
- * @return the tracked route, or
- * <code>null</code> if nothing has been tracked so far
- */
- public final HttpRoute toRoute() {
- return !this.connected ?
- null : new HttpRoute(this.targetHost, this.localAddress,
- this.proxyChain, this.secure,
- this.tunnelled, this.layered);
- }
-
- /**
- * Compares this tracked route to another.
- *
- * @param o the object to compare with
- *
- * @return <code>true</code> if the argument is the same tracked route,
- * <code>false</code>
- */
- @Override
- public final boolean equals(final Object o) {
- if (o == this) {
- return true;
- }
- if (!(o instanceof RouteTracker)) {
- return false;
- }
-
- final RouteTracker that = (RouteTracker) o;
- return
- // Do the cheapest checks first
- (this.connected == that.connected) &&
- (this.secure == that.secure) &&
- (this.tunnelled == that.tunnelled) &&
- (this.layered == that.layered) &&
- LangUtils.equals(this.targetHost, that.targetHost) &&
- LangUtils.equals(this.localAddress, that.localAddress) &&
- LangUtils.equals(this.proxyChain, that.proxyChain);
- }
-
- /**
- * Generates a hash code for this tracked route.
- * Route trackers are modifiable and should therefore not be used
- * as lookup keys. Use {@link #toRoute toRoute} to obtain an
- * unmodifiable representation of the tracked route.
- *
- * @return the hash code
- */
- @Override
- public final int hashCode() {
- int hash = LangUtils.HASH_SEED;
- hash = LangUtils.hashCode(hash, this.targetHost);
- hash = LangUtils.hashCode(hash, this.localAddress);
- if (this.proxyChain != null) {
- for (final HttpHost element : this.proxyChain) {
- hash = LangUtils.hashCode(hash, element);
- }
- }
- hash = LangUtils.hashCode(hash, this.connected);
- hash = LangUtils.hashCode(hash, this.secure);
- hash = LangUtils.hashCode(hash, this.tunnelled);
- hash = LangUtils.hashCode(hash, this.layered);
- return hash;
- }
-
- /**
- * Obtains a description of the tracked route.
- *
- * @return a human-readable representation of the tracked route
- */
- @Override
- public final String toString() {
- final StringBuilder cab = new StringBuilder(50 + getHopCount()*30);
-
- cab.append("RouteTracker[");
- if (this.localAddress != null) {
- cab.append(this.localAddress);
- cab.append("->");
- }
- cab.append('{');
- if (this.connected) {
- cab.append('c');
- }
- if (this.tunnelled == TunnelType.TUNNELLED) {
- cab.append('t');
- }
- if (this.layered == LayerType.LAYERED) {
- cab.append('l');
- }
- if (this.secure) {
- cab.append('s');
- }
- cab.append("}->");
- if (this.proxyChain != null) {
- for (final HttpHost element : this.proxyChain) {
- cab.append(element);
- cab.append("->");
- }
- }
- cab.append(this.targetHost);
- cab.append(']');
-
- return cab.toString();
- }
-
-
- // default implementation of clone() is sufficient
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/package-info.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/package-info.java
deleted file mode 100644
index ddd6b8ae8..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/package-info.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-/**
- * Client connection routing APIs.
- */
-package ch.boye.httpclientandroidlib.conn.routing;
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/HostNameResolver.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/HostNameResolver.java
deleted file mode 100644
index 8dcca6902..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/HostNameResolver.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.InetAddress;
-
-/**
- * Hostname to IP address resolver.
- *
- * @since 4.0
- *
- * @deprecated (4.1) Do not use
- */
-@Deprecated
-public interface HostNameResolver {
-
- /**
- * Resolves given hostname to its IP address
- *
- * @param hostname the hostname.
- * @return IP address.
- * @throws IOException
- */
- InetAddress resolve (String hostname) throws IOException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSchemeSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSchemeSocketFactory.java
deleted file mode 100644
index 3833b2360..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSchemeSocketFactory.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-/**
- * Extended {@link SchemeSocketFactory} interface for layered sockets such as SSL/TLS.
- *
- * @since 4.1
- *
- * @deprecated (4.2) use {@link SchemeLayeredSocketFactory}
- */
-@Deprecated
-public interface LayeredSchemeSocketFactory extends SchemeSocketFactory {
-
- /**
- * Returns a socket connected to the given host that is layered over an
- * existing socket. Used primarily for creating secure sockets through
- * proxies.
- *
- * @param socket the existing socket
- * @param target the name of the target host.
- * @param port the port to connect to on the target host
- * @param autoClose a flag for closing the underling socket when the created
- * socket is closed
- *
- * @return Socket a new socket
- *
- * @throws IOException if an I/O error occurs while creating the socket
- * @throws UnknownHostException if the IP address of the host cannot be
- * determined
- */
- Socket createLayeredSocket(
- Socket socket,
- String target,
- int port,
- boolean autoClose
- ) throws IOException, UnknownHostException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactory.java
deleted file mode 100644
index 318e35f9c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-/**
- * A {@link SocketFactory SocketFactory} for layered sockets (SSL/TLS).
- * See there for things to consider when implementing a socket factory.
- *
- * @since 4.0
- *
- * @deprecated (4.1) use {@link SchemeSocketFactory}
- */
-@Deprecated
-public interface LayeredSocketFactory extends SocketFactory {
-
- /**
- * Returns a socket connected to the given host that is layered over an
- * existing socket. Used primarily for creating secure sockets through
- * proxies.
- *
- * @param socket the existing socket
- * @param host the host name/IP
- * @param port the port on the host
- * @param autoClose a flag for closing the underling socket when the created
- * socket is closed
- *
- * @return Socket a new socket
- *
- * @throws IOException if an I/O error occurs while creating the socket
- * @throws UnknownHostException if the IP address of the host cannot be
- * determined
- */
- Socket createSocket(
- Socket socket,
- String host,
- int port,
- boolean autoClose
- ) throws IOException, UnknownHostException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactoryAdaptor.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactoryAdaptor.java
deleted file mode 100644
index 11ebd10cb..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSocketFactoryAdaptor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-/**
- * @deprecated (4.1) do not use
- */
-@Deprecated
-class LayeredSocketFactoryAdaptor extends SocketFactoryAdaptor implements LayeredSocketFactory {
-
- private final LayeredSchemeSocketFactory factory;
-
- LayeredSocketFactoryAdaptor(final LayeredSchemeSocketFactory factory) {
- super(factory);
- this.factory = factory;
- }
-
- public Socket createSocket(
- final Socket socket,
- final String host, final int port, final boolean autoClose) throws IOException, UnknownHostException {
- return this.factory.createLayeredSocket(socket, host, port, autoClose);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/PlainSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/PlainSocketFactory.java
deleted file mode 100644
index efa8f281b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/PlainSocketFactory.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.SocketTimeoutException;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.conn.ConnectTimeoutException;
-import ch.boye.httpclientandroidlib.params.HttpConnectionParams;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * The default class for creating plain (unencrypted) sockets.
- *
- * @since 4.0
- *
- * @deprecated (4.3) use {@link ch.boye.httpclientandroidlib.conn.socket.PlainConnectionSocketFactory}
- */
-@Immutable
-@Deprecated
-public class PlainSocketFactory implements SocketFactory, SchemeSocketFactory {
-
- private final HostNameResolver nameResolver;
-
- /**
- * Gets the default factory.
- *
- * @return the default factory
- */
- public static PlainSocketFactory getSocketFactory() {
- return new PlainSocketFactory();
- }
-
- /**
- * @deprecated (4.1) use {@link ch.boye.httpclientandroidlib.conn.DnsResolver}
- */
- @Deprecated
- public PlainSocketFactory(final HostNameResolver nameResolver) {
- super();
- this.nameResolver = nameResolver;
- }
-
- public PlainSocketFactory() {
- super();
- this.nameResolver = null;
- }
-
- /**
- * @param params Optional parameters. Parameters passed to this method will have no effect.
- * This method will create a unconnected instance of {@link Socket} class
- * using default constructor.
- *
- * @since 4.1
- */
- public Socket createSocket(final HttpParams params) {
- return new Socket();
- }
-
- public Socket createSocket() {
- return new Socket();
- }
-
- /**
- * @since 4.1
- */
- public Socket connectSocket(
- final Socket socket,
- final InetSocketAddress remoteAddress,
- final InetSocketAddress localAddress,
- final HttpParams params) throws IOException, ConnectTimeoutException {
- Args.notNull(remoteAddress, "Remote address");
- Args.notNull(params, "HTTP parameters");
- Socket sock = socket;
- if (sock == null) {
- sock = createSocket();
- }
- if (localAddress != null) {
- sock.setReuseAddress(HttpConnectionParams.getSoReuseaddr(params));
- sock.bind(localAddress);
- }
- final int connTimeout = HttpConnectionParams.getConnectionTimeout(params);
- final int soTimeout = HttpConnectionParams.getSoTimeout(params);
-
- try {
- sock.setSoTimeout(soTimeout);
- sock.connect(remoteAddress, connTimeout);
- } catch (final SocketTimeoutException ex) {
- throw new ConnectTimeoutException("Connect to " + remoteAddress + " timed out");
- }
- return sock;
- }
-
- /**
- * Checks whether a socket connection is secure.
- * This factory creates plain socket connections
- * which are not considered secure.
- *
- * @param sock the connected socket
- *
- * @return <code>false</code>
- */
- public final boolean isSecure(final Socket sock) {
- return false;
- }
-
- /**
- * @deprecated (4.1) Use {@link #connectSocket(Socket, InetSocketAddress, InetSocketAddress, HttpParams)}
- */
- @Deprecated
- public Socket connectSocket(
- final Socket socket,
- final String host, final int port,
- final InetAddress localAddress, final int localPort,
- final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- InetSocketAddress local = null;
- if (localAddress != null || localPort > 0) {
- local = new InetSocketAddress(localAddress, localPort > 0 ? localPort : 0);
- }
- final InetAddress remoteAddress;
- if (this.nameResolver != null) {
- remoteAddress = this.nameResolver.resolve(host);
- } else {
- remoteAddress = InetAddress.getByName(host);
- }
- final InetSocketAddress remote = new InetSocketAddress(remoteAddress, port);
- return connectSocket(socket, remote, local, params);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/Scheme.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/Scheme.java
deleted file mode 100644
index 93a44de35..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/Scheme.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.util.Locale;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.util.Args;
-import ch.boye.httpclientandroidlib.util.LangUtils;
-
-/**
- * Encapsulates specifics of a protocol scheme such as "http" or "https". Schemes are identified
- * by lowercase names. Supported schemes are typically collected in a {@link SchemeRegistry
- * SchemeRegistry}.
- * <p/>
- * For example, to configure support for "https://" URLs, you could write code like the following:
- * <pre>
- * Scheme https = new Scheme("https", 443, new MySecureSocketFactory());
- * SchemeRegistry registry = new SchemeRegistry();
- * registry.register(https);
- * </pre>
- *
- * @since 4.0
- *
- * @deprecated (4.3) use {@link ch.boye.httpclientandroidlib.conn.SchemePortResolver} for default port
- * resolution and {@link ch.boye.httpclientandroidlib.config.Registry} for socket factory lookups.
- */
-@Immutable
-@Deprecated
-public final class Scheme {
-
- /** The name of this scheme, in lowercase. (e.g. http, https) */
- private final String name;
-
- /** The socket factory for this scheme */
- private final SchemeSocketFactory socketFactory;
-
- /** The default port for this scheme */
- private final int defaultPort;
-
- /** Indicates whether this scheme allows for layered connections */
- private final boolean layered;
-
- /** A string representation, for {@link #toString toString}. */
- private String stringRep;
- /*
- * This is used to cache the result of the toString() method
- * Since the method always generates the same value, there's no
- * need to synchronize, and it does not affect immutability.
- */
-
- /**
- * Creates a new scheme.
- * Whether the created scheme allows for layered connections
- * depends on the class of <code>factory</code>.
- *
- * @param name the scheme name, for example "http".
- * The name will be converted to lowercase.
- * @param port the default port for this scheme
- * @param factory the factory for creating sockets for communication
- * with this scheme
- *
- * @since 4.1
- */
- public Scheme(final String name, final int port, final SchemeSocketFactory factory) {
- Args.notNull(name, "Scheme name");
- Args.check(port > 0 && port <= 0xffff, "Port is invalid");
- Args.notNull(factory, "Socket factory");
- this.name = name.toLowerCase(Locale.ENGLISH);
- this.defaultPort = port;
- if (factory instanceof SchemeLayeredSocketFactory) {
- this.layered = true;
- this.socketFactory = factory;
- } else if (factory instanceof LayeredSchemeSocketFactory) {
- this.layered = true;
- this.socketFactory = new SchemeLayeredSocketFactoryAdaptor2((LayeredSchemeSocketFactory) factory);
- } else {
- this.layered = false;
- this.socketFactory = factory;
- }
- }
-
- /**
- * Creates a new scheme.
- * Whether the created scheme allows for layered connections
- * depends on the class of <code>factory</code>.
- *
- * @param name the scheme name, for example "http".
- * The name will be converted to lowercase.
- * @param factory the factory for creating sockets for communication
- * with this scheme
- * @param port the default port for this scheme
- *
- * @deprecated (4.1) Use {@link #Scheme(String, int, SchemeSocketFactory)}
- */
- @Deprecated
- public Scheme(final String name,
- final SocketFactory factory,
- final int port) {
-
- Args.notNull(name, "Scheme name");
- Args.notNull(factory, "Socket factory");
- Args.check(port > 0 && port <= 0xffff, "Port is invalid");
-
- this.name = name.toLowerCase(Locale.ENGLISH);
- if (factory instanceof LayeredSocketFactory) {
- this.socketFactory = new SchemeLayeredSocketFactoryAdaptor(
- (LayeredSocketFactory) factory);
- this.layered = true;
- } else {
- this.socketFactory = new SchemeSocketFactoryAdaptor(factory);
- this.layered = false;
- }
- this.defaultPort = port;
- }
-
- /**
- * Obtains the default port.
- *
- * @return the default port for this scheme
- */
- public final int getDefaultPort() {
- return defaultPort;
- }
-
-
- /**
- * Obtains the socket factory.
- * If this scheme is {@link #isLayered layered}, the factory implements
- * {@link LayeredSocketFactory LayeredSocketFactory}.
- *
- * @return the socket factory for this scheme
- *
- * @deprecated (4.1) Use {@link #getSchemeSocketFactory()}
- */
- @Deprecated
- public final SocketFactory getSocketFactory() {
- if (this.socketFactory instanceof SchemeSocketFactoryAdaptor) {
- return ((SchemeSocketFactoryAdaptor) this.socketFactory).getFactory();
- } else {
- if (this.layered) {
- return new LayeredSocketFactoryAdaptor(
- (LayeredSchemeSocketFactory) this.socketFactory);
- } else {
- return new SocketFactoryAdaptor(this.socketFactory);
- }
- }
- }
-
- /**
- * Obtains the socket factory.
- * If this scheme is {@link #isLayered layered}, the factory implements
- * {@link LayeredSocketFactory LayeredSchemeSocketFactory}.
- *
- * @return the socket factory for this scheme
- *
- * @since 4.1
- */
- public final SchemeSocketFactory getSchemeSocketFactory() {
- return this.socketFactory;
- }
-
- /**
- * Obtains the scheme name.
- *
- * @return the name of this scheme, in lowercase
- */
- public final String getName() {
- return name;
- }
-
- /**
- * Indicates whether this scheme allows for layered connections.
- *
- * @return <code>true</code> if layered connections are possible,
- * <code>false</code> otherwise
- */
- public final boolean isLayered() {
- return layered;
- }
-
- /**
- * Resolves the correct port for this scheme.
- * Returns the given port if it is valid, the default port otherwise.
- *
- * @param port the port to be resolved,
- * a negative number to obtain the default port
- *
- * @return the given port or the defaultPort
- */
- public final int resolvePort(final int port) {
- return port <= 0 ? defaultPort : port;
- }
-
- /**
- * Return a string representation of this object.
- *
- * @return a human-readable string description of this scheme
- */
- @Override
- public final String toString() {
- if (stringRep == null) {
- final StringBuilder buffer = new StringBuilder();
- buffer.append(this.name);
- buffer.append(':');
- buffer.append(Integer.toString(this.defaultPort));
- stringRep = buffer.toString();
- }
- return stringRep;
- }
-
- @Override
- public final boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj instanceof Scheme) {
- final Scheme that = (Scheme) obj;
- return this.name.equals(that.name)
- && this.defaultPort == that.defaultPort
- && this.layered == that.layered;
- } else {
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- int hash = LangUtils.HASH_SEED;
- hash = LangUtils.hashCode(hash, this.defaultPort);
- hash = LangUtils.hashCode(hash, this.name);
- hash = LangUtils.hashCode(hash, this.layered);
- return hash;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactory.java
deleted file mode 100644
index b20ada328..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * Extended {@link SchemeSocketFactory} interface for layered sockets such as SSL/TLS.
- *
- * @since 4.2
- *
- * @deprecated (4.3) use {@link
- * ch.boye.httpclientandroidlib.conn.socket.LayeredConnectionSocketFactory}
- */
-@Deprecated
-public interface SchemeLayeredSocketFactory extends SchemeSocketFactory {
-
- /**
- * Returns a socket connected to the given host that is layered over an
- * existing socket. Used primarily for creating secure sockets through
- * proxies.
- *
- * @param socket the existing socket
- * @param target the name of the target host.
- * @param port the port to connect to on the target host
- * @param params HTTP parameters
- *
- * @return Socket a new socket
- *
- * @throws IOException if an I/O error occurs while creating the socket
- * @throws UnknownHostException if the IP address of the host cannot be
- * determined
- */
- Socket createLayeredSocket(
- Socket socket,
- String target,
- int port,
- HttpParams params) throws IOException, UnknownHostException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor.java
deleted file mode 100644
index 098f55d9a..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * @deprecated (4.2) do not use
- */
-@Deprecated
-class SchemeLayeredSocketFactoryAdaptor extends SchemeSocketFactoryAdaptor
- implements SchemeLayeredSocketFactory {
-
- private final LayeredSocketFactory factory;
-
- SchemeLayeredSocketFactoryAdaptor(final LayeredSocketFactory factory) {
- super(factory);
- this.factory = factory;
- }
-
- public Socket createLayeredSocket(
- final Socket socket,
- final String target, final int port,
- final HttpParams params) throws IOException, UnknownHostException {
- return this.factory.createSocket(socket, target, port, true);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor2.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor2.java
deleted file mode 100644
index 97f0442d7..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeLayeredSocketFactoryAdaptor2.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.conn.ConnectTimeoutException;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * @deprecated (4.2) do not use
- */
-@Deprecated
-class SchemeLayeredSocketFactoryAdaptor2 implements SchemeLayeredSocketFactory {
-
- private final LayeredSchemeSocketFactory factory;
-
- SchemeLayeredSocketFactoryAdaptor2(final LayeredSchemeSocketFactory factory) {
- super();
- this.factory = factory;
- }
-
- public Socket createSocket(final HttpParams params) throws IOException {
- return this.factory.createSocket(params);
- }
-
- public Socket connectSocket(
- final Socket sock,
- final InetSocketAddress remoteAddress,
- final InetSocketAddress localAddress,
- final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- return this.factory.connectSocket(sock, remoteAddress, localAddress, params);
- }
-
- public boolean isSecure(final Socket sock) throws IllegalArgumentException {
- return this.factory.isSecure(sock);
- }
-
- public Socket createLayeredSocket(
- final Socket socket,
- final String target, final int port,
- final HttpParams params) throws IOException, UnknownHostException {
- return this.factory.createLayeredSocket(socket, target, port, true);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeRegistry.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeRegistry.java
deleted file mode 100644
index ef87c809d..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeRegistry.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.util.Args;
-
-/**
- * A set of supported protocol {@link Scheme}s.
- * Schemes are identified by lowercase names.
- *
- * @since 4.0
- *
- * @deprecated (4.3) use {@link ch.boye.httpclientandroidlib.config.Registry}
- */
-@ThreadSafe
-@Deprecated
-public final class SchemeRegistry {
-
- /** The available schemes in this registry. */
- private final ConcurrentHashMap<String,Scheme> registeredSchemes;
-
- /**
- * Creates a new, empty scheme registry.
- */
- public SchemeRegistry() {
- super();
- registeredSchemes = new ConcurrentHashMap<String,Scheme>();
- }
-
- /**
- * Obtains a scheme by name.
- *
- * @param name the name of the scheme to look up (in lowercase)
- *
- * @return the scheme, never <code>null</code>
- *
- * @throws IllegalStateException
- * if the scheme with the given name is not registered
- */
- public final Scheme getScheme(final String name) {
- final Scheme found = get(name);
- if (found == null) {
- throw new IllegalStateException
- ("Scheme '"+name+"' not registered.");
- }
- return found;
- }
-
- /**
- * Obtains the scheme for a host.
- * Convenience method for <code>getScheme(host.getSchemeName())</pre>
- *
- * @param host the host for which to obtain the scheme
- *
- * @return the scheme for the given host, never <code>null</code>
- *
- * @throws IllegalStateException
- * if a scheme with the respective name is not registered
- */
- public final Scheme getScheme(final HttpHost host) {
- Args.notNull(host, "Host");
- return getScheme(host.getSchemeName());
- }
-
- /**
- * Obtains a scheme by name, if registered.
- *
- * @param name the name of the scheme to look up (in lowercase)
- *
- * @return the scheme, or
- * <code>null</code> if there is none by this name
- */
- public final Scheme get(final String name) {
- Args.notNull(name, "Scheme name");
- // leave it to the caller to use the correct name - all lowercase
- //name = name.toLowerCase(Locale.ENGLISH);
- final Scheme found = registeredSchemes.get(name);
- return found;
- }
-
- /**
- * Registers a scheme.
- * The scheme can later be retrieved by its name
- * using {@link #getScheme(String) getScheme} or {@link #get get}.
- *
- * @param sch the scheme to register
- *
- * @return the scheme previously registered with that name, or
- * <code>null</code> if none was registered
- */
- public final Scheme register(final Scheme sch) {
- Args.notNull(sch, "Scheme");
- final Scheme old = registeredSchemes.put(sch.getName(), sch);
- return old;
- }
-
- /**
- * Unregisters a scheme.
- *
- * @param name the name of the scheme to unregister (in lowercase)
- *
- * @return the unregistered scheme, or
- * <code>null</code> if there was none
- */
- public final Scheme unregister(final String name) {
- Args.notNull(name, "Scheme name");
- // leave it to the caller to use the correct name - all lowercase
- //name = name.toLowerCase(Locale.ENGLISH);
- final Scheme gone = registeredSchemes.remove(name);
- return gone;
- }
-
- /**
- * Obtains the names of the registered schemes.
- *
- * @return List containing registered scheme names.
- */
- public final List<String> getSchemeNames() {
- return new ArrayList<String>(registeredSchemes.keySet());
- }
-
- /**
- * Populates the internal collection of registered {@link Scheme protocol schemes}
- * with the content of the map passed as a parameter.
- *
- * @param map protocol schemes
- */
- public void setItems(final Map<String, Scheme> map) {
- if (map == null) {
- return;
- }
- registeredSchemes.clear();
- registeredSchemes.putAll(map);
- }
-
-}
-
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactory.java
deleted file mode 100644
index 81cac0ed1..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactory.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.conn.ConnectTimeoutException;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * A factory for creating, initializing and connecting sockets. The factory encapsulates the logic
- * for establishing a socket connection.
- *
- * @since 4.1
- *
- * @deprecated (4.3) use {@link ch.boye.httpclientandroidlib.conn.socket.ConnectionSocketFactory}
- */
-@Deprecated
-public interface SchemeSocketFactory {
-
- /**
- * Creates a new, unconnected socket. The socket should subsequently be passed to
- * {@link #connectSocket(Socket, InetSocketAddress, InetSocketAddress, HttpParams)}.
- *
- * @param params Optional {@link HttpParams parameters}. In most cases these parameters
- * will not be required and will have no effect, as usually socket
- * initialization should take place in the
- * {@link #connectSocket(Socket, InetSocketAddress, InetSocketAddress, HttpParams)}
- * method. However, in rare cases one may want to pass additional parameters
- * to this method in order to create a customized {@link Socket} instance,
- * for instance bound to a SOCKS proxy server.
- *
- * @return a new socket
- *
- * @throws IOException if an I/O error occurs while creating the socket
- */
- Socket createSocket(HttpParams params) throws IOException;
-
- /**
- * Connects a socket to the target host with the given remote address.
- * <p/>
- * Please note that {@link ch.boye.httpclientandroidlib.conn.HttpInetSocketAddress} class should
- * be used in order to pass the target remote address along with the original
- * {@link ch.boye.httpclientandroidlib.HttpHost} value used to resolve the address. The use of
- * {@link ch.boye.httpclientandroidlib.conn.HttpInetSocketAddress} can also ensure that no reverse
- * DNS lookup will be performed if the target remote address was specified
- * as an IP address.
- *
- * @param sock the socket to connect, as obtained from
- * {@link #createSocket(HttpParams) createSocket}.
- * <code>null</code> indicates that a new socket
- * should be created and connected.
- * @param remoteAddress the remote address to connect to.
- * @param localAddress the local address to bind the socket to, or
- * <code>null</code> for any
- * @param params additional {@link HttpParams parameters} for connecting
- *
- * @return the connected socket. The returned object may be different
- * from the <code>sock</code> argument if this factory supports
- * a layered protocol.
- *
- * @throws IOException if an I/O error occurs
- * @throws UnknownHostException if the IP address of the target host
- * can not be determined
- * @throws ConnectTimeoutException if the socket cannot be connected
- * within the time limit defined in the <code>params</code>
- *
- * @see ch.boye.httpclientandroidlib.conn.HttpInetSocketAddress
- */
- Socket connectSocket(
- Socket sock,
- InetSocketAddress remoteAddress,
- InetSocketAddress localAddress,
- HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException;
-
- /**
- * Checks whether a socket provides a secure connection. The socket must be
- * {@link #connectSocket(Socket, InetSocketAddress, InetSocketAddress, HttpParams) connected}
- * by this factory. The factory will <i>not</i> perform I/O operations in this method.
- * <p>
- * As a rule of thumb, plain sockets are not secure and TLS/SSL sockets are secure. However,
- * there may be application specific deviations. For example, a plain socket to a host in the
- * same intranet ("trusted zone") could be considered secure. On the other hand, a TLS/SSL
- * socket could be considered insecure based on the cipher suite chosen for the connection.
- *
- * @param sock the connected socket to check
- *
- * @return <code>true</code> if the connection of the socket
- * should be considered secure, or
- * <code>false</code> if it should not
- *
- * @throws IllegalArgumentException
- * if the argument is invalid, for example because it is
- * not a connected socket or was created by a different
- * socket factory.
- * Note that socket factories are <i>not</i> required to
- * check these conditions, they may simply return a default
- * value when called with an invalid socket argument.
- */
- boolean isSecure(Socket sock) throws IllegalArgumentException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactoryAdaptor.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactoryAdaptor.java
deleted file mode 100644
index 85ff5e6b2..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SchemeSocketFactoryAdaptor.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.conn.ConnectTimeoutException;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * @deprecated (4.1) do not use
- */
-@Deprecated
-class SchemeSocketFactoryAdaptor implements SchemeSocketFactory {
-
- private final SocketFactory factory;
-
- SchemeSocketFactoryAdaptor(final SocketFactory factory) {
- super();
- this.factory = factory;
- }
-
- public Socket connectSocket(
- final Socket sock,
- final InetSocketAddress remoteAddress,
- final InetSocketAddress localAddress,
- final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- final String host = remoteAddress.getHostName();
- final int port = remoteAddress.getPort();
- InetAddress local = null;
- int localPort = 0;
- if (localAddress != null) {
- local = localAddress.getAddress();
- localPort = localAddress.getPort();
- }
- return this.factory.connectSocket(sock, host, port, local, localPort, params);
- }
-
- public Socket createSocket(final HttpParams params) throws IOException {
- return this.factory.createSocket();
- }
-
- public boolean isSecure(final Socket sock) throws IllegalArgumentException {
- return this.factory.isSecure(sock);
- }
-
- public SocketFactory getFactory() {
- return this.factory;
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (obj == null) {
- return false;
- }
- if (this == obj) {
- return true;
- }
- if (obj instanceof SchemeSocketFactoryAdaptor) {
- return this.factory.equals(((SchemeSocketFactoryAdaptor)obj).factory);
- } else {
- return this.factory.equals(obj);
- }
- }
-
- @Override
- public int hashCode() {
- return this.factory.hashCode();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SocketFactory.java
deleted file mode 100644
index 71960194b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SocketFactory.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.conn.ConnectTimeoutException;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-/**
- * A factory for creating, initializing and connecting sockets.
- * The factory encapsulates the logic for establishing a socket connection.
- *
- * @since 4.0
- *
- * @deprecated (4.1) use {@link SchemeSocketFactory}
- */
-@Deprecated
-public interface SocketFactory {
-
- /**
- * Creates a new, unconnected socket.
- * The socket should subsequently be passed to
- * {@link #connectSocket connectSocket}.
- *
- * @return a new socket
- *
- * @throws IOException if an I/O error occurs while creating the socket
- */
- Socket createSocket()
- throws IOException;
-
- /**
- * Connects a socket to the given host.
- *
- * @param sock the socket to connect, as obtained from
- * {@link #createSocket createSocket}.
- * <code>null</code> indicates that a new socket
- * should be created and connected.
- * @param host the host to connect to
- * @param port the port to connect to on the host
- * @param localAddress the local address to bind the socket to, or
- * <code>null</code> for any
- * @param localPort the port on the local machine,
- * 0 or a negative number for any
- * @param params additional {@link HttpParams parameters} for connecting
- *
- * @return the connected socket. The returned object may be different
- * from the <code>sock</code> argument if this factory supports
- * a layered protocol.
- *
- * @throws IOException if an I/O error occurs
- * @throws UnknownHostException if the IP address of the target host
- * can not be determined
- * @throws ConnectTimeoutException if the socket cannot be connected
- * within the time limit defined in the <code>params</code>
- */
- Socket connectSocket(
- Socket sock,
- String host,
- int port,
- InetAddress localAddress,
- int localPort,
- HttpParams params
- ) throws IOException, UnknownHostException, ConnectTimeoutException;
-
- /**
- * Checks whether a socket provides a secure connection.
- * The socket must be {@link #connectSocket connected}
- * by this factory.
- * The factory will <i>not</i> perform I/O operations
- * in this method.
- * <br/>
- * As a rule of thumb, plain sockets are not secure and
- * TLS/SSL sockets are secure. However, there may be
- * application specific deviations. For example, a plain
- * socket to a host in the same intranet ("trusted zone")
- * could be considered secure. On the other hand, a
- * TLS/SSL socket could be considered insecure based on
- * the cipher suite chosen for the connection.
- *
- * @param sock the connected socket to check
- *
- * @return <code>true</code> if the connection of the socket
- * should be considered secure, or
- * <code>false</code> if it should not
- *
- * @throws IllegalArgumentException
- * if the argument is invalid, for example because it is
- * not a connected socket or was created by a different
- * socket factory.
- * Note that socket factories are <i>not</i> required to
- * check these conditions, they may simply return a default
- * value when called with an invalid socket argument.
- */
- boolean isSecure(Socket sock)
- throws IllegalArgumentException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SocketFactoryAdaptor.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SocketFactoryAdaptor.java
deleted file mode 100644
index 0e9aab355..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/SocketFactoryAdaptor.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.scheme;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.conn.ConnectTimeoutException;
-import ch.boye.httpclientandroidlib.params.BasicHttpParams;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-
-@Deprecated
-class SocketFactoryAdaptor implements SocketFactory {
-
- private final SchemeSocketFactory factory;
-
- SocketFactoryAdaptor(final SchemeSocketFactory factory) {
- super();
- this.factory = factory;
- }
-
- public Socket createSocket() throws IOException {
- final HttpParams params = new BasicHttpParams();
- return this.factory.createSocket(params);
- }
-
- public Socket connectSocket(
- final Socket socket,
- final String host, final int port,
- final InetAddress localAddress, final int localPort,
- final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- InetSocketAddress local = null;
- if (localAddress != null || localPort > 0) {
- local = new InetSocketAddress(localAddress, localPort > 0 ? localPort : 0);
- }
- final InetAddress remoteAddress = InetAddress.getByName(host);
- final InetSocketAddress remote = new InetSocketAddress(remoteAddress, port);
- return this.factory.connectSocket(socket, remote, local, params);
- }
-
- public boolean isSecure(final Socket socket) throws IllegalArgumentException {
- return this.factory.isSecure(socket);
- }
-
- public SchemeSocketFactory getFactory() {
- return this.factory;
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (obj == null) {
- return false;
- }
- if (this == obj) {
- return true;
- }
- if (obj instanceof SocketFactoryAdaptor) {
- return this.factory.equals(((SocketFactoryAdaptor)obj).factory);
- } else {
- return this.factory.equals(obj);
- }
- }
-
- @Override
- public int hashCode() {
- return this.factory.hashCode();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/package-info.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/package-info.java
deleted file mode 100644
index 2e6409084..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/package-info.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-/**
- * Deprecated.
- * @deprecated (4.3).
- */
-package ch.boye.httpclientandroidlib.conn.scheme;
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/ConnectionSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/ConnectionSocketFactory.java
deleted file mode 100644
index 98274f213..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/ConnectionSocketFactory.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.socket;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-
-/**
- * A factory for creating and connecting connection sockets.
- *
- * @since 4.3
- */
-public interface ConnectionSocketFactory {
-
- /**
- * Creates new, unconnected socket. The socket should subsequently be passed to
- * {@link #connectSocket(int, Socket, HttpHost, InetSocketAddress, InetSocketAddress,
- * HttpContext) connectSocket} method.
- *
- * @return a new socket
- *
- * @throws IOException if an I/O error occurs while creating the socket
- */
- Socket createSocket(HttpContext context) throws IOException;
-
- /**
- * Connects the socket to the target host with the given resolved remote address.
- *
- * @param connectTimeout connect timeout.
- * @param sock the socket to connect, as obtained from {@link #createSocket(HttpContext)}.
- * <code>null</code> indicates that a new socket should be created and connected.
- * @param host target host as specified by the caller (end user).
- * @param remoteAddress the resolved remote address to connect to.
- * @param localAddress the local address to bind the socket to, or <code>null</code> for any.
- * @param context the actual HTTP context.
- *
- * @return the connected socket. The returned object may be different
- * from the <code>sock</code> argument if this factory supports
- * a layered protocol.
- *
- * @throws IOException if an I/O error occurs
- */
- Socket connectSocket(
- int connectTimeout,
- Socket sock,
- HttpHost host,
- InetSocketAddress remoteAddress,
- InetSocketAddress localAddress,
- HttpContext context) throws IOException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/LayeredConnectionSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/LayeredConnectionSocketFactory.java
deleted file mode 100644
index 40c54f8fa..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/LayeredConnectionSocketFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.socket;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-
-/**
- * Extended {@link ConnectionSocketFactory} interface for layered sockets such as SSL/TLS.
- *
- * @since 4.3
- */
-public interface LayeredConnectionSocketFactory extends ConnectionSocketFactory {
-
- /**
- * Returns a socket connected to the given host that is layered over an
- * existing socket. Used primarily for creating secure sockets through
- * proxies.
- *
- * @param socket the existing socket
- * @param target the name of the target host.
- * @param port the port to connect to on the target host.
- * @param context the actual HTTP context.
- *
- * @return Socket a new socket
- *
- * @throws IOException if an I/O error occurs while creating the socket
- */
- Socket createLayeredSocket(
- Socket socket,
- String target,
- int port,
- HttpContext context) throws IOException, UnknownHostException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/PlainConnectionSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/PlainConnectionSocketFactory.java
deleted file mode 100644
index d8fa807c5..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/PlainConnectionSocketFactory.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.socket;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-
-/**
- * The default class for creating plain (unencrypted) sockets.
- *
- * @since 4.3
- */
-@Immutable
-public class PlainConnectionSocketFactory implements ConnectionSocketFactory {
-
- public static final PlainConnectionSocketFactory INSTANCE = new PlainConnectionSocketFactory();
-
- public static PlainConnectionSocketFactory getSocketFactory() {
- return INSTANCE;
- }
-
- public PlainConnectionSocketFactory() {
- super();
- }
-
- public Socket createSocket(final HttpContext context) throws IOException {
- return new Socket();
- }
-
- public Socket connectSocket(
- final int connectTimeout,
- final Socket socket,
- final HttpHost host,
- final InetSocketAddress remoteAddress,
- final InetSocketAddress localAddress,
- final HttpContext context) throws IOException {
- final Socket sock = socket != null ? socket : createSocket(context);
- if (localAddress != null) {
- sock.bind(localAddress);
- }
- try {
- sock.connect(remoteAddress, connectTimeout);
- } catch (final IOException ex) {
- try {
- sock.close();
- } catch (final IOException ignore) {
- }
- throw ex;
- }
- return sock;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/package-info.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/package-info.java
deleted file mode 100644
index fb73d60de..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/socket/package-info.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-/**
- * Client connection socket APIs.
- */
-package ch.boye.httpclientandroidlib.conn.socket;
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/AbstractVerifier.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/AbstractVerifier.java
deleted file mode 100644
index 24a7b40a8..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/AbstractVerifier.java
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateParsingException;
-import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.NoSuchElementException;
-
-import javax.net.ssl.SSLException;
-import javax.net.ssl.SSLSession;
-import javax.net.ssl.SSLSocket;
-
-import ch.boye.httpclientandroidlib.androidextra.HttpClientAndroidLog;
-/* LogFactory removed by HttpClient for Android script. */
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.conn.util.InetAddressUtils;
-import ch.boye.httpclientandroidlib.util.TextUtils;
-
-import ch.boye.httpclientandroidlib.NameValuePair;
-
-
-/**
- * Abstract base class for all standard {@link X509HostnameVerifier}
- * implementations.
- *
- * @since 4.0
- */
-@Immutable
-public abstract class AbstractVerifier implements X509HostnameVerifier {
-
- /**
- * This contains a list of 2nd-level domains that aren't allowed to
- * have wildcards when combined with country-codes.
- * For example: [*.co.uk].
- * <p/>
- * The [*.co.uk] problem is an interesting one. Should we just hope
- * that CA's would never foolishly allow such a certificate to happen?
- * Looks like we're the only implementation guarding against this.
- * Firefox, Curl, Sun Java 1.4, 5, 6 don't bother with this check.
- */
- private final static String[] BAD_COUNTRY_2LDS =
- { "ac", "co", "com", "ed", "edu", "go", "gouv", "gov", "info",
- "lg", "ne", "net", "or", "org" };
-
- static {
- // Just in case developer forgot to manually sort the array. :-)
- Arrays.sort(BAD_COUNTRY_2LDS);
- }
-
- public HttpClientAndroidLog log = new HttpClientAndroidLog(getClass());
-
- public AbstractVerifier() {
- super();
- }
-
- public final void verify(final String host, final SSLSocket ssl)
- throws IOException {
- if(host == null) {
- throw new NullPointerException("host to verify is null");
- }
-
- SSLSession session = ssl.getSession();
- if(session == null) {
- // In our experience this only happens under IBM 1.4.x when
- // spurious (unrelated) certificates show up in the server'
- // chain. Hopefully this will unearth the real problem:
- final InputStream in = ssl.getInputStream();
- in.available();
- /*
- If you're looking at the 2 lines of code above because
- you're running into a problem, you probably have two
- options:
-
- #1. Clean up the certificate chain that your server
- is presenting (e.g. edit "/etc/apache2/server.crt"
- or wherever it is your server's certificate chain
- is defined).
-
- OR
-
- #2. Upgrade to an IBM 1.5.x or greater JVM, or switch
- to a non-IBM JVM.
- */
-
- // If ssl.getInputStream().available() didn't cause an
- // exception, maybe at least now the session is available?
- session = ssl.getSession();
- if(session == null) {
- // If it's still null, probably a startHandshake() will
- // unearth the real problem.
- ssl.startHandshake();
-
- // Okay, if we still haven't managed to cause an exception,
- // might as well go for the NPE. Or maybe we're okay now?
- session = ssl.getSession();
- }
- }
-
- final Certificate[] certs = session.getPeerCertificates();
- final X509Certificate x509 = (X509Certificate) certs[0];
- verify(host, x509);
- }
-
- public final boolean verify(final String host, final SSLSession session) {
- try {
- final Certificate[] certs = session.getPeerCertificates();
- final X509Certificate x509 = (X509Certificate) certs[0];
- verify(host, x509);
- return true;
- }
- catch(final SSLException e) {
- return false;
- }
- }
-
- public final void verify(final String host, final X509Certificate cert)
- throws SSLException {
- final String[] cns = getCNs(cert);
- final String[] subjectAlts = getSubjectAlts(cert, host);
- verify(host, cns, subjectAlts);
- }
-
- public final void verify(final String host, final String[] cns,
- final String[] subjectAlts,
- final boolean strictWithSubDomains)
- throws SSLException {
-
- // Build the list of names we're going to check. Our DEFAULT and
- // STRICT implementations of the HostnameVerifier only use the
- // first CN provided. All other CNs are ignored.
- // (Firefox, wget, curl, Sun Java 1.4, 5, 6 all work this way).
- final LinkedList<String> names = new LinkedList<String>();
- if(cns != null && cns.length > 0 && cns[0] != null) {
- names.add(cns[0]);
- }
- if(subjectAlts != null) {
- for (final String subjectAlt : subjectAlts) {
- if (subjectAlt != null) {
- names.add(subjectAlt);
- }
- }
- }
-
- if(names.isEmpty()) {
- final String msg = "Certificate for <" + host + "> doesn't contain CN or DNS subjectAlt";
- throw new SSLException(msg);
- }
-
- // StringBuilder for building the error message.
- final StringBuilder buf = new StringBuilder();
-
- // We're can be case-insensitive when comparing the host we used to
- // establish the socket to the hostname in the certificate.
- final String hostName = normaliseIPv6Address(host.trim().toLowerCase(Locale.ENGLISH));
- boolean match = false;
- for(final Iterator<String> it = names.iterator(); it.hasNext();) {
- // Don't trim the CN, though!
- String cn = it.next();
- cn = cn.toLowerCase(Locale.ENGLISH);
- // Store CN in StringBuilder in case we need to report an error.
- buf.append(" <");
- buf.append(cn);
- buf.append('>');
- if(it.hasNext()) {
- buf.append(" OR");
- }
-
- // The CN better have at least two dots if it wants wildcard
- // action. It also can't be [*.co.uk] or [*.co.jp] or
- // [*.org.uk], etc...
- final String parts[] = cn.split("\\.");
- final boolean doWildcard =
- parts.length >= 3 && parts[0].endsWith("*") &&
- validCountryWildcard(cn) && !isIPAddress(host);
-
- if(doWildcard) {
- final String firstpart = parts[0];
- if (firstpart.length() > 1) { // e.g. server*
- final String prefix = firstpart.substring(0, firstpart.length() - 1); // e.g. server
- final String suffix = cn.substring(firstpart.length()); // skip wildcard part from cn
- final String hostSuffix = hostName.substring(prefix.length()); // skip wildcard part from host
- match = hostName.startsWith(prefix) && hostSuffix.endsWith(suffix);
- } else {
- match = hostName.endsWith(cn.substring(1));
- }
- if(match && strictWithSubDomains) {
- // If we're in strict mode, then [*.foo.com] is not
- // allowed to match [a.b.foo.com]
- match = countDots(hostName) == countDots(cn);
- }
- } else {
- match = hostName.equals(normaliseIPv6Address(cn));
- }
- if(match) {
- break;
- }
- }
- if(!match) {
- throw new SSLException("hostname in certificate didn't match: <" + host + "> !=" + buf);
- }
- }
-
- /**
- * @deprecated (4.3.1) should not be a part of public APIs.
- */
- @Deprecated
- public static boolean acceptableCountryWildcard(final String cn) {
- final String parts[] = cn.split("\\.");
- if (parts.length != 3 || parts[2].length() != 2) {
- return true; // it's not an attempt to wildcard a 2TLD within a country code
- }
- return Arrays.binarySearch(BAD_COUNTRY_2LDS, parts[1]) < 0;
- }
-
- boolean validCountryWildcard(final String cn) {
- final String parts[] = cn.split("\\.");
- if (parts.length != 3 || parts[2].length() != 2) {
- return true; // it's not an attempt to wildcard a 2TLD within a country code
- }
- return Arrays.binarySearch(BAD_COUNTRY_2LDS, parts[1]) < 0;
- }
-
- public static String[] getCNs(final X509Certificate cert) {
- final String subjectPrincipal = cert.getSubjectX500Principal().toString();
- try {
- return extractCNs(subjectPrincipal);
- } catch (SSLException ex) {
- return null;
- }
- }
-
- static String[] extractCNs(final String subjectPrincipal) throws SSLException {
- if (subjectPrincipal == null) {
- return null;
- }
- final List<String> cns = new ArrayList<String>();
- final List<NameValuePair> nvps = DistinguishedNameParser.INSTANCE.parse(subjectPrincipal);
- for (int i = 0; i < nvps.size(); i++) {
- final NameValuePair nvp = nvps.get(i);
- final String attribName = nvp.getName();
- final String attribValue = nvp.getValue();
- if (TextUtils.isBlank(attribValue)) {
- throw new SSLException(subjectPrincipal + " is not a valid X500 distinguished name");
- }
- if (attribName.equalsIgnoreCase("cn")) {
- cns.add(attribValue);
- }
- }
- return cns.isEmpty() ? null : cns.toArray(new String[ cns.size() ]);
- }
-
- /**
- * Extracts the array of SubjectAlt DNS or IP names from an X509Certificate.
- * Returns null if there aren't any.
- *
- * @param cert X509Certificate
- * @param hostname
- * @return Array of SubjectALT DNS or IP names stored in the certificate.
- */
- private static String[] getSubjectAlts(
- final X509Certificate cert, final String hostname) {
- final int subjectType;
- if (isIPAddress(hostname)) {
- subjectType = 7;
- } else {
- subjectType = 2;
- }
-
- final LinkedList<String> subjectAltList = new LinkedList<String>();
- Collection<List<?>> c = null;
- try {
- c = cert.getSubjectAlternativeNames();
- }
- catch(final CertificateParsingException cpe) {
- }
- if(c != null) {
- for (final List<?> aC : c) {
- final List<?> list = aC;
- final int type = ((Integer) list.get(0)).intValue();
- if (type == subjectType) {
- final String s = (String) list.get(1);
- subjectAltList.add(s);
- }
- }
- }
- if(!subjectAltList.isEmpty()) {
- final String[] subjectAlts = new String[subjectAltList.size()];
- subjectAltList.toArray(subjectAlts);
- return subjectAlts;
- } else {
- return null;
- }
- }
-
- /**
- * Extracts the array of SubjectAlt DNS names from an X509Certificate.
- * Returns null if there aren't any.
- * <p/>
- * Note: Java doesn't appear able to extract international characters
- * from the SubjectAlts. It can only extract international characters
- * from the CN field.
- * <p/>
- * (Or maybe the version of OpenSSL I'm using to test isn't storing the
- * international characters correctly in the SubjectAlts?).
- *
- * @param cert X509Certificate
- * @return Array of SubjectALT DNS names stored in the certificate.
- */
- public static String[] getDNSSubjectAlts(final X509Certificate cert) {
- return getSubjectAlts(cert, null);
- }
-
- /**
- * Counts the number of dots "." in a string.
- * @param s string to count dots from
- * @return number of dots
- */
- public static int countDots(final String s) {
- int count = 0;
- for(int i = 0; i < s.length(); i++) {
- if(s.charAt(i) == '.') {
- count++;
- }
- }
- return count;
- }
-
- private static boolean isIPAddress(final String hostname) {
- return hostname != null &&
- (InetAddressUtils.isIPv4Address(hostname) ||
- InetAddressUtils.isIPv6Address(hostname));
- }
-
- /*
- * Check if hostname is IPv6, and if so, convert to standard format.
- */
- private String normaliseIPv6Address(final String hostname) {
- if (hostname == null || !InetAddressUtils.isIPv6Address(hostname)) {
- return hostname;
- }
- try {
- final InetAddress inetAddress = InetAddress.getByName(hostname);
- return inetAddress.getHostAddress();
- } catch (final UnknownHostException uhe) { // Should not happen, because we check for IPv6 address above
- log.error("Unexpected error converting "+hostname, uhe);
- return hostname;
- }
- }
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/AllowAllHostnameVerifier.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/AllowAllHostnameVerifier.java
deleted file mode 100644
index 8ca1fad5a..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/AllowAllHostnameVerifier.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * The ALLOW_ALL HostnameVerifier essentially turns hostname verification
- * off. This implementation is a no-op, and never throws the SSLException.
- *
- *
- * @since 4.0
- */
-@Immutable
-public class AllowAllHostnameVerifier extends AbstractVerifier {
-
- public final void verify(
- final String host,
- final String[] cns,
- final String[] subjectAlts) {
- // Allow everything - so never blowup.
- }
-
- @Override
- public final String toString() {
- return "ALLOW_ALL";
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/BrowserCompatHostnameVerifier.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/BrowserCompatHostnameVerifier.java
deleted file mode 100644
index 05f7d8c8c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/BrowserCompatHostnameVerifier.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import javax.net.ssl.SSLException;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * The HostnameVerifier that works the same way as Curl and Firefox.
- * <p/>
- * The hostname must match either the first CN, or any of the subject-alts.
- * A wildcard can occur in the CN, and in any of the subject-alts.
- * <p/>
- * The only difference between BROWSER_COMPATIBLE and STRICT is that a wildcard
- * (such as "*.foo.com") with BROWSER_COMPATIBLE matches all subdomains,
- * including "a.b.foo.com".
- *
- *
- * @since 4.0
- */
-@Immutable
-public class BrowserCompatHostnameVerifier extends AbstractVerifier {
-
- public final void verify(
- final String host,
- final String[] cns,
- final String[] subjectAlts) throws SSLException {
- verify(host, cns, subjectAlts, false);
- }
-
- @Override
- boolean validCountryWildcard(final String cn) {
- return true;
- }
-
- @Override
- public final String toString() {
- return "BROWSER_COMPATIBLE";
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/DistinguishedNameParser.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/DistinguishedNameParser.java
deleted file mode 100644
index 98b2ec3a9..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/DistinguishedNameParser.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.util.ArrayList;
-import java.util.BitSet;
-import java.util.List;
-
-import ch.boye.httpclientandroidlib.NameValuePair;
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-import ch.boye.httpclientandroidlib.message.BasicNameValuePair;
-import ch.boye.httpclientandroidlib.message.ParserCursor;
-import ch.boye.httpclientandroidlib.util.CharArrayBuffer;
-
-@Immutable
-final class DistinguishedNameParser {
-
- public final static DistinguishedNameParser INSTANCE = new DistinguishedNameParser();
-
- private static final BitSet EQUAL_OR_COMMA_OR_PLUS = TokenParser.INIT_BITSET('=', ',', '+');
- private static final BitSet COMMA_OR_PLUS = TokenParser.INIT_BITSET(',', '+');
-
- private final TokenParser tokenParser;
-
- DistinguishedNameParser() {
- this.tokenParser = new InternalTokenParser();
- }
-
- String parseToken(final CharArrayBuffer buf, final ParserCursor cursor, final BitSet delimiters) {
- return tokenParser.parseToken(buf, cursor, delimiters);
- }
-
- String parseValue(final CharArrayBuffer buf, final ParserCursor cursor, final BitSet delimiters) {
- return tokenParser.parseValue(buf, cursor, delimiters);
- }
-
- NameValuePair parseParameter(final CharArrayBuffer buf, final ParserCursor cursor) {
- final String name = parseToken(buf, cursor, EQUAL_OR_COMMA_OR_PLUS);
- if (cursor.atEnd()) {
- return new BasicNameValuePair(name, null);
- }
- final int delim = buf.charAt(cursor.getPos());
- cursor.updatePos(cursor.getPos() + 1);
- if (delim == ',') {
- return new BasicNameValuePair(name, null);
- }
- final String value = parseValue(buf, cursor, COMMA_OR_PLUS);
- if (!cursor.atEnd()) {
- cursor.updatePos(cursor.getPos() + 1);
- }
- return new BasicNameValuePair(name, value);
- }
-
- public List<NameValuePair> parse(final CharArrayBuffer buf, final ParserCursor cursor) {
- final List<NameValuePair> params = new ArrayList<NameValuePair>();
- tokenParser.skipWhiteSpace(buf, cursor);
- while (!cursor.atEnd()) {
- final NameValuePair param = parseParameter(buf, cursor);
- params.add(param);
- }
- return params;
- }
-
- public List<NameValuePair> parse(final String s) {
- if (s == null) {
- return null;
- }
- final CharArrayBuffer buffer = new CharArrayBuffer(s.length());
- buffer.append(s);
- final ParserCursor cursor = new ParserCursor(0, s.length());
- return parse(buffer, cursor);
- }
-
- static class InternalTokenParser extends TokenParser {
-
- @Override
- public void copyUnquotedContent(
- final CharArrayBuffer buf,
- final ParserCursor cursor,
- final BitSet delimiters,
- final StringBuilder dst) {
- int pos = cursor.getPos();
- final int indexFrom = cursor.getPos();
- final int indexTo = cursor.getUpperBound();
- boolean escaped = false;
- for (int i = indexFrom; i < indexTo; i++, pos++) {
- final char current = buf.charAt(i);
- if (escaped) {
- dst.append(current);
- escaped = false;
- } else {
- if ((delimiters != null && delimiters.get(current))
- || TokenParser.isWhitespace(current) || current == '\"') {
- break;
- } else if (current == '\\') {
- escaped = true;
- } else {
- dst.append(current);
- }
- }
- }
- cursor.updatePos(pos);
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyDetails.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyDetails.java
deleted file mode 100644
index c85978550..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyDetails.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import ch.boye.httpclientandroidlib.util.Args;
-
-import java.security.cert.X509Certificate;
-import java.util.Arrays;
-
-/**
- * Private key details.
- *
- * @since 4.3
- */
-public final class PrivateKeyDetails {
-
- private final String type;
- private final X509Certificate[] certChain;
-
- public PrivateKeyDetails(final String type, final X509Certificate[] certChain) {
- super();
- this.type = Args.notNull(type, "Private key type");
- this.certChain = certChain;
- }
-
- public String getType() {
- return type;
- }
-
- public X509Certificate[] getCertChain() {
- return certChain;
- }
-
- @Override
- public String toString() {
- return type + ':' + Arrays.toString(certChain);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyStrategy.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyStrategy.java
deleted file mode 100644
index ba3ba40c5..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/PrivateKeyStrategy.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.net.Socket;
-import java.util.Map;
-
-/**
- * A strategy allowing for a choice of an alias during SSL authentication.
- *
- * @since 4.3
- */
-public interface PrivateKeyStrategy {
-
- /**
- * Determines what key material to use for SSL authentication.
- */
- String chooseAlias(Map<String, PrivateKeyDetails> aliases, Socket socket);
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLConnectionSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLConnectionSocketFactory.java
deleted file mode 100644
index 341fbe385..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLConnectionSocketFactory.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.conn.socket.LayeredConnectionSocketFactory;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-import ch.boye.httpclientandroidlib.util.Args;
-import ch.boye.httpclientandroidlib.util.TextUtils;
-
-import javax.net.SocketFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocket;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-
-/**
- * Layered socket factory for TLS/SSL connections.
- * <p>
- * SSLSocketFactory can be used to validate the identity of the HTTPS server against a list of
- * trusted certificates and to authenticate to the HTTPS server using a private key.
- * <p>
- * SSLSocketFactory will enable server authentication when supplied with
- * a {@link java.security.KeyStore trust-store} file containing one or several trusted certificates. The client
- * secure socket will reject the connection during the SSL session handshake if the target HTTPS
- * server attempts to authenticate itself with a non-trusted certificate.
- * <p>
- * Use JDK keytool utility to import a trusted certificate and generate a trust-store file:
- * <pre>
- * keytool -import -alias "my server cert" -file server.crt -keystore my.truststore
- * </pre>
- * <p>
- * In special cases the standard trust verification process can be bypassed by using a custom
- * {@link ch.boye.httpclientandroidlib.conn.ssl.TrustStrategy}. This interface is primarily intended for allowing self-signed
- * certificates to be accepted as trusted without having to add them to the trust-store file.
- * <p>
- * SSLSocketFactory will enable client authentication when supplied with
- * a {@link java.security.KeyStore key-store} file containing a private key/public certificate
- * pair. The client secure socket will use the private key to authenticate
- * itself to the target HTTPS server during the SSL session handshake if
- * requested to do so by the server.
- * The target HTTPS server will in its turn verify the certificate presented
- * by the client in order to establish client's authenticity.
- * <p>
- * Use the following sequence of actions to generate a key-store file
- * </p>
- * <ul>
- * <li>
- * <p>
- * Use JDK keytool utility to generate a new key
- * <pre>keytool -genkey -v -alias "my client key" -validity 365 -keystore my.keystore</pre>
- * For simplicity use the same password for the key as that of the key-store
- * </p>
- * </li>
- * <li>
- * <p>
- * Issue a certificate signing request (CSR)
- * <pre>keytool -certreq -alias "my client key" -file mycertreq.csr -keystore my.keystore</pre>
- * </p>
- * </li>
- * <li>
- * <p>
- * Send the certificate request to the trusted Certificate Authority for signature.
- * One may choose to act as her own CA and sign the certificate request using a PKI
- * tool, such as OpenSSL.
- * </p>
- * </li>
- * <li>
- * <p>
- * Import the trusted CA root certificate
- * <pre>keytool -import -alias "my trusted ca" -file caroot.crt -keystore my.keystore</pre>
- * </p>
- * </li>
- * <li>
- * <p>
- * Import the PKCS#7 file containg the complete certificate chain
- * <pre>keytool -import -alias "my client key" -file mycert.p7 -keystore my.keystore</pre>
- * </p>
- * </li>
- * <li>
- * <p>
- * Verify the content the resultant keystore file
- * <pre>keytool -list -v -keystore my.keystore</pre>
- * </p>
- * </li>
- * </ul>
- *
- * @since 4.0
- */
-@ThreadSafe
-public class SSLConnectionSocketFactory implements LayeredConnectionSocketFactory {
-
- public static final String TLS = "TLS";
- public static final String SSL = "SSL";
- public static final String SSLV2 = "SSLv2";
-
- public static final X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER
- = new AllowAllHostnameVerifier();
-
- public static final X509HostnameVerifier BROWSER_COMPATIBLE_HOSTNAME_VERIFIER
- = new BrowserCompatHostnameVerifier();
-
- public static final X509HostnameVerifier STRICT_HOSTNAME_VERIFIER
- = new StrictHostnameVerifier();
-
- /**
- * Obtains default SSL socket factory with an SSL context based on the standard JSSE
- * trust material (<code>cacerts</code> file in the security properties directory).
- * System properties are not taken into consideration.
- *
- * @return default SSL socket factory
- */
- public static SSLConnectionSocketFactory getSocketFactory() throws SSLInitializationException {
- return new SSLConnectionSocketFactory(
- SSLContexts.createDefault(),
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- private static String[] split(final String s) {
- if (TextUtils.isBlank(s)) {
- return null;
- }
- return s.split(" *, *");
- }
-
- /**
- * Obtains default SSL socket factory with an SSL context based on system properties
- * as described in
- * <a href="http://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html">
- * "JavaTM Secure Socket Extension (JSSE) Reference Guide for the JavaTM 2 Platform
- * Standard Edition 5</a>
- *
- * @return default system SSL socket factory
- */
- public static SSLConnectionSocketFactory getSystemSocketFactory() throws SSLInitializationException {
- return new SSLConnectionSocketFactory(
- (javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault(),
- split(System.getProperty("https.protocols")),
- split(System.getProperty("https.cipherSuites")),
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- private final javax.net.ssl.SSLSocketFactory socketfactory;
- private final X509HostnameVerifier hostnameVerifier;
- private final String[] supportedProtocols;
- private final String[] supportedCipherSuites;
-
- public SSLConnectionSocketFactory(final SSLContext sslContext) {
- this(sslContext, BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- public SSLConnectionSocketFactory(
- final SSLContext sslContext, final X509HostnameVerifier hostnameVerifier) {
- this(Args.notNull(sslContext, "SSL context").getSocketFactory(),
- null, null, hostnameVerifier);
- }
-
- public SSLConnectionSocketFactory(
- final SSLContext sslContext,
- final String[] supportedProtocols,
- final String[] supportedCipherSuites,
- final X509HostnameVerifier hostnameVerifier) {
- this(Args.notNull(sslContext, "SSL context").getSocketFactory(),
- supportedProtocols, supportedCipherSuites, hostnameVerifier);
- }
-
- public SSLConnectionSocketFactory(
- final javax.net.ssl.SSLSocketFactory socketfactory,
- final X509HostnameVerifier hostnameVerifier) {
- this(socketfactory, null, null, hostnameVerifier);
- }
-
- public SSLConnectionSocketFactory(
- final javax.net.ssl.SSLSocketFactory socketfactory,
- final String[] supportedProtocols,
- final String[] supportedCipherSuites,
- final X509HostnameVerifier hostnameVerifier) {
- this.socketfactory = Args.notNull(socketfactory, "SSL socket factory");
- this.supportedProtocols = supportedProtocols;
- this.supportedCipherSuites = supportedCipherSuites;
- this.hostnameVerifier = hostnameVerifier != null ? hostnameVerifier : BROWSER_COMPATIBLE_HOSTNAME_VERIFIER;
- }
-
- /**
- * Performs any custom initialization for a newly created SSLSocket
- * (before the SSL handshake happens).
- *
- * The default implementation is a no-op, but could be overridden to, e.g.,
- * call {@link javax.net.ssl.SSLSocket#setEnabledCipherSuites(String[])}.
- */
- protected void prepareSocket(final SSLSocket socket) throws IOException {
- }
-
- public Socket createSocket(final HttpContext context) throws IOException {
- return SocketFactory.getDefault().createSocket();
- }
-
- public Socket connectSocket(
- final int connectTimeout,
- final Socket socket,
- final HttpHost host,
- final InetSocketAddress remoteAddress,
- final InetSocketAddress localAddress,
- final HttpContext context) throws IOException {
- Args.notNull(host, "HTTP host");
- Args.notNull(remoteAddress, "Remote address");
- final Socket sock = socket != null ? socket : createSocket(context);
- if (localAddress != null) {
- sock.bind(localAddress);
- }
- try {
- sock.connect(remoteAddress, connectTimeout);
- } catch (final IOException ex) {
- try {
- sock.close();
- } catch (final IOException ignore) {
- }
- throw ex;
- }
- // Setup SSL layering if necessary
- if (sock instanceof SSLSocket) {
- final SSLSocket sslsock = (SSLSocket) sock;
- sslsock.startHandshake();
- verifyHostname(sslsock, host.getHostName());
- return sock;
- } else {
- return createLayeredSocket(sock, host.getHostName(), remoteAddress.getPort(), context);
- }
- }
-
- public Socket createLayeredSocket(
- final Socket socket,
- final String target,
- final int port,
- final HttpContext context) throws IOException {
- final SSLSocket sslsock = (SSLSocket) this.socketfactory.createSocket(
- socket,
- target,
- port,
- true);
- if (supportedProtocols != null) {
- sslsock.setEnabledProtocols(supportedProtocols);
- }
- if (supportedCipherSuites != null) {
- sslsock.setEnabledCipherSuites(supportedCipherSuites);
- }
- prepareSocket(sslsock);
- sslsock.startHandshake();
- verifyHostname(sslsock, target);
- return sslsock;
- }
-
- X509HostnameVerifier getHostnameVerifier() {
- return this.hostnameVerifier;
- }
-
- private void verifyHostname(final SSLSocket sslsock, final String hostname) throws IOException {
- try {
- this.hostnameVerifier.verify(hostname, sslsock);
- // verifyHostName() didn't blowup - good!
- } catch (final IOException iox) {
- // close the socket before re-throwing the exception
- try { sslsock.close(); } catch (final Exception x) { /*ignore*/ }
- throw iox;
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLContextBuilder.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLContextBuilder.java
deleted file mode 100644
index 89751a166..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLContextBuilder.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.net.Socket;
-import java.security.KeyManagementException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.Principal;
-import java.security.PrivateKey;
-import java.security.SecureRandom;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.TrustManagerFactory;
-import javax.net.ssl.X509KeyManager;
-import javax.net.ssl.X509TrustManager;
-
-import ch.boye.httpclientandroidlib.annotation.NotThreadSafe;
-
-/**
- * Builder for {@link SSLContext} instances.
- *
- * @since 4.3
- */
-@NotThreadSafe
-public class SSLContextBuilder {
-
- static final String TLS = "TLS";
- static final String SSL = "SSL";
-
- private String protocol;
- private Set<KeyManager> keymanagers;
- private Set<TrustManager> trustmanagers;
- private SecureRandom secureRandom;
-
- public SSLContextBuilder() {
- super();
- this.keymanagers = new HashSet<KeyManager>();
- this.trustmanagers = new HashSet<TrustManager>();
- }
-
- public SSLContextBuilder useTLS() {
- this.protocol = TLS;
- return this;
- }
-
- public SSLContextBuilder useSSL() {
- this.protocol = SSL;
- return this;
- }
-
- public SSLContextBuilder useProtocol(final String protocol) {
- this.protocol = protocol;
- return this;
- }
-
- public SSLContextBuilder setSecureRandom(final SecureRandom secureRandom) {
- this.secureRandom = secureRandom;
- return this;
- }
-
- public SSLContextBuilder loadTrustMaterial(
- final KeyStore truststore,
- final TrustStrategy trustStrategy) throws NoSuchAlgorithmException, KeyStoreException {
- final TrustManagerFactory tmfactory = TrustManagerFactory.getInstance(
- TrustManagerFactory.getDefaultAlgorithm());
- tmfactory.init(truststore);
- final TrustManager[] tms = tmfactory.getTrustManagers();
- if (tms != null) {
- if (trustStrategy != null) {
- for (int i = 0; i < tms.length; i++) {
- final TrustManager tm = tms[i];
- if (tm instanceof X509TrustManager) {
- tms[i] = new TrustManagerDelegate(
- (X509TrustManager) tm, trustStrategy);
- }
- }
- }
- for (final TrustManager tm : tms) {
- this.trustmanagers.add(tm);
- }
- }
- return this;
- }
-
- public SSLContextBuilder loadTrustMaterial(
- final KeyStore truststore) throws NoSuchAlgorithmException, KeyStoreException {
- return loadTrustMaterial(truststore, null);
- }
-
- public SSLContextBuilder loadKeyMaterial(
- final KeyStore keystore,
- final char[] keyPassword)
- throws NoSuchAlgorithmException, KeyStoreException, UnrecoverableKeyException {
- loadKeyMaterial(keystore, keyPassword, null);
- return this;
- }
-
- public SSLContextBuilder loadKeyMaterial(
- final KeyStore keystore,
- final char[] keyPassword,
- final PrivateKeyStrategy aliasStrategy)
- throws NoSuchAlgorithmException, KeyStoreException, UnrecoverableKeyException {
- final KeyManagerFactory kmfactory = KeyManagerFactory.getInstance(
- KeyManagerFactory.getDefaultAlgorithm());
- kmfactory.init(keystore, keyPassword);
- final KeyManager[] kms = kmfactory.getKeyManagers();
- if (kms != null) {
- if (aliasStrategy != null) {
- for (int i = 0; i < kms.length; i++) {
- final KeyManager km = kms[i];
- if (km instanceof X509KeyManager) {
- kms[i] = new KeyManagerDelegate(
- (X509KeyManager) km, aliasStrategy);
- }
- }
- }
- for (final KeyManager km : kms) {
- keymanagers.add(km);
- }
- }
- return this;
- }
-
- public SSLContext build() throws NoSuchAlgorithmException, KeyManagementException {
- final SSLContext sslcontext = SSLContext.getInstance(
- this.protocol != null ? this.protocol : TLS);
- sslcontext.init(
- !keymanagers.isEmpty() ? keymanagers.toArray(new KeyManager[keymanagers.size()]) : null,
- !trustmanagers.isEmpty() ? trustmanagers.toArray(new TrustManager[trustmanagers.size()]) : null,
- secureRandom);
- return sslcontext;
- }
-
- static class TrustManagerDelegate implements X509TrustManager {
-
- private final X509TrustManager trustManager;
- private final TrustStrategy trustStrategy;
-
- TrustManagerDelegate(final X509TrustManager trustManager, final TrustStrategy trustStrategy) {
- super();
- this.trustManager = trustManager;
- this.trustStrategy = trustStrategy;
- }
-
- public void checkClientTrusted(
- final X509Certificate[] chain, final String authType) throws CertificateException {
- this.trustManager.checkClientTrusted(chain, authType);
- }
-
- public void checkServerTrusted(
- final X509Certificate[] chain, final String authType) throws CertificateException {
- if (!this.trustStrategy.isTrusted(chain, authType)) {
- this.trustManager.checkServerTrusted(chain, authType);
- }
- }
-
- public X509Certificate[] getAcceptedIssuers() {
- return this.trustManager.getAcceptedIssuers();
- }
-
- }
-
- static class KeyManagerDelegate implements X509KeyManager {
-
- private final X509KeyManager keyManager;
- private final PrivateKeyStrategy aliasStrategy;
-
- KeyManagerDelegate(final X509KeyManager keyManager, final PrivateKeyStrategy aliasStrategy) {
- super();
- this.keyManager = keyManager;
- this.aliasStrategy = aliasStrategy;
- }
-
- public String[] getClientAliases(
- final String keyType, final Principal[] issuers) {
- return this.keyManager.getClientAliases(keyType, issuers);
- }
-
- public String chooseClientAlias(
- final String[] keyTypes, final Principal[] issuers, final Socket socket) {
- final Map<String, PrivateKeyDetails> validAliases = new HashMap<String, PrivateKeyDetails>();
- for (final String keyType: keyTypes) {
- final String[] aliases = this.keyManager.getClientAliases(keyType, issuers);
- if (aliases != null) {
- for (final String alias: aliases) {
- validAliases.put(alias,
- new PrivateKeyDetails(keyType, this.keyManager.getCertificateChain(alias)));
- }
- }
- }
- return this.aliasStrategy.chooseAlias(validAliases, socket);
- }
-
- public String[] getServerAliases(
- final String keyType, final Principal[] issuers) {
- return this.keyManager.getServerAliases(keyType, issuers);
- }
-
- public String chooseServerAlias(
- final String keyType, final Principal[] issuers, final Socket socket) {
- final Map<String, PrivateKeyDetails> validAliases = new HashMap<String, PrivateKeyDetails>();
- final String[] aliases = this.keyManager.getServerAliases(keyType, issuers);
- if (aliases != null) {
- for (final String alias: aliases) {
- validAliases.put(alias,
- new PrivateKeyDetails(keyType, this.keyManager.getCertificateChain(alias)));
- }
- }
- return this.aliasStrategy.chooseAlias(validAliases, socket);
- }
-
- public X509Certificate[] getCertificateChain(final String alias) {
- return this.keyManager.getCertificateChain(alias);
- }
-
- public PrivateKey getPrivateKey(final String alias) {
- return this.keyManager.getPrivateKey(alias);
- }
-
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLContexts.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLContexts.java
deleted file mode 100644
index a87a50168..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLContexts.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-
-import javax.net.ssl.SSLContext;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * {@link SSLContext} factory methods.
- *
- * @since 4.3
- */
-@Immutable
-public class SSLContexts {
-
- /**
- * Creates default factory based on the standard JSSE trust material
- * (<code>cacerts</code> file in the security properties directory). System properties
- * are not taken into consideration.
- *
- * @return the default SSL socket factory
- */
- public static SSLContext createDefault() throws SSLInitializationException {
- try {
- final SSLContext sslcontext = SSLContext.getInstance(SSLContextBuilder.TLS);
- sslcontext.init(null, null, null);
- return sslcontext;
- } catch (final NoSuchAlgorithmException ex) {
- throw new SSLInitializationException(ex.getMessage(), ex);
- } catch (final KeyManagementException ex) {
- throw new SSLInitializationException(ex.getMessage(), ex);
- }
- }
-
- /**
- * Creates default SSL context based on system properties. This method obtains
- * default SSL context by calling <code>SSLContext.getInstance("Default")</code>.
- * Please note that <code>Default</code> algorithm is supported as of Java 6.
- * This method will fall back onto {@link #createDefault()} when
- * <code>Default</code> algorithm is not available.
- *
- * @return default system SSL context
- */
- public static SSLContext createSystemDefault() throws SSLInitializationException {
- try {
- return SSLContext.getInstance("Default");
- } catch (final NoSuchAlgorithmException ex) {
- return createDefault();
- }
- }
-
- /**
- * Creates custom SSL context.
- *
- * @return default system SSL context
- */
- public static SSLContextBuilder custom() {
- return new SSLContextBuilder();
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLInitializationException.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLInitializationException.java
deleted file mode 100644
index 98cb5f9c3..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLInitializationException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-public class SSLInitializationException extends IllegalStateException {
-
- private static final long serialVersionUID = -8243587425648536702L;
-
- public SSLInitializationException(final String message, final Throwable cause) {
- super(message, cause);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLSocketFactory.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLSocketFactory.java
deleted file mode 100644
index 5c514d780..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/SSLSocketFactory.java
+++ /dev/null
@@ -1,570 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.UnknownHostException;
-import java.security.KeyManagementException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.UnrecoverableKeyException;
-
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocket;
-
-import ch.boye.httpclientandroidlib.HttpHost;
-import ch.boye.httpclientandroidlib.annotation.ThreadSafe;
-import ch.boye.httpclientandroidlib.conn.ConnectTimeoutException;
-import ch.boye.httpclientandroidlib.conn.HttpInetSocketAddress;
-import ch.boye.httpclientandroidlib.conn.scheme.HostNameResolver;
-import ch.boye.httpclientandroidlib.conn.scheme.LayeredSchemeSocketFactory;
-import ch.boye.httpclientandroidlib.conn.scheme.LayeredSocketFactory;
-import ch.boye.httpclientandroidlib.conn.scheme.SchemeLayeredSocketFactory;
-import ch.boye.httpclientandroidlib.conn.socket.LayeredConnectionSocketFactory;
-import ch.boye.httpclientandroidlib.params.HttpConnectionParams;
-import ch.boye.httpclientandroidlib.params.HttpParams;
-import ch.boye.httpclientandroidlib.protocol.HttpContext;
-import ch.boye.httpclientandroidlib.util.Args;
-import ch.boye.httpclientandroidlib.util.Asserts;
-import ch.boye.httpclientandroidlib.util.TextUtils;
-
-/**
- * Layered socket factory for TLS/SSL connections.
- * <p>
- * SSLSocketFactory can be used to validate the identity of the HTTPS server against a list of
- * trusted certificates and to authenticate to the HTTPS server using a private key.
- * <p>
- * SSLSocketFactory will enable server authentication when supplied with
- * a {@link KeyStore trust-store} file containing one or several trusted certificates. The client
- * secure socket will reject the connection during the SSL session handshake if the target HTTPS
- * server attempts to authenticate itself with a non-trusted certificate.
- * <p>
- * Use JDK keytool utility to import a trusted certificate and generate a trust-store file:
- * <pre>
- * keytool -import -alias "my server cert" -file server.crt -keystore my.truststore
- * </pre>
- * <p>
- * In special cases the standard trust verification process can be bypassed by using a custom
- * {@link TrustStrategy}. This interface is primarily intended for allowing self-signed
- * certificates to be accepted as trusted without having to add them to the trust-store file.
- * <p>
- * SSLSocketFactory will enable client authentication when supplied with
- * a {@link KeyStore key-store} file containing a private key/public certificate
- * pair. The client secure socket will use the private key to authenticate
- * itself to the target HTTPS server during the SSL session handshake if
- * requested to do so by the server.
- * The target HTTPS server will in its turn verify the certificate presented
- * by the client in order to establish client's authenticity.
- * <p>
- * Use the following sequence of actions to generate a key-store file
- * </p>
- * <ul>
- * <li>
- * <p>
- * Use JDK keytool utility to generate a new key
- * <pre>keytool -genkey -v -alias "my client key" -validity 365 -keystore my.keystore</pre>
- * For simplicity use the same password for the key as that of the key-store
- * </p>
- * </li>
- * <li>
- * <p>
- * Issue a certificate signing request (CSR)
- * <pre>keytool -certreq -alias "my client key" -file mycertreq.csr -keystore my.keystore</pre>
- * </p>
- * </li>
- * <li>
- * <p>
- * Send the certificate request to the trusted Certificate Authority for signature.
- * One may choose to act as her own CA and sign the certificate request using a PKI
- * tool, such as OpenSSL.
- * </p>
- * </li>
- * <li>
- * <p>
- * Import the trusted CA root certificate
- * <pre>keytool -import -alias "my trusted ca" -file caroot.crt -keystore my.keystore</pre>
- * </p>
- * </li>
- * <li>
- * <p>
- * Import the PKCS#7 file containg the complete certificate chain
- * <pre>keytool -import -alias "my client key" -file mycert.p7 -keystore my.keystore</pre>
- * </p>
- * </li>
- * <li>
- * <p>
- * Verify the content the resultant keystore file
- * <pre>keytool -list -v -keystore my.keystore</pre>
- * </p>
- * </li>
- * </ul>
- *
- * @since 4.0
- *
- * @deprecated (4.3) use {@link SSLConnectionSocketFactory}.
- */
-@ThreadSafe
-@Deprecated
-public class SSLSocketFactory implements LayeredConnectionSocketFactory, SchemeLayeredSocketFactory,
- LayeredSchemeSocketFactory, LayeredSocketFactory {
-
- public static final String TLS = "TLS";
- public static final String SSL = "SSL";
- public static final String SSLV2 = "SSLv2";
-
- public static final X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER
- = new AllowAllHostnameVerifier();
-
- public static final X509HostnameVerifier BROWSER_COMPATIBLE_HOSTNAME_VERIFIER
- = new BrowserCompatHostnameVerifier();
-
- public static final X509HostnameVerifier STRICT_HOSTNAME_VERIFIER
- = new StrictHostnameVerifier();
-
- /**
- * Obtains default SSL socket factory with an SSL context based on the standard JSSE
- * trust material (<code>cacerts</code> file in the security properties directory).
- * System properties are not taken into consideration.
- *
- * @return default SSL socket factory
- */
- public static SSLSocketFactory getSocketFactory() throws SSLInitializationException {
- return new SSLSocketFactory(
- SSLContexts.createDefault(),
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- private static String[] split(final String s) {
- if (TextUtils.isBlank(s)) {
- return null;
- }
- return s.split(" *, *");
- }
-
- /**
- * Obtains default SSL socket factory with an SSL context based on system properties
- * as described in
- * <a href="http://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html">
- * "JavaTM Secure Socket Extension (JSSE) Reference Guide for the JavaTM 2 Platform
- * Standard Edition 5</a>
- *
- * @return default system SSL socket factory
- */
- public static SSLSocketFactory getSystemSocketFactory() throws SSLInitializationException {
- return new SSLSocketFactory(
- (javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault(),
- split(System.getProperty("https.protocols")),
- split(System.getProperty("https.cipherSuites")),
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- private final javax.net.ssl.SSLSocketFactory socketfactory;
- private final HostNameResolver nameResolver;
- // TODO: make final
- private volatile X509HostnameVerifier hostnameVerifier;
- private final String[] supportedProtocols;
- private final String[] supportedCipherSuites;
-
- public SSLSocketFactory(
- final String algorithm,
- final KeyStore keystore,
- final String keyPassword,
- final KeyStore truststore,
- final SecureRandom random,
- final HostNameResolver nameResolver)
- throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
- this(SSLContexts.custom()
- .useProtocol(algorithm)
- .setSecureRandom(random)
- .loadKeyMaterial(keystore, keyPassword != null ? keyPassword.toCharArray() : null)
- .loadTrustMaterial(truststore)
- .build(),
- nameResolver);
- }
-
- /**
- * @since 4.1
- */
- public SSLSocketFactory(
- final String algorithm,
- final KeyStore keystore,
- final String keyPassword,
- final KeyStore truststore,
- final SecureRandom random,
- final TrustStrategy trustStrategy,
- final X509HostnameVerifier hostnameVerifier)
- throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
- this(SSLContexts.custom()
- .useProtocol(algorithm)
- .setSecureRandom(random)
- .loadKeyMaterial(keystore, keyPassword != null ? keyPassword.toCharArray() : null)
- .loadTrustMaterial(truststore, trustStrategy)
- .build(),
- hostnameVerifier);
- }
-
- /**
- * @since 4.1
- */
- public SSLSocketFactory(
- final String algorithm,
- final KeyStore keystore,
- final String keyPassword,
- final KeyStore truststore,
- final SecureRandom random,
- final X509HostnameVerifier hostnameVerifier)
- throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
- this(SSLContexts.custom()
- .useProtocol(algorithm)
- .setSecureRandom(random)
- .loadKeyMaterial(keystore, keyPassword != null ? keyPassword.toCharArray() : null)
- .loadTrustMaterial(truststore)
- .build(),
- hostnameVerifier);
- }
-
- public SSLSocketFactory(
- final KeyStore keystore,
- final String keystorePassword,
- final KeyStore truststore)
- throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
- this(SSLContexts.custom()
- .loadKeyMaterial(keystore, keystorePassword != null ? keystorePassword.toCharArray() : null)
- .loadTrustMaterial(truststore)
- .build(),
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- public SSLSocketFactory(
- final KeyStore keystore,
- final String keystorePassword)
- throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException{
- this(SSLContexts.custom()
- .loadKeyMaterial(keystore, keystorePassword != null ? keystorePassword.toCharArray() : null)
- .build(),
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- public SSLSocketFactory(
- final KeyStore truststore)
- throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
- this(SSLContexts.custom()
- .loadTrustMaterial(truststore)
- .build(),
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- /**
- * @since 4.1
- */
- public SSLSocketFactory(
- final TrustStrategy trustStrategy,
- final X509HostnameVerifier hostnameVerifier)
- throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
- this(SSLContexts.custom()
- .loadTrustMaterial(null, trustStrategy)
- .build(),
- hostnameVerifier);
- }
-
- /**
- * @since 4.1
- */
- public SSLSocketFactory(
- final TrustStrategy trustStrategy)
- throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
- this(SSLContexts.custom()
- .loadTrustMaterial(null, trustStrategy)
- .build(),
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- public SSLSocketFactory(final SSLContext sslContext) {
- this(sslContext, BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
- }
-
- public SSLSocketFactory(
- final SSLContext sslContext, final HostNameResolver nameResolver) {
- super();
- this.socketfactory = sslContext.getSocketFactory();
- this.hostnameVerifier = BROWSER_COMPATIBLE_HOSTNAME_VERIFIER;
- this.nameResolver = nameResolver;
- this.supportedProtocols = null;
- this.supportedCipherSuites = null;
- }
-
- /**
- * @since 4.1
- */
- public SSLSocketFactory(
- final SSLContext sslContext, final X509HostnameVerifier hostnameVerifier) {
- this(Args.notNull(sslContext, "SSL context").getSocketFactory(),
- null, null, hostnameVerifier);
- }
-
- /**
- * @since 4.3
- */
- public SSLSocketFactory(
- final SSLContext sslContext,
- final String[] supportedProtocols,
- final String[] supportedCipherSuites,
- final X509HostnameVerifier hostnameVerifier) {
- this(Args.notNull(sslContext, "SSL context").getSocketFactory(),
- supportedProtocols, supportedCipherSuites, hostnameVerifier);
- }
-
- /**
- * @since 4.2
- */
- public SSLSocketFactory(
- final javax.net.ssl.SSLSocketFactory socketfactory,
- final X509HostnameVerifier hostnameVerifier) {
- this(socketfactory, null, null, hostnameVerifier);
- }
-
- /**
- * @since 4.3
- */
- public SSLSocketFactory(
- final javax.net.ssl.SSLSocketFactory socketfactory,
- final String[] supportedProtocols,
- final String[] supportedCipherSuites,
- final X509HostnameVerifier hostnameVerifier) {
- this.socketfactory = Args.notNull(socketfactory, "SSL socket factory");
- this.supportedProtocols = supportedProtocols;
- this.supportedCipherSuites = supportedCipherSuites;
- this.hostnameVerifier = hostnameVerifier != null ? hostnameVerifier : BROWSER_COMPATIBLE_HOSTNAME_VERIFIER;
- this.nameResolver = null;
- }
-
- /**
- * @param params Optional parameters. Parameters passed to this method will have no effect.
- * This method will create a unconnected instance of {@link Socket} class.
- * @since 4.1
- */
- public Socket createSocket(final HttpParams params) throws IOException {
- return createSocket((HttpContext) null);
- }
-
- public Socket createSocket() throws IOException {
- return createSocket((HttpContext) null);
- }
-
- /**
- * @since 4.1
- */
- public Socket connectSocket(
- final Socket socket,
- final InetSocketAddress remoteAddress,
- final InetSocketAddress localAddress,
- final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- Args.notNull(remoteAddress, "Remote address");
- Args.notNull(params, "HTTP parameters");
- final HttpHost host;
- if (remoteAddress instanceof HttpInetSocketAddress) {
- host = ((HttpInetSocketAddress) remoteAddress).getHttpHost();
- } else {
- host = new HttpHost(remoteAddress.getHostName(), remoteAddress.getPort(), "https");
- }
- final int socketTimeout = HttpConnectionParams.getSoTimeout(params);
- final int connectTimeout = HttpConnectionParams.getConnectionTimeout(params);
- socket.setSoTimeout(socketTimeout);
- return connectSocket(connectTimeout, socket, host, remoteAddress, localAddress, null);
- }
-
- /**
- * Checks whether a socket connection is secure.
- * This factory creates TLS/SSL socket connections
- * which, by default, are considered secure.
- * <br/>
- * Derived classes may override this method to perform
- * runtime checks, for example based on the cypher suite.
- *
- * @param sock the connected socket
- *
- * @return <code>true</code>
- *
- * @throws IllegalArgumentException if the argument is invalid
- */
- public boolean isSecure(final Socket sock) throws IllegalArgumentException {
- Args.notNull(sock, "Socket");
- Asserts.check(sock instanceof SSLSocket, "Socket not created by this factory");
- Asserts.check(!sock.isClosed(), "Socket is closed");
- return true;
- }
-
- /**
- * @since 4.2
- */
- public Socket createLayeredSocket(
- final Socket socket,
- final String host,
- final int port,
- final HttpParams params) throws IOException, UnknownHostException {
- return createLayeredSocket(socket, host, port, (HttpContext) null);
- }
-
- public Socket createLayeredSocket(
- final Socket socket,
- final String host,
- final int port,
- final boolean autoClose) throws IOException, UnknownHostException {
- return createLayeredSocket(socket, host, port, (HttpContext) null);
- }
-
- public void setHostnameVerifier(final X509HostnameVerifier hostnameVerifier) {
- Args.notNull(hostnameVerifier, "Hostname verifier");
- this.hostnameVerifier = hostnameVerifier;
- }
-
- public X509HostnameVerifier getHostnameVerifier() {
- return this.hostnameVerifier;
- }
-
- public Socket connectSocket(
- final Socket socket,
- final String host, final int port,
- final InetAddress local, final int localPort,
- final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
- final InetAddress remote;
- if (this.nameResolver != null) {
- remote = this.nameResolver.resolve(host);
- } else {
- remote = InetAddress.getByName(host);
- }
- InetSocketAddress localAddress = null;
- if (local != null || localPort > 0) {
- localAddress = new InetSocketAddress(local, localPort > 0 ? localPort : 0);
- }
- final InetSocketAddress remoteAddress = new HttpInetSocketAddress(
- new HttpHost(host, port), remote, port);
- return connectSocket(socket, remoteAddress, localAddress, params);
- }
-
- public Socket createSocket(
- final Socket socket,
- final String host, final int port,
- final boolean autoClose) throws IOException, UnknownHostException {
- return createLayeredSocket(socket, host, port, autoClose);
- }
-
- /**
- * Performs any custom initialization for a newly created SSLSocket
- * (before the SSL handshake happens).
- *
- * The default implementation is a no-op, but could be overridden to, e.g.,
- * call {@link SSLSocket#setEnabledCipherSuites(java.lang.String[])}.
- *
- * @since 4.2
- */
- protected void prepareSocket(final SSLSocket socket) throws IOException {
- }
-
- private void internalPrepareSocket(final SSLSocket socket) throws IOException {
- if (supportedProtocols != null) {
- socket.setEnabledProtocols(supportedProtocols);
- }
- if (supportedCipherSuites != null) {
- socket.setEnabledCipherSuites(supportedCipherSuites);
- }
- prepareSocket(socket);
- }
-
- public Socket createSocket(final HttpContext context) throws IOException {
- final SSLSocket sock = (SSLSocket) this.socketfactory.createSocket();
- internalPrepareSocket(sock);
- return sock;
- }
-
- public Socket connectSocket(
- final int connectTimeout,
- final Socket socket,
- final HttpHost host,
- final InetSocketAddress remoteAddress,
- final InetSocketAddress localAddress,
- final HttpContext context) throws IOException {
- Args.notNull(host, "HTTP host");
- Args.notNull(remoteAddress, "Remote address");
- final Socket sock = socket != null ? socket : createSocket(context);
- if (localAddress != null) {
- sock.bind(localAddress);
- }
- try {
- sock.connect(remoteAddress, connectTimeout);
- } catch (final IOException ex) {
- try {
- sock.close();
- } catch (final IOException ignore) {
- }
- throw ex;
- }
- // Setup SSL layering if necessary
- if (sock instanceof SSLSocket) {
- final SSLSocket sslsock = (SSLSocket) sock;
- sslsock.startHandshake();
- verifyHostname(sslsock, host.getHostName());
- return sock;
- } else {
- return createLayeredSocket(sock, host.getHostName(), remoteAddress.getPort(), context);
- }
- }
-
- public Socket createLayeredSocket(
- final Socket socket,
- final String target,
- final int port,
- final HttpContext context) throws IOException {
- final SSLSocket sslsock = (SSLSocket) this.socketfactory.createSocket(
- socket,
- target,
- port,
- true);
- internalPrepareSocket(sslsock);
- sslsock.startHandshake();
- verifyHostname(sslsock, target);
- return sslsock;
- }
-
- private void verifyHostname(final SSLSocket sslsock, final String hostname) throws IOException {
- try {
- this.hostnameVerifier.verify(hostname, sslsock);
- // verifyHostName() didn't blowup - good!
- } catch (final IOException iox) {
- // close the socket before re-throwing the exception
- try { sslsock.close(); } catch (final Exception x) { /*ignore*/ }
- throw iox;
- }
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/StrictHostnameVerifier.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/StrictHostnameVerifier.java
deleted file mode 100644
index a6328a10c..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/StrictHostnameVerifier.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import javax.net.ssl.SSLException;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * The Strict HostnameVerifier works the same way as Sun Java 1.4, Sun
- * Java 5, Sun Java 6-rc. It's also pretty close to IE6. This
- * implementation appears to be compliant with RFC 2818 for dealing with
- * wildcards.
- * <p/>
- * The hostname must match either the first CN, or any of the subject-alts.
- * A wildcard can occur in the CN, and in any of the subject-alts. The
- * one divergence from IE6 is how we only check the first CN. IE6 allows
- * a match against any of the CNs present. We decided to follow in
- * Sun Java 1.4's footsteps and only check the first CN. (If you need
- * to check all the CN's, feel free to write your own implementation!).
- * <p/>
- * A wildcard such as "*.foo.com" matches only subdomains in the same
- * level, for example "a.foo.com". It does not match deeper subdomains
- * such as "a.b.foo.com".
- *
- *
- * @since 4.0
- */
-@Immutable
-public class StrictHostnameVerifier extends AbstractVerifier {
-
- public final void verify(
- final String host,
- final String[] cns,
- final String[] subjectAlts) throws SSLException {
- verify(host, cns, subjectAlts, true);
- }
-
- @Override
- public final String toString() {
- return "STRICT";
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TokenParser.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TokenParser.java
deleted file mode 100644
index 25bdcc5e6..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TokenParser.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.util.BitSet;
-
-import ch.boye.httpclientandroidlib.message.ParserCursor;
-import ch.boye.httpclientandroidlib.util.CharArrayBuffer;
-
-/**
- * Low level parser for header field elements. The parsing routines of this class are designed
- * to produce near zero intermediate garbage and make no intermediate copies of input data.
- * <p>
- * This class is immutable and thread safe.
- *
- * Temporary package-private copy of ch.boye.httpclientandroidlib.message.TokenParser
- */
-class TokenParser {
-
- public static BitSet INIT_BITSET(final int ... b) {
- final BitSet bitset = new BitSet();
- for (final int aB : b) {
- bitset.set(aB);
- }
- return bitset;
- }
-
- /** US-ASCII CR, carriage return (13) */
- public static final char CR = '\r';
-
- /** US-ASCII LF, line feed (10) */
- public static final char LF = '\n';
-
- /** US-ASCII SP, space (32) */
- public static final char SP = ' ';
-
- /** US-ASCII HT, horizontal-tab (9) */
- public static final char HT = '\t';
-
- /** Double quote */
- public static final char DQUOTE = '\"';
-
- /** Backward slash / escape character */
- public static final char ESCAPE = '\\';
-
- public static boolean isWhitespace(final char ch) {
- return ch == SP || ch == HT || ch == CR || ch == LF;
- }
-
- public static final TokenParser INSTANCE = new TokenParser();
-
- /**
- * Extracts from the sequence of chars a token terminated with any of the given delimiters
- * discarding semantically insignificant whitespace characters.
- *
- * @param buf buffer with the sequence of chars to be parsed
- * @param cursor defines the bounds and current position of the buffer
- * @param delimiters set of delimiting characters. Can be <code>null</code> if the token
- * is not delimited by any character.
- */
- public String parseToken(final CharArrayBuffer buf, final ParserCursor cursor, final BitSet delimiters) {
- final StringBuilder dst = new StringBuilder();
- boolean whitespace = false;
- while (!cursor.atEnd()) {
- final char current = buf.charAt(cursor.getPos());
- if (delimiters != null && delimiters.get(current)) {
- break;
- } else if (isWhitespace(current)) {
- skipWhiteSpace(buf, cursor);
- whitespace = true;
- } else {
- if (whitespace && dst.length() > 0) {
- dst.append(' ');
- }
- copyContent(buf, cursor, delimiters, dst);
- whitespace = false;
- }
- }
- return dst.toString();
- }
-
- /**
- * Extracts from the sequence of chars a value which can be enclosed in quote marks and
- * terminated with any of the given delimiters discarding semantically insignificant
- * whitespace characters.
- *
- * @param buf buffer with the sequence of chars to be parsed
- * @param cursor defines the bounds and current position of the buffer
- * @param delimiters set of delimiting characters. Can be <code>null</code> if the value
- * is not delimited by any character.
- */
- public String parseValue(final CharArrayBuffer buf, final ParserCursor cursor, final BitSet delimiters) {
- final StringBuilder dst = new StringBuilder();
- boolean whitespace = false;
- while (!cursor.atEnd()) {
- final char current = buf.charAt(cursor.getPos());
- if (delimiters != null && delimiters.get(current)) {
- break;
- } else if (isWhitespace(current)) {
- skipWhiteSpace(buf, cursor);
- whitespace = true;
- } else if (current == DQUOTE) {
- if (whitespace && dst.length() > 0) {
- dst.append(' ');
- }
- copyQuotedContent(buf, cursor, dst);
- whitespace = false;
- } else {
- if (whitespace && dst.length() > 0) {
- dst.append(' ');
- }
- copyUnquotedContent(buf, cursor, delimiters, dst);
- whitespace = false;
- }
- }
- return dst.toString();
- }
-
- /**
- * Skips semantically insignificant whitespace characters and moves the cursor to the closest
- * non-whitespace character.
- *
- * @param buf buffer with the sequence of chars to be parsed
- * @param cursor defines the bounds and current position of the buffer
- */
- public void skipWhiteSpace(final CharArrayBuffer buf, final ParserCursor cursor) {
- int pos = cursor.getPos();
- final int indexFrom = cursor.getPos();
- final int indexTo = cursor.getUpperBound();
- for (int i = indexFrom; i < indexTo; i++) {
- final char current = buf.charAt(i);
- if (!isWhitespace(current)) {
- break;
- } else {
- pos++;
- }
- }
- cursor.updatePos(pos);
- }
-
- /**
- * Transfers content into the destination buffer until a whitespace character or any of
- * the given delimiters is encountered.
- *
- * @param buf buffer with the sequence of chars to be parsed
- * @param cursor defines the bounds and current position of the buffer
- * @param delimiters set of delimiting characters. Can be <code>null</code> if the value
- * is delimited by a whitespace only.
- * @param dst destination buffer
- */
- public void copyContent(final CharArrayBuffer buf, final ParserCursor cursor, final BitSet delimiters,
- final StringBuilder dst) {
- int pos = cursor.getPos();
- final int indexFrom = cursor.getPos();
- final int indexTo = cursor.getUpperBound();
- for (int i = indexFrom; i < indexTo; i++) {
- final char current = buf.charAt(i);
- if ((delimiters != null && delimiters.get(current)) || isWhitespace(current)) {
- break;
- } else {
- pos++;
- dst.append(current);
- }
- }
- cursor.updatePos(pos);
- }
-
- /**
- * Transfers content into the destination buffer until a whitespace character, a quote,
- * or any of the given delimiters is encountered.
- *
- * @param buf buffer with the sequence of chars to be parsed
- * @param cursor defines the bounds and current position of the buffer
- * @param delimiters set of delimiting characters. Can be <code>null</code> if the value
- * is delimited by a whitespace or a quote only.
- * @param dst destination buffer
- */
- public void copyUnquotedContent(final CharArrayBuffer buf, final ParserCursor cursor,
- final BitSet delimiters, final StringBuilder dst) {
- int pos = cursor.getPos();
- final int indexFrom = cursor.getPos();
- final int indexTo = cursor.getUpperBound();
- for (int i = indexFrom; i < indexTo; i++) {
- final char current = buf.charAt(i);
- if ((delimiters != null && delimiters.get(current))
- || isWhitespace(current) || current == DQUOTE) {
- break;
- } else {
- pos++;
- dst.append(current);
- }
- }
- cursor.updatePos(pos);
- }
-
- /**
- * Transfers content enclosed with quote marks into the destination buffer.
- *
- * @param buf buffer with the sequence of chars to be parsed
- * @param cursor defines the bounds and current position of the buffer
- * @param dst destination buffer
- */
- public void copyQuotedContent(final CharArrayBuffer buf, final ParserCursor cursor,
- final StringBuilder dst) {
- if (cursor.atEnd()) {
- return;
- }
- int pos = cursor.getPos();
- int indexFrom = cursor.getPos();
- final int indexTo = cursor.getUpperBound();
- char current = buf.charAt(pos);
- if (current != DQUOTE) {
- return;
- }
- pos++;
- indexFrom++;
- boolean escaped = false;
- for (int i = indexFrom; i < indexTo; i++, pos++) {
- current = buf.charAt(i);
- if (escaped) {
- if (current != DQUOTE && current != ESCAPE) {
- dst.append(ESCAPE);
- }
- dst.append(current);
- escaped = false;
- } else {
- if (current == DQUOTE) {
- pos++;
- break;
- }
- if (current == ESCAPE) {
- escaped = true;
- } else if (current != CR && current != LF) {
- dst.append(current);
- }
- }
- }
- cursor.updatePos(pos);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustSelfSignedStrategy.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustSelfSignedStrategy.java
deleted file mode 100644
index a3c23690b..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustSelfSignedStrategy.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-
-/**
- * A trust strategy that accepts self-signed certificates as trusted. Verification of all other
- * certificates is done by the trust manager configured in the SSL context.
- *
- * @since 4.1
- */
-public class TrustSelfSignedStrategy implements TrustStrategy {
-
- public boolean isTrusted(
- final X509Certificate[] chain, final String authType) throws CertificateException {
- return chain.length == 1;
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustStrategy.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustStrategy.java
deleted file mode 100644
index 7f4914503..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustStrategy.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-
-/**
- * A strategy to establish trustworthiness of certificates without consulting the trust manager
- * configured in the actual SSL context. This interface can be used to override the standard
- * JSSE certificate verification process.
- *
- * @since 4.1
- */
-public interface TrustStrategy {
-
- /**
- * Determines whether the certificate chain can be trusted without consulting the trust manager
- * configured in the actual SSL context. This method can be used to override the standard JSSE
- * certificate verification process.
- * <p>
- * Please note that, if this method returns <code>false</code>, the trust manager configured
- * in the actual SSL context can still clear the certificate as trusted.
- *
- * @param chain the peer certificate chain
- * @param authType the authentication type based on the client certificate
- * @return <code>true</code> if the certificate can be trusted without verification by
- * the trust manager, <code>false</code> otherwise.
- * @throws CertificateException thrown if the certificate is not trusted or invalid.
- */
- boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/X509HostnameVerifier.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/X509HostnameVerifier.java
deleted file mode 100644
index cd57c623e..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/X509HostnameVerifier.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.ssl;
-
-import java.io.IOException;
-import java.security.cert.X509Certificate;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.SSLException;
-import javax.net.ssl.SSLSocket;
-
-/**
- * Interface for checking if a hostname matches the names stored inside the
- * server's X.509 certificate. This interface extends
- * {@link javax.net.ssl.HostnameVerifier}, but it is recommended to use
- * methods added by X509HostnameVerifier.
- *
- * @since 4.0
- */
-public interface X509HostnameVerifier extends HostnameVerifier {
-
- /**
- * Verifies that the host name is an acceptable match with the server's
- * authentication scheme based on the given {@link SSLSocket}.
- *
- * @param host the host.
- * @param ssl the SSL socket.
- * @throws IOException if an I/O error occurs or the verification process
- * fails.
- */
- void verify(String host, SSLSocket ssl) throws IOException;
-
- /**
- * Verifies that the host name is an acceptable match with the server's
- * authentication scheme based on the given {@link X509Certificate}.
- *
- * @param host the host.
- * @param cert the certificate.
- * @throws SSLException if the verification process fails.
- */
- void verify(String host, X509Certificate cert) throws SSLException;
-
- /**
- * Checks to see if the supplied hostname matches any of the supplied CNs
- * or "DNS" Subject-Alts. Most implementations only look at the first CN,
- * and ignore any additional CNs. Most implementations do look at all of
- * the "DNS" Subject-Alts. The CNs or Subject-Alts may contain wildcards
- * according to RFC 2818.
- *
- * @param cns CN fields, in order, as extracted from the X.509
- * certificate.
- * @param subjectAlts Subject-Alt fields of type 2 ("DNS"), as extracted
- * from the X.509 certificate.
- * @param host The hostname to verify.
- * @throws SSLException if the verification process fails.
- */
- void verify(String host, String[] cns, String[] subjectAlts)
- throws SSLException;
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/package-info.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/package-info.java
deleted file mode 100644
index c05bf5be0..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/package-info.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-/**
- * Client TLS/SSL support.
- */
-package ch.boye.httpclientandroidlib.conn.ssl;
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/InetAddressUtils.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/InetAddressUtils.java
deleted file mode 100644
index ac9a8e2db..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/InetAddressUtils.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package ch.boye.httpclientandroidlib.conn.util;
-
-import java.util.regex.Pattern;
-
-import ch.boye.httpclientandroidlib.annotation.Immutable;
-
-/**
- * A collection of utilities relating to InetAddresses.
- *
- * @since 4.0
- */
-@Immutable
-public class InetAddressUtils {
-
- private InetAddressUtils() {
- }
-
- private static final String IPV4_BASIC_PATTERN_STRING =
- "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}" + // initial 3 fields, 0-255 followed by .
- "([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"; // final field, 0-255
-
- private static final Pattern IPV4_PATTERN =
- Pattern.compile("^" + IPV4_BASIC_PATTERN_STRING + "$");
-
- private static final Pattern IPV4_MAPPED_IPV6_PATTERN = // TODO does not allow for redundant leading zeros
- Pattern.compile("^::[fF]{4}:" + IPV4_BASIC_PATTERN_STRING + "$");
-
- private static final Pattern IPV6_STD_PATTERN =
- Pattern.compile(
- "^[0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4}){7}$");
-
- private static final Pattern IPV6_HEX_COMPRESSED_PATTERN =
- Pattern.compile(
- "^(([0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){0,5})?)" + // 0-6 hex fields
- "::" +
- "(([0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){0,5})?)$"); // 0-6 hex fields
-
- /*
- * The above pattern is not totally rigorous as it allows for more than 7 hex fields in total
- */
- private static final char COLON_CHAR = ':';
-
- // Must not have more than 7 colons (i.e. 8 fields)
- private static final int MAX_COLON_COUNT = 7;
-
- /**
- * Checks whether the parameter is a valid IPv4 address
- *
- * @param input the address string to check for validity
- * @return true if the input parameter is a valid IPv4 address
- */
- public static boolean isIPv4Address(final String input) {
- return IPV4_PATTERN.matcher(input).matches();
- }
-
- public static boolean isIPv4MappedIPv64Address(final String input) {
- return IPV4_MAPPED_IPV6_PATTERN.matcher(input).matches();
- }
-
- /**
- * Checks whether the parameter is a valid standard (non-compressed) IPv6 address
- *
- * @param input the address string to check for validity
- * @return true if the input parameter is a valid standard (non-compressed) IPv6 address
- */
- public static boolean isIPv6StdAddress(final String input) {
- return IPV6_STD_PATTERN.matcher(input).matches();
- }
-
- /**
- * Checks whether the parameter is a valid compressed IPv6 address
- *
- * @param input the address string to check for validity
- * @return true if the input parameter is a valid compressed IPv6 address
- */
- public static boolean isIPv6HexCompressedAddress(final String input) {
- int colonCount = 0;
- for(int i = 0; i < input.length(); i++) {
- if (input.charAt(i) == COLON_CHAR) {
- colonCount++;
- }
- }
- return colonCount <= MAX_COLON_COUNT && IPV6_HEX_COMPRESSED_PATTERN.matcher(input).matches();
- }
-
- /**
- * Checks whether the parameter is a valid IPv6 address (including compressed).
- *
- * @param input the address string to check for validity
- * @return true if the input parameter is a valid standard or compressed IPv6 address
- */
- public static boolean isIPv6Address(final String input) {
- return isIPv6StdAddress(input) || isIPv6HexCompressedAddress(input);
- }
-
-}
diff --git a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/package-info.java b/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/package-info.java
deleted file mode 100644
index 6db59b736..000000000
--- a/mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/package-info.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-/**
- * Connection utility classes.
- */
-package ch.boye.httpclientandroidlib.conn.util;