.class public Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner; .super Ljava/lang/Object; .source "ProxySelectorRoutePlanner.java" # interfaces .implements Lorg/apache/http/conn/routing/HttpRoutePlanner; # annotations .annotation runtime Ljava/lang/Deprecated; .end annotation # instance fields .field protected proxySelector:Ljava/net/ProxySelector; .field protected final schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; # direct methods .method public constructor (Lorg/apache/http/conn/scheme/SchemeRegistry;Ljava/net/ProxySelector;)V .registers 4 .line 90 invoke-direct {p0}, Ljava/lang/Object;->()V .line 91 const-string v0, "SchemeRegistry" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 92 iput-object p1, p0, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; .line 93 iput-object p2, p0, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->proxySelector:Ljava/net/ProxySelector; return-void .end method # virtual methods .method protected chooseProxy(Ljava/util/List;Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Ljava/net/Proxy; .registers 7 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "Ljava/net/Proxy;", ">;", "Lorg/apache/http/HttpHost;", "Lorg/apache/http/HttpRequest;", "Lorg/apache/http/protocol/HttpContext;", ")", "Ljava/net/Proxy;" } .end annotation .line 246 const-string p2, "List of proxies" invoke-static {p1, p2}, Lorg/apache/http/util/Args;->notEmpty(Ljava/util/Collection;Ljava/lang/String;)Ljava/util/Collection; const/4 p2, 0x0 const/4 p3, 0x0 :goto_7 if-nez p2, :cond_2c .line 251 invoke-interface {p1}, Ljava/util/List;->size()I move-result p4 if-ge p3, p4, :cond_2c .line 253 invoke-interface {p1, p3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p4 check-cast p4, Ljava/net/Proxy; .line 254 sget-object v0, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner$1;->$SwitchMap$java$net$Proxy$Type:[I invoke-virtual {p4}, Ljava/net/Proxy;->type()Ljava/net/Proxy$Type; move-result-object v1 invoke-virtual {v1}, Ljava/net/Proxy$Type;->ordinal()I move-result v1 aget v0, v0, v1 const/4 v1, 0x1 if-eq v0, v1, :cond_28 const/4 v1, 0x2 if-eq v0, v1, :cond_28 goto :goto_29 :cond_28 move-object p2, p4 :goto_29 add-int/lit8 p3, p3, 0x1 goto :goto_7 :cond_2c if-nez p2, :cond_30 .line 272 sget-object p2, Ljava/net/Proxy;->NO_PROXY:Ljava/net/Proxy; :cond_30 return-object p2 .end method .method protected determineProxy(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpHost; .registers 8 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/HttpException; } .end annotation .line 171 iget-object v0, p0, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->proxySelector:Ljava/net/ProxySelector; if-nez v0, :cond_8 .line 173 invoke-static {}, Ljava/net/ProxySelector;->getDefault()Ljava/net/ProxySelector; move-result-object v0 :cond_8 const/4 v1, 0x0 if-nez v0, :cond_c return-object v1 .line 181 :cond_c :try_start_c new-instance v2, Ljava/net/URI; invoke-virtual {p1}, Lorg/apache/http/HttpHost;->toURI()Ljava/lang/String; move-result-object v3 invoke-direct {v2, v3}, Ljava/net/URI;->(Ljava/lang/String;)V :try_end_15 .catch Ljava/net/URISyntaxException; {:try_start_c .. :try_end_15} :catch_5b .line 186 invoke-virtual {v0, v2}, Ljava/net/ProxySelector;->select(Ljava/net/URI;)Ljava/util/List; move-result-object v0 .line 188 invoke-virtual {p0, v0, p1, p2, p3}, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->chooseProxy(Ljava/util/List;Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Ljava/net/Proxy; move-result-object p1 .line 191 invoke-virtual {p1}, Ljava/net/Proxy;->type()Ljava/net/Proxy$Type; move-result-object p2 sget-object p3, Ljava/net/Proxy$Type;->HTTP:Ljava/net/Proxy$Type; if-ne p2, p3, :cond_5a .line 193 invoke-virtual {p1}, Ljava/net/Proxy;->address()Ljava/net/SocketAddress; move-result-object p2 instance-of p2, p2, Ljava/net/InetSocketAddress; if-eqz p2, :cond_41 .line 197 invoke-virtual {p1}, Ljava/net/Proxy;->address()Ljava/net/SocketAddress; move-result-object p1 check-cast p1, Ljava/net/InetSocketAddress; .line 199 new-instance v1, Lorg/apache/http/HttpHost; invoke-virtual {p0, p1}, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->getHost(Ljava/net/InetSocketAddress;)Ljava/lang/String; move-result-object p2 invoke-virtual {p1}, Ljava/net/InetSocketAddress;->getPort()I move-result p1 invoke-direct {v1, p2, p1}, Lorg/apache/http/HttpHost;->(Ljava/lang/String;I)V goto :goto_5a .line 194 :cond_41 new-instance p2, Lorg/apache/http/HttpException; new-instance p3, Ljava/lang/StringBuilder; const-string v0, "Unable to handle non-Inet proxy address: " invoke-direct {p3, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1}, Ljava/net/Proxy;->address()Ljava/net/SocketAddress; move-result-object p1 invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p2, p1}, Lorg/apache/http/HttpException;->(Ljava/lang/String;)V throw p2 :cond_5a :goto_5a return-object v1 :catch_5b move-exception p2 .line 183 new-instance p3, Lorg/apache/http/HttpException; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "Cannot convert host to URI: " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p3, p1, p2}, Lorg/apache/http/HttpException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw p3 .end method .method public determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute; .registers 6 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/HttpException; } .end annotation .line 121 const-string v0, "HTTP request" invoke-static {p2, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 124 invoke-interface {p2}, Lorg/apache/http/HttpRequest;->getParams()Lorg/apache/http/params/HttpParams; move-result-object v0 invoke-static {v0}, Lorg/apache/http/conn/params/ConnRouteParams;->getForcedRoute(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/conn/routing/HttpRoute; move-result-object v0 if-eqz v0, :cond_10 return-object v0 .line 133 :cond_10 const-string v0, "Target host" invoke-static {p1, v0}, Lorg/apache/http/util/Asserts;->notNull(Ljava/lang/Object;Ljava/lang/String;)V .line 135 invoke-interface {p2}, Lorg/apache/http/HttpRequest;->getParams()Lorg/apache/http/params/HttpParams; move-result-object v0 invoke-static {v0}, Lorg/apache/http/conn/params/ConnRouteParams;->getLocalAddress(Lorg/apache/http/params/HttpParams;)Ljava/net/InetAddress; move-result-object v0 .line 137 invoke-virtual {p0, p1, p2, p3}, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->determineProxy(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpHost; move-result-object p2 .line 139 iget-object p3, p0, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; invoke-virtual {p1}, Lorg/apache/http/HttpHost;->getSchemeName()Ljava/lang/String; move-result-object v1 invoke-virtual {p3, v1}, Lorg/apache/http/conn/scheme/SchemeRegistry;->getScheme(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme; move-result-object p3 .line 143 invoke-virtual {p3}, Lorg/apache/http/conn/scheme/Scheme;->isLayered()Z move-result p3 if-nez p2, :cond_37 .line 146 new-instance p2, Lorg/apache/http/conn/routing/HttpRoute; invoke-direct {p2, p1, v0, p3}, Lorg/apache/http/conn/routing/HttpRoute;->(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Z)V goto :goto_3d .line 148 :cond_37 new-instance v1, Lorg/apache/http/conn/routing/HttpRoute; invoke-direct {v1, p1, v0, p2, p3}, Lorg/apache/http/conn/routing/HttpRoute;->(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/HttpHost;Z)V move-object p2, v1 :goto_3d return-object p2 .end method .method protected getHost(Ljava/net/InetSocketAddress;)Ljava/lang/String; .registers 3 .line 221 invoke-virtual {p1}, Ljava/net/InetSocketAddress;->isUnresolved()Z move-result v0 if-eqz v0, :cond_b invoke-virtual {p1}, Ljava/net/InetSocketAddress;->getHostName()Ljava/lang/String; move-result-object p1 goto :goto_13 :cond_b invoke-virtual {p1}, Ljava/net/InetSocketAddress;->getAddress()Ljava/net/InetAddress; move-result-object p1 invoke-virtual {p1}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String; move-result-object p1 :goto_13 return-object p1 .end method .method public getProxySelector()Ljava/net/ProxySelector; .registers 2 .line 102 iget-object v0, p0, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->proxySelector:Ljava/net/ProxySelector; return-object v0 .end method .method public setProxySelector(Ljava/net/ProxySelector;)V .registers 2 .line 112 iput-object p1, p0, Lorg/apache/http/impl/conn/ProxySelectorRoutePlanner;->proxySelector:Ljava/net/ProxySelector; return-void .end method