public class org.apache.http.impl.DefaultConnectionReuseStrategy extends java.lang.Object implements org.apache.http.ConnectionReuseStrategy
{
public static final org.apache.http.impl.DefaultConnectionReuseStrategy INSTANCE;
public void <init>()
{
org.apache.http.impl.DefaultConnectionReuseStrategy v;
v := @this: org.apache.http.impl.DefaultConnectionReuseStrategy;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public boolean keepAlive(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext)
{
org.apache.http.Header v, v, v, v;
org.apache.http.StatusLine v, v;
byte v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.http.Header[] v;
org.apache.http.HeaderIterator v, v;
org.apache.http.impl.DefaultConnectionReuseStrategy v;
org.apache.http.HttpVersion v;
long v;
org.apache.http.message.BasicTokenIterator v, v;
int v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
org.apache.http.ParseException v, v;
java.lang.NumberFormatException v, v;
org.apache.http.ProtocolVersion v;
org.apache.http.protocol.HttpContext v;
org.apache.http.HttpResponse v;
java.lang.Object v;
v := @this: org.apache.http.impl.DefaultConnectionReuseStrategy;
v := @parameter: org.apache.http.HttpResponse;
v := @parameter: org.apache.http.protocol.HttpContext;
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "HTTP response");
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "HTTP context");
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.StatusLine getStatusLine()>();
v = interfaceinvoke v.<org.apache.http.StatusLine: int getStatusCode()>();
if v != 204 goto label;
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.Header getFirstHeader(java.lang.String)>("Content-Length");
if v == null goto label;
label:
v = interfaceinvoke v.<org.apache.http.Header: java.lang.String getValue()>();
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
if v <= 0 goto label;
label:
return 0;
label:
v := @caughtexception;
label:
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.Header getFirstHeader(java.lang.String)>("Transfer-Encoding");
if v == null goto label;
return 0;
label:
v = interfaceinvoke v.<org.apache.http.protocol.HttpContext: java.lang.Object getAttribute(java.lang.String)>("http.request");
if v == null goto label;
label:
v = new org.apache.http.message.BasicTokenIterator;
v = interfaceinvoke v.<org.apache.http.HttpRequest: org.apache.http.HeaderIterator headerIterator(java.lang.String)>("Connection");
specialinvoke v.<org.apache.http.message.BasicTokenIterator: void <init>(org.apache.http.HeaderIterator)>(v);
label:
v = interfaceinvoke v.<org.apache.http.TokenIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.http.TokenIterator: java.lang.String nextToken()>();
v = "Close";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
label:
return 0;
label:
v := @caughtexception;
return 0;
label:
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.StatusLine getStatusLine()>();
v = interfaceinvoke v.<org.apache.http.StatusLine: org.apache.http.ProtocolVersion getProtocolVersion()>();
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.Header getFirstHeader(java.lang.String)>("Transfer-Encoding");
if v == null goto label;
v = "chunked";
v = interfaceinvoke v.<org.apache.http.Header: java.lang.String getValue()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
return 0;
label:
v = specialinvoke v.<org.apache.http.impl.DefaultConnectionReuseStrategy: boolean canResponseHaveBody(org.apache.http.HttpRequest,org.apache.http.HttpResponse)>(v, v);
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.Header[] getHeaders(java.lang.String)>("Content-Length");
v = lengthof v;
if v != 1 goto label;
v = v[0];
label:
v = interfaceinvoke v.<org.apache.http.Header: java.lang.String getValue()>();
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
v = v cmp 0L;
if v >= 0 goto label;
label:
return 0;
label:
v := @caughtexception;
return 0;
label:
return 0;
label:
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.HeaderIterator headerIterator(java.lang.String)>("Connection");
v = interfaceinvoke v.<org.apache.http.HeaderIterator: boolean hasNext()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.HeaderIterator headerIterator(java.lang.String)>("Proxy-Connection");
label:
v = interfaceinvoke v.<org.apache.http.HeaderIterator: boolean hasNext()>();
if v == 0 goto label;
label:
v = new org.apache.http.message.BasicTokenIterator;
specialinvoke v.<org.apache.http.message.BasicTokenIterator: void <init>(org.apache.http.HeaderIterator)>(v);
v = 0;
label:
v = interfaceinvoke v.<org.apache.http.TokenIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.http.TokenIterator: java.lang.String nextToken()>();
v = "Close";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
label:
return 0;
label:
v = "Keep-Alive";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
if v == 0 goto label;
label:
return 1;
label:
v := @caughtexception;
return 0;
label:
v = <org.apache.http.HttpVersion: org.apache.http.HttpVersion HTTP_1_0>;
v = virtualinvoke v.<org.apache.http.ProtocolVersion: boolean lessEquals(org.apache.http.ProtocolVersion)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
catch java.lang.NumberFormatException from label to label with label;
catch org.apache.http.ParseException from label to label with label;
catch org.apache.http.ParseException from label to label with label;
catch java.lang.NumberFormatException from label to label with label;
catch org.apache.http.ParseException from label to label with label;
catch org.apache.http.ParseException from label to label with label;
}
protected org.apache.http.TokenIterator createTokenIterator(org.apache.http.HeaderIterator)
{
org.apache.http.impl.DefaultConnectionReuseStrategy v;
org.apache.http.HeaderIterator v;
org.apache.http.message.BasicTokenIterator v;
v := @this: org.apache.http.impl.DefaultConnectionReuseStrategy;
v := @parameter: org.apache.http.HeaderIterator;
v = new org.apache.http.message.BasicTokenIterator;
specialinvoke v.<org.apache.http.message.BasicTokenIterator: void <init>(org.apache.http.HeaderIterator)>(v);
return v;
}
private boolean canResponseHaveBody(org.apache.http.HttpRequest, org.apache.http.HttpResponse)
{
org.apache.http.impl.DefaultConnectionReuseStrategy v;
org.apache.http.HttpRequest v;
org.apache.http.StatusLine v;
org.apache.http.RequestLine v;
int v;
org.apache.http.HttpResponse v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.http.impl.DefaultConnectionReuseStrategy;
v := @parameter: org.apache.http.HttpRequest;
v := @parameter: org.apache.http.HttpResponse;
if v == null goto label;
v = interfaceinvoke v.<org.apache.http.HttpRequest: org.apache.http.RequestLine getRequestLine()>();
v = interfaceinvoke v.<org.apache.http.RequestLine: java.lang.String getMethod()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("HEAD");
if v == 0 goto label;
return 0;
label:
v = interfaceinvoke v.<org.apache.http.HttpResponse: org.apache.http.StatusLine getStatusLine()>();
v = interfaceinvoke v.<org.apache.http.StatusLine: int getStatusCode()>();
if v < 200 goto label;
if v == 204 goto label;
if v == 304 goto label;
if v == 205 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static void <clinit>()
{
org.apache.http.impl.DefaultConnectionReuseStrategy v;
v = new org.apache.http.impl.DefaultConnectionReuseStrategy;
specialinvoke v.<org.apache.http.impl.DefaultConnectionReuseStrategy: void <init>()>();
<org.apache.http.impl.DefaultConnectionReuseStrategy: org.apache.http.impl.DefaultConnectionReuseStrategy INSTANCE> = v;
return;
}
}