.class public Lorg/apache/http/impl/conn/DefaultClientConnectionOperator; .super Ljava/lang/Object; .source "DefaultClientConnectionOperator.java" # interfaces .implements Lorg/apache/http/conn/ClientConnectionOperator; # annotations .annotation runtime Ljava/lang/Deprecated; .end annotation # instance fields .field protected final dnsResolver:Lorg/apache/http/conn/DnsResolver; .field private final log:Lorg/apache/commons/logging/Log; .field protected final schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; # direct methods .method public constructor (Lorg/apache/http/conn/scheme/SchemeRegistry;)V .registers 3 .line 108 invoke-direct {p0}, Ljava/lang/Object;->()V .line 93 invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 invoke-static {v0}, Lorg/apache/commons/logging/LogFactory;->getLog(Ljava/lang/Class;)Lorg/apache/commons/logging/Log; move-result-object v0 iput-object v0, p0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->log:Lorg/apache/commons/logging/Log; .line 109 const-string v0, "Scheme registry" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 110 iput-object p1, p0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; .line 111 new-instance p1, Lorg/apache/http/impl/conn/SystemDefaultDnsResolver; invoke-direct {p1}, Lorg/apache/http/impl/conn/SystemDefaultDnsResolver;->()V iput-object p1, p0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->dnsResolver:Lorg/apache/http/conn/DnsResolver; return-void .end method .method public constructor (Lorg/apache/http/conn/scheme/SchemeRegistry;Lorg/apache/http/conn/DnsResolver;)V .registers 4 .line 123 invoke-direct {p0}, Ljava/lang/Object;->()V .line 93 invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 invoke-static {v0}, Lorg/apache/commons/logging/LogFactory;->getLog(Ljava/lang/Class;)Lorg/apache/commons/logging/Log; move-result-object v0 iput-object v0, p0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->log:Lorg/apache/commons/logging/Log; .line 124 const-string v0, "Scheme registry" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 126 const-string v0, "DNS resolver" invoke-static {p2, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 128 iput-object p1, p0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; .line 129 iput-object p2, p0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->dnsResolver:Lorg/apache/http/conn/DnsResolver; return-void .end method .method private getSchemeRegistry(Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/scheme/SchemeRegistry; .registers 3 .line 138 const-string v0, "http.scheme-registry" invoke-interface {p1, v0}, Lorg/apache/http/protocol/HttpContext;->getAttribute(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lorg/apache/http/conn/scheme/SchemeRegistry; if-nez p1, :cond_c .line 141 iget-object p1, p0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; :cond_c return-object p1 .end method # virtual methods .method public createConnection()Lorg/apache/http/conn/OperatedClientConnection; .registers 2 .line 134 new-instance v0, Lorg/apache/http/impl/conn/DefaultClientConnection; invoke-direct {v0}, Lorg/apache/http/impl/conn/DefaultClientConnection;->()V return-object v0 .end method .method public openConnection(Lorg/apache/http/conn/OperatedClientConnection;Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V .registers 22 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation move-object/from16 v1, p0 move-object/from16 v2, p1 move-object/from16 v3, p2 move-object/from16 v4, p3 move-object/from16 v5, p4 move-object/from16 v6, p5 .line 153 const-string v0, "Connection" invoke-static {v2, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 154 const-string v0, "Target host" invoke-static {v3, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 155 const-string v0, "HTTP parameters" invoke-static {v6, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 156 invoke-interface/range {p1 .. p1}, Lorg/apache/http/conn/OperatedClientConnection;->isOpen()Z move-result v0 const/4 v7, 0x1 xor-int/2addr v0, v7 const-string v8, "Connection must not be open" invoke-static {v0, v8}, Lorg/apache/http/util/Asserts;->check(ZLjava/lang/String;)V .line 158 invoke-direct {v1, v5}, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->getSchemeRegistry(Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/scheme/SchemeRegistry; move-result-object v0 .line 159 invoke-virtual/range {p2 .. p2}, Lorg/apache/http/HttpHost;->getSchemeName()Ljava/lang/String; move-result-object v8 invoke-virtual {v0, v8}, Lorg/apache/http/conn/scheme/SchemeRegistry;->getScheme(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme; move-result-object v0 .line 160 invoke-virtual {v0}, Lorg/apache/http/conn/scheme/Scheme;->getSchemeSocketFactory()Lorg/apache/http/conn/scheme/SchemeSocketFactory; move-result-object v8 .line 162 invoke-virtual/range {p2 .. p2}, Lorg/apache/http/HttpHost;->getHostName()Ljava/lang/String; move-result-object v9 invoke-virtual {v1, v9}, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->resolveHostname(Ljava/lang/String;)[Ljava/net/InetAddress; move-result-object v9 .line 163 invoke-virtual/range {p2 .. p2}, Lorg/apache/http/HttpHost;->getPort()I move-result v10 invoke-virtual {v0, v10}, Lorg/apache/http/conn/scheme/Scheme;->resolvePort(I)I move-result v10 const/4 v11, 0x0 move v12, v11 .line 164 :goto_48 array-length v0, v9 if-ge v12, v0, :cond_cd .line 165 aget-object v0, v9, v12 .line 166 array-length v13, v9 sub-int/2addr v13, v7 if-ne v12, v13, :cond_53 move v13, v7 goto :goto_54 :cond_53 move v13, v11 .line 168 :goto_54 invoke-interface {v8, v6}, Lorg/apache/http/conn/scheme/SchemeSocketFactory;->createSocket(Lorg/apache/http/params/HttpParams;)Ljava/net/Socket; move-result-object v14 .line 169 invoke-interface {v2, v14, v3}, Lorg/apache/http/conn/OperatedClientConnection;->opening(Ljava/net/Socket;Lorg/apache/http/HttpHost;)V .line 171 new-instance v15, Lorg/apache/http/conn/HttpInetSocketAddress; invoke-direct {v15, v3, v0, v10}, Lorg/apache/http/conn/HttpInetSocketAddress;->(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;I)V if-eqz v4, :cond_68 .line 174 new-instance v0, Ljava/net/InetSocketAddress; invoke-direct {v0, v4, v11}, Ljava/net/InetSocketAddress;->(Ljava/net/InetAddress;I)V goto :goto_69 :cond_68 const/4 v0, 0x0 .line 176 :goto_69 iget-object v7, v1, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->log:Lorg/apache/commons/logging/Log; invoke-interface {v7}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result v7 if-eqz v7, :cond_85 .line 177 iget-object v7, v1, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->log:Lorg/apache/commons/logging/Log; new-instance v11, Ljava/lang/StringBuilder; const-string v4, "Connecting to " invoke-direct {v11, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v11, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-interface {v7, v4}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V .line 180 :cond_85 :try_start_85 invoke-interface {v8, v14, v15, v0, v6}, Lorg/apache/http/conn/scheme/SchemeSocketFactory;->connectSocket(Ljava/net/Socket;Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;Lorg/apache/http/params/HttpParams;)Ljava/net/Socket; move-result-object v0 if-eq v14, v0, :cond_8f .line 183 invoke-interface {v2, v0, v3}, Lorg/apache/http/conn/OperatedClientConnection;->opening(Ljava/net/Socket;Lorg/apache/http/HttpHost;)V move-object v14, v0 .line 185 :cond_8f invoke-virtual {v1, v14, v5, v6}, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->prepareSocket(Ljava/net/Socket;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V .line 186 invoke-interface {v8, v14}, Lorg/apache/http/conn/scheme/SchemeSocketFactory;->isSecure(Ljava/net/Socket;)Z move-result v0 invoke-interface {v2, v0, v6}, Lorg/apache/http/conn/OperatedClientConnection;->openCompleted(ZLorg/apache/http/params/HttpParams;)V :try_end_99 .catch Ljava/net/ConnectException; {:try_start_85 .. :try_end_99} :catch_9f .catch Lorg/apache/http/conn/ConnectTimeoutException; {:try_start_85 .. :try_end_99} :catch_9a return-void :catch_9a move-exception v0 if-nez v13, :cond_9e goto :goto_a2 .line 194 :cond_9e throw v0 :catch_9f move-exception v0 if-nez v13, :cond_cc .line 197 :goto_a2 iget-object v0, v1, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->log:Lorg/apache/commons/logging/Log; invoke-interface {v0}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result v0 if-eqz v0, :cond_c4 .line 198 iget-object v0, v1, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->log:Lorg/apache/commons/logging/Log; new-instance v4, Ljava/lang/StringBuilder; const-string v7, "Connect to " invoke-direct {v4, v7}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v4, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v4 const-string v7, " timed out. Connection will be retried using another IP address" invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-interface {v0, v4}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V :cond_c4 add-int/lit8 v12, v12, 0x1 move-object/from16 v4, p3 const/4 v7, 0x1 const/4 v11, 0x0 goto/16 :goto_48 .line 190 :cond_cc throw v0 :cond_cd return-void .end method .method protected prepareSocket(Ljava/net/Socket;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 239 invoke-static {p3}, Lorg/apache/http/params/HttpConnectionParams;->getTcpNoDelay(Lorg/apache/http/params/HttpParams;)Z move-result p2 invoke-virtual {p1, p2}, Ljava/net/Socket;->setTcpNoDelay(Z)V .line 240 invoke-static {p3}, Lorg/apache/http/params/HttpConnectionParams;->getSoTimeout(Lorg/apache/http/params/HttpParams;)I move-result p2 invoke-virtual {p1, p2}, Ljava/net/Socket;->setSoTimeout(I)V .line 242 invoke-static {p3}, Lorg/apache/http/params/HttpConnectionParams;->getLinger(Lorg/apache/http/params/HttpParams;)I move-result p2 if-ltz p2, :cond_1c if-lez p2, :cond_18 const/4 p3, 0x1 goto :goto_19 :cond_18 const/4 p3, 0x0 .line 244 :goto_19 invoke-virtual {p1, p3, p2}, Ljava/net/Socket;->setSoLinger(ZI)V :cond_1c return-void .end method .method protected resolveHostname(Ljava/lang/String;)[Ljava/net/InetAddress; .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/net/UnknownHostException; } .end annotation .line 263 iget-object v0, p0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->dnsResolver:Lorg/apache/http/conn/DnsResolver; invoke-interface {v0, p1}, Lorg/apache/http/conn/DnsResolver;->resolve(Ljava/lang/String;)[Ljava/net/InetAddress; move-result-object p1 return-object p1 .end method .method public updateSecureConnection(Lorg/apache/http/conn/OperatedClientConnection;Lorg/apache/http/HttpHost;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V .registers 10 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 210 const-string v0, "Connection" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 211 const-string v0, "Target host" invoke-static {p2, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 212 const-string v0, "Parameters" invoke-static {p4, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 213 invoke-interface {p1}, Lorg/apache/http/conn/OperatedClientConnection;->isOpen()Z move-result v0 const-string v1, "Connection must be open" invoke-static {v0, v1}, Lorg/apache/http/util/Asserts;->check(ZLjava/lang/String;)V .line 215 invoke-direct {p0, p3}, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->getSchemeRegistry(Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/scheme/SchemeRegistry; move-result-object v0 .line 216 invoke-virtual {p2}, Lorg/apache/http/HttpHost;->getSchemeName()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Lorg/apache/http/conn/scheme/SchemeRegistry;->getScheme(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme; move-result-object v0 .line 217 invoke-virtual {v0}, Lorg/apache/http/conn/scheme/Scheme;->getSchemeSocketFactory()Lorg/apache/http/conn/scheme/SchemeSocketFactory; move-result-object v1 instance-of v1, v1, Lorg/apache/http/conn/scheme/SchemeLayeredSocketFactory; const-string v2, "Socket factory must implement SchemeLayeredSocketFactory" invoke-static {v1, v2}, Lorg/apache/http/util/Asserts;->check(ZLjava/lang/String;)V .line 219 invoke-virtual {v0}, Lorg/apache/http/conn/scheme/Scheme;->getSchemeSocketFactory()Lorg/apache/http/conn/scheme/SchemeSocketFactory; move-result-object v1 check-cast v1, Lorg/apache/http/conn/scheme/SchemeLayeredSocketFactory; .line 220 invoke-interface {p1}, Lorg/apache/http/conn/OperatedClientConnection;->getSocket()Ljava/net/Socket; move-result-object v2 invoke-virtual {p2}, Lorg/apache/http/HttpHost;->getHostName()Ljava/lang/String; move-result-object v3 invoke-virtual {p2}, Lorg/apache/http/HttpHost;->getPort()I move-result v4 invoke-virtual {v0, v4}, Lorg/apache/http/conn/scheme/Scheme;->resolvePort(I)I move-result v0 invoke-interface {v1, v2, v3, v0, p4}, Lorg/apache/http/conn/scheme/SchemeLayeredSocketFactory;->createLayeredSocket(Ljava/net/Socket;Ljava/lang/String;ILorg/apache/http/params/HttpParams;)Ljava/net/Socket; move-result-object v0 .line 222 invoke-virtual {p0, v0, p3, p4}, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->prepareSocket(Ljava/net/Socket;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V .line 223 invoke-interface {v1, v0}, Lorg/apache/http/conn/scheme/SchemeLayeredSocketFactory;->isSecure(Ljava/net/Socket;)Z move-result p3 invoke-interface {p1, v0, p2, p3, p4}, Lorg/apache/http/conn/OperatedClientConnection;->update(Ljava/net/Socket;Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V return-void .end method