public final class io.netty.handler.proxy.HttpProxyHandler extends io.netty.handler.proxy.ProxyHandler
{
private static final java.lang.String PROTOCOL;
private static final java.lang.String AUTH_BASIC;
private final io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper codecWrapper;
private final java.lang.String username;
private final java.lang.String password;
private final java.lang.CharSequence authorization;
private final io.netty.handler.codec.http.HttpHeaders outboundHeaders;
private final boolean ignoreDefaultPortsInConnectHostHeader;
private io.netty.handler.codec.http.HttpResponseStatus status;
private io.netty.handler.codec.http.HttpHeaders inboundHeaders;
public void <init>(java.net.SocketAddress)
{
io.netty.handler.proxy.HttpProxyHandler v;
java.net.SocketAddress v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: java.net.SocketAddress;
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler: void <init>(java.net.SocketAddress,io.netty.handler.codec.http.HttpHeaders)>(v, null);
return;
}
public void <init>(java.net.SocketAddress, io.netty.handler.codec.http.HttpHeaders)
{
io.netty.handler.proxy.HttpProxyHandler v;
io.netty.handler.codec.http.HttpHeaders v;
java.net.SocketAddress v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: java.net.SocketAddress;
v := @parameter: io.netty.handler.codec.http.HttpHeaders;
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler: void <init>(java.net.SocketAddress,io.netty.handler.codec.http.HttpHeaders,boolean)>(v, v, 0);
return;
}
public void <init>(java.net.SocketAddress, io.netty.handler.codec.http.HttpHeaders, boolean)
{
io.netty.handler.codec.http.HttpHeaders v;
java.net.SocketAddress v;
io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper v;
io.netty.handler.proxy.HttpProxyHandler v;
boolean v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: java.net.SocketAddress;
v := @parameter: io.netty.handler.codec.http.HttpHeaders;
v := @parameter: boolean;
specialinvoke v.<io.netty.handler.proxy.ProxyHandler: void <init>(java.net.SocketAddress)>(v);
v = new io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper;
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper: void <init>()>();
v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper codecWrapper> = v;
v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String username> = null;
v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String password> = null;
v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.CharSequence authorization> = null;
v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpHeaders outboundHeaders> = v;
v.<io.netty.handler.proxy.HttpProxyHandler: boolean ignoreDefaultPortsInConnectHostHeader> = v;
return;
}
public void <init>(java.net.SocketAddress, java.lang.String, java.lang.String)
{
java.net.SocketAddress v;
io.netty.handler.proxy.HttpProxyHandler v;
java.lang.String v, v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler: void <init>(java.net.SocketAddress,java.lang.String,java.lang.String,io.netty.handler.codec.http.HttpHeaders)>(v, v, v, null);
return;
}
public void <init>(java.net.SocketAddress, java.lang.String, java.lang.String, io.netty.handler.codec.http.HttpHeaders)
{
io.netty.handler.codec.http.HttpHeaders v;
java.net.SocketAddress v;
io.netty.handler.proxy.HttpProxyHandler v;
java.lang.String v, v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: io.netty.handler.codec.http.HttpHeaders;
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler: void <init>(java.net.SocketAddress,java.lang.String,java.lang.String,io.netty.handler.codec.http.HttpHeaders,boolean)>(v, v, v, v, 0);
return;
}
public void <init>(java.net.SocketAddress, java.lang.String, java.lang.String, io.netty.handler.codec.http.HttpHeaders, boolean)
{
java.lang.Throwable v, v;
io.netty.handler.codec.http.HttpHeaders v;
java.net.SocketAddress v;
io.netty.handler.proxy.HttpProxyHandler v;
io.netty.util.AsciiString v;
io.netty.buffer.ByteBuf v, v;
java.nio.charset.Charset v, v;
io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper v;
java.lang.String v, v, v, v, v;
boolean v;
java.lang.Object v, v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: io.netty.handler.codec.http.HttpHeaders;
v := @parameter: boolean;
specialinvoke v.<io.netty.handler.proxy.ProxyHandler: void <init>(java.net.SocketAddress)>(v);
v = new io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper;
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper: void <init>()>();
v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper codecWrapper> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "username");
v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String username> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "password");
v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String password> = v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
v = <io.netty.util.CharsetUtil: java.nio.charset.Charset UTF_8>;
v = staticinvoke <io.netty.buffer.Unpooled: io.netty.buffer.ByteBuf copiedBuffer(java.lang.CharSequence,java.nio.charset.Charset)>(v, v);
label:
v = staticinvoke <io.netty.handler.codec.base.Base64: io.netty.buffer.ByteBuf encode(io.netty.buffer.ByteBuf,boolean)>(v, 0);
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
throw v;
label:
v = new io.netty.util.AsciiString;
v = <io.netty.util.CharsetUtil: java.nio.charset.Charset US_ASCII>;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.lang.String toString(java.nio.charset.Charset)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Basic \u0001");
specialinvoke v.<io.netty.util.AsciiString: void <init>(java.lang.CharSequence)>(v);
v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.CharSequence authorization> = v;
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
throw v;
label:
v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpHeaders outboundHeaders> = v;
v.<io.netty.handler.proxy.HttpProxyHandler: boolean ignoreDefaultPortsInConnectHostHeader> = v;
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String protocol()
{
io.netty.handler.proxy.HttpProxyHandler v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
return "http";
}
public java.lang.String authScheme()
{
io.netty.handler.proxy.HttpProxyHandler v;
java.lang.String v;
java.lang.CharSequence v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v = v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.CharSequence authorization>;
if v == null goto label;
v = "basic";
goto label;
label:
v = "none";
label:
return v;
}
public java.lang.String username()
{
io.netty.handler.proxy.HttpProxyHandler v;
java.lang.String v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v = v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String username>;
return v;
}
public java.lang.String password()
{
io.netty.handler.proxy.HttpProxyHandler v;
java.lang.String v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v = v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String password>;
return v;
}
protected void addCodec(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper v;
io.netty.handler.proxy.HttpProxyHandler v;
io.netty.channel.ChannelPipeline v;
java.lang.String v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: java.lang.String name()>();
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper codecWrapper>;
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline addBefore(java.lang.String,java.lang.String,io.netty.channel.ChannelHandler)>(v, null, v);
return;
}
protected void removeEncoder(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper v;
io.netty.handler.proxy.HttpProxyHandler v;
io.netty.handler.codec.http.HttpClientCodec v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper codecWrapper>;
v = v.<io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper: io.netty.handler.codec.http.HttpClientCodec codec>;
virtualinvoke v.<io.netty.handler.codec.http.HttpClientCodec: void removeOutboundHandler()>();
return;
}
protected void removeDecoder(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper v;
io.netty.handler.proxy.HttpProxyHandler v;
io.netty.handler.codec.http.HttpClientCodec v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper codecWrapper>;
v = v.<io.netty.handler.proxy.HttpProxyHandler$HttpClientCodecWrapper: io.netty.handler.codec.http.HttpClientCodec codec>;
virtualinvoke v.<io.netty.handler.codec.http.HttpClientCodec: void removeInboundHandler()>();
return;
}
protected java.lang.Object newInitialMessage(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.handler.codec.http.HttpVersion v;
io.netty.handler.codec.http.HttpHeaders v, v, v, v, v;
java.net.SocketAddress v;
io.netty.handler.codec.http.DefaultFullHttpRequest v;
io.netty.handler.proxy.HttpProxyHandler v;
io.netty.util.AsciiString v, v;
io.netty.channel.ChannelHandlerContext v;
io.netty.buffer.ByteBuf v;
int v;
java.lang.String v, v, v;
io.netty.handler.codec.http.DefaultHttpHeadersFactory v, v;
boolean v;
java.lang.CharSequence v, v;
io.netty.handler.codec.http.HttpMethod v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = virtualinvoke v.<io.netty.handler.proxy.HttpProxyHandler: java.net.SocketAddress destinationAddress()>();
v = staticinvoke <io.netty.handler.codec.http.HttpUtil: java.lang.String formatHostnameForHttp(java.net.InetSocketAddress)>(v);
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
v = v.<io.netty.handler.proxy.HttpProxyHandler: boolean ignoreDefaultPortsInConnectHostHeader>;
if v == 0 goto label;
if v == 80 goto label;
if v != 443 goto label;
label:
v = v;
goto label;
label:
v = v;
label:
v = staticinvoke <io.netty.handler.codec.http.DefaultHttpHeadersFactory: io.netty.handler.codec.http.DefaultHttpHeadersFactory headersFactory()>();
v = virtualinvoke v.<io.netty.handler.codec.http.DefaultHttpHeadersFactory: io.netty.handler.codec.http.DefaultHttpHeadersFactory withValidation(boolean)>(0);
v = new io.netty.handler.codec.http.DefaultFullHttpRequest;
v = <io.netty.handler.codec.http.HttpVersion: io.netty.handler.codec.http.HttpVersion HTTP_1_1>;
v = <io.netty.handler.codec.http.HttpMethod: io.netty.handler.codec.http.HttpMethod CONNECT>;
v = <io.netty.buffer.Unpooled: io.netty.buffer.ByteBuf EMPTY_BUFFER>;
specialinvoke v.<io.netty.handler.codec.http.DefaultFullHttpRequest: void <init>(io.netty.handler.codec.http.HttpVersion,io.netty.handler.codec.http.HttpMethod,java.lang.String,io.netty.buffer.ByteBuf,io.netty.handler.codec.http.HttpHeadersFactory,io.netty.handler.codec.http.HttpHeadersFactory)>(v, v, v, v, v, v);
v = interfaceinvoke v.<io.netty.handler.codec.http.FullHttpRequest: io.netty.handler.codec.http.HttpHeaders headers()>();
v = <io.netty.handler.codec.http.HttpHeaderNames: io.netty.util.AsciiString HOST>;
virtualinvoke v.<io.netty.handler.codec.http.HttpHeaders: io.netty.handler.codec.http.HttpHeaders set(java.lang.CharSequence,java.lang.Object)>(v, v);
v = v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.CharSequence authorization>;
if v == null goto label;
v = interfaceinvoke v.<io.netty.handler.codec.http.FullHttpRequest: io.netty.handler.codec.http.HttpHeaders headers()>();
v = <io.netty.handler.codec.http.HttpHeaderNames: io.netty.util.AsciiString PROXY_AUTHORIZATION>;
v = v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.CharSequence authorization>;
virtualinvoke v.<io.netty.handler.codec.http.HttpHeaders: io.netty.handler.codec.http.HttpHeaders set(java.lang.CharSequence,java.lang.Object)>(v, v);
label:
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpHeaders outboundHeaders>;
if v == null goto label;
v = interfaceinvoke v.<io.netty.handler.codec.http.FullHttpRequest: io.netty.handler.codec.http.HttpHeaders headers()>();
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpHeaders outboundHeaders>;
virtualinvoke v.<io.netty.handler.codec.http.HttpHeaders: io.netty.handler.codec.http.HttpHeaders add(io.netty.handler.codec.http.HttpHeaders)>(v);
label:
return v;
}
protected boolean handleResponse(io.netty.channel.ChannelHandlerContext, java.lang.Object) throws java.lang.Exception
{
io.netty.handler.codec.http.HttpHeaders v, v, v;
io.netty.handler.proxy.HttpProxyHandler v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.proxy.HttpProxyHandler$HttpProxyConnectException v, v, v;
int v;
java.lang.String v, v, v, v;
boolean v, v;
io.netty.handler.codec.http.HttpResponseStatus v, v, v, v, v;
java.lang.Object v;
v := @this: io.netty.handler.proxy.HttpProxyHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v = v instanceof io.netty.handler.codec.http.HttpResponse;
if v == 0 goto label;
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpResponseStatus status>;
if v == null goto label;
v = new io.netty.handler.proxy.HttpProxyHandler$HttpProxyConnectException;
v = virtualinvoke v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String exceptionMessage(java.lang.String)>("too many responses");
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler$HttpProxyConnectException: void <init>(java.lang.String,io.netty.handler.codec.http.HttpHeaders)>(v, null);
throw v;
label:
v = interfaceinvoke v.<io.netty.handler.codec.http.HttpResponse: io.netty.handler.codec.http.HttpResponseStatus status()>();
v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpResponseStatus status> = v;
v = interfaceinvoke v.<io.netty.handler.codec.http.HttpResponse: io.netty.handler.codec.http.HttpHeaders headers()>();
v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpHeaders inboundHeaders> = v;
label:
v = v instanceof io.netty.handler.codec.http.LastHttpContent;
if v == 0 goto label;
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpResponseStatus status>;
if v != null goto label;
v = new io.netty.handler.proxy.HttpProxyHandler$HttpProxyConnectException;
v = virtualinvoke v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String exceptionMessage(java.lang.String)>("missing response");
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpHeaders inboundHeaders>;
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler$HttpProxyConnectException: void <init>(java.lang.String,io.netty.handler.codec.http.HttpHeaders)>(v, v);
throw v;
label:
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpResponseStatus status>;
v = virtualinvoke v.<io.netty.handler.codec.http.HttpResponseStatus: int code()>();
if v == 200 goto label;
v = new io.netty.handler.proxy.HttpProxyHandler$HttpProxyConnectException;
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpResponseStatus status>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (io.netty.handler.codec.http.HttpResponseStatus)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("status: \u0001");
v = virtualinvoke v.<io.netty.handler.proxy.HttpProxyHandler: java.lang.String exceptionMessage(java.lang.String)>(v);
v = v.<io.netty.handler.proxy.HttpProxyHandler: io.netty.handler.codec.http.HttpHeaders inboundHeaders>;
specialinvoke v.<io.netty.handler.proxy.HttpProxyHandler$HttpProxyConnectException: void <init>(java.lang.String,io.netty.handler.codec.http.HttpHeaders)>(v, v);
throw v;
label:
return v;
}
}