.class public Lorg/apache/http/conn/routing/BasicRouteDirector; .super Ljava/lang/Object; .source "BasicRouteDirector.java" # interfaces .implements Lorg/apache/http/conn/routing/HttpRouteDirector; # direct methods .method public constructor ()V .registers 1 .line 40 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method # virtual methods .method protected directStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I .registers 6 .line 97 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->getHopCount()I move-result v0 const/4 v1, 0x1 const/4 v2, -0x1 if-le v0, v1, :cond_9 return v2 .line 100 :cond_9 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->getTargetHost()Lorg/apache/http/HttpHost; move-result-object v0 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->getTargetHost()Lorg/apache/http/HttpHost; move-result-object v1 invoke-virtual {v0, v1}, Lorg/apache/http/HttpHost;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_18 return v2 .line 111 :cond_18 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->isSecure()Z move-result v0 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->isSecure()Z move-result v1 if-eq v0, v1, :cond_23 return v2 .line 116 :cond_23 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->getLocalAddress()Ljava/net/InetAddress; move-result-object v0 if-eqz v0, :cond_38 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->getLocalAddress()Ljava/net/InetAddress; move-result-object p1 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->getLocalAddress()Ljava/net/InetAddress; move-result-object p2 invoke-virtual {p1, p2}, Ljava/net/InetAddress;->equals(Ljava/lang/Object;)Z move-result p1 if-nez p1, :cond_38 return v2 :cond_38 const/4 p1, 0x0 return p1 .end method .method protected firstStep(Lorg/apache/http/conn/routing/RouteInfo;)I .registers 3 .line 81 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->getHopCount()I move-result p1 const/4 v0, 0x1 if-le p1, v0, :cond_8 const/4 v0, 0x2 :cond_8 return v0 .end method .method public nextStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I .registers 5 .line 55 const-string v0, "Planned route" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; if-eqz p2, :cond_1f .line 59 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->getHopCount()I move-result v0 const/4 v1, 0x1 if-ge v0, v1, :cond_f goto :goto_1f .line 61 :cond_f invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->getHopCount()I move-result v0 if-le v0, v1, :cond_1a .line 62 invoke-virtual {p0, p1, p2}, Lorg/apache/http/conn/routing/BasicRouteDirector;->proxiedStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I move-result p1 goto :goto_23 .line 64 :cond_1a invoke-virtual {p0, p1, p2}, Lorg/apache/http/conn/routing/BasicRouteDirector;->directStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I move-result p1 goto :goto_23 .line 60 :cond_1f :goto_1f invoke-virtual {p0, p1}, Lorg/apache/http/conn/routing/BasicRouteDirector;->firstStep(Lorg/apache/http/conn/routing/RouteInfo;)I move-result p1 :goto_23 return p1 .end method .method protected proxiedStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I .registers 10 .line 137 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->getHopCount()I move-result v0 const/4 v1, 0x1 const/4 v2, -0x1 if-gt v0, v1, :cond_9 return v2 .line 140 :cond_9 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->getTargetHost()Lorg/apache/http/HttpHost; move-result-object v0 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->getTargetHost()Lorg/apache/http/HttpHost; move-result-object v1 invoke-virtual {v0, v1}, Lorg/apache/http/HttpHost;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_18 return v2 .line 143 :cond_18 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->getHopCount()I move-result v0 .line 144 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->getHopCount()I move-result v1 if-ge v0, v1, :cond_23 return v2 :cond_23 const/4 v3, 0x0 move v4, v3 :goto_25 add-int/lit8 v5, v1, -0x1 if-ge v4, v5, :cond_3b .line 150 invoke-interface {p1, v4}, Lorg/apache/http/conn/routing/RouteInfo;->getHopTarget(I)Lorg/apache/http/HttpHost; move-result-object v5 invoke-interface {p2, v4}, Lorg/apache/http/conn/routing/RouteInfo;->getHopTarget(I)Lorg/apache/http/HttpHost; move-result-object v6 invoke-virtual {v5, v6}, Lorg/apache/http/HttpHost;->equals(Ljava/lang/Object;)Z move-result v5 if-nez v5, :cond_38 return v2 :cond_38 add-int/lit8 v4, v4, 0x1 goto :goto_25 :cond_3b if-le v0, v1, :cond_3f const/4 p1, 0x4 return p1 .line 161 :cond_3f invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->isTunnelled()Z move-result v0 if-eqz v0, :cond_4b invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->isTunnelled()Z move-result v0 if-eqz v0, :cond_57 :cond_4b invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->isLayered()Z move-result v0 if-eqz v0, :cond_58 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->isLayered()Z move-result v0 if-nez v0, :cond_58 :cond_57 return v2 .line 166 :cond_58 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->isTunnelled()Z move-result v0 if-eqz v0, :cond_66 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->isTunnelled()Z move-result v0 if-nez v0, :cond_66 const/4 p1, 0x3 return p1 .line 169 :cond_66 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->isLayered()Z move-result v0 if-eqz v0, :cond_74 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->isLayered()Z move-result v0 if-nez v0, :cond_74 const/4 p1, 0x5 return p1 .line 176 :cond_74 invoke-interface {p1}, Lorg/apache/http/conn/routing/RouteInfo;->isSecure()Z move-result p1 invoke-interface {p2}, Lorg/apache/http/conn/routing/RouteInfo;->isSecure()Z move-result p2 if-eq p1, p2, :cond_7f return v2 :cond_7f return v3 .end method