public class org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection extends org.eclipse.jetty.io.AbstractConnection
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection
super_class: org.eclipse.jetty.io.AbstractConnection
{
private static final int[] SIZE;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.eclipse.jetty.server.Connector _connector;
descriptor: Lorg/eclipse/jetty/server/Connector;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String _next;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.StringBuilder _builder;
descriptor: Ljava/lang/StringBuilder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String[] _field;
descriptor: [Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int _fields;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int _length;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 7
newarray 10
dup
iconst_0
bipush 29
iastore
dup
iconst_1
bipush 23
iastore
dup
iconst_2
bipush 21
iastore
dup
iconst_3
bipush 13
iastore
dup
iconst_4
iconst_5
iastore
dup
iconst_5
iconst_3
iastore
dup
bipush 6
iconst_1
iastore
putstatic org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.SIZE:[I
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.eclipse.jetty.io.EndPoint, org.eclipse.jetty.server.Connector, java.lang.String, java.nio.ByteBuffer);
descriptor: (Lorg/eclipse/jetty/io/EndPoint;Lorg/eclipse/jetty/server/Connector;Ljava/lang/String;Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokeinterface org.eclipse.jetty.server.Connector.getExecutor:()Ljava/util/concurrent/Executor;
invokespecial org.eclipse.jetty.io.AbstractConnection.<init>:(Lorg/eclipse/jetty/io/EndPoint;Ljava/util/concurrent/Executor;)V
1: aload 0
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
putfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._builder:Ljava/lang/StringBuilder;
2: aload 0
bipush 6
anewarray java.lang.String
putfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._field:[Ljava/lang/String;
3: aload 0
aload 2
putfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._connector:Lorg/eclipse/jetty/server/Connector;
4: aload 0
aload 3
putfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._next:Ljava/lang/String;
5: aload 0
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
putfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._length:I
6: aload 0
aload 4
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.parse:(Ljava/nio/ByteBuffer;)Z
pop
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jetty/server/ProxyConnectionFactory$ProxyProtocolV1Connection;
0 8 1 endp Lorg/eclipse/jetty/io/EndPoint;
0 8 2 connector Lorg/eclipse/jetty/server/Connector;
0 8 3 next Ljava/lang/String;
0 8 4 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
endp
connector
next
buffer
public void onOpen();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.eclipse.jetty.io.AbstractConnection.onOpen:()V
1: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.fillInterested:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jetty/server/ProxyConnectionFactory$ProxyProtocolV1Connection;
private boolean parse(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: goto 19
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 2
start local 2 2: aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._fields:I
bipush 6
if_icmpge 13
3: iload 2
bipush 32
if_icmpeq 4
iload 2
bipush 13
if_icmpne 7
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._fields:I
iconst_5
if_icmpne 7
4: StackMap locals: int
StackMap stack:
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._field:[Ljava/lang/String;
aload 0
dup
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._fields:I
dup_x1
iconst_1
iadd
putfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._fields:I
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._builder:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
5: aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._builder:Ljava/lang/StringBuilder;
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
6: goto 19
7: StackMap locals:
StackMap stack:
iload 2
bipush 32
if_icmpge 11
8: getstatic org.eclipse.jetty.server.ProxyConnectionFactory.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "Bad character {} for {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 2
sipush 255
iand
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
9: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.close:()V
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._builder:Ljava/lang/StringBuilder;
iload 2
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
12: goto 19
13: StackMap locals:
StackMap stack:
iload 2
bipush 10
if_icmpne 16
14: aload 0
bipush 7
putfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._fields:I
15: iconst_1
ireturn
16: StackMap locals:
StackMap stack:
getstatic org.eclipse.jetty.server.ProxyConnectionFactory.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "Bad CRLF for {}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
17: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.close:()V
18: iconst_0
ireturn
end local 2 19: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 1
20: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/eclipse/jetty/server/ProxyConnectionFactory$ProxyProtocolV1Connection;
0 21 1 buffer Ljava/nio/ByteBuffer;
2 19 2 b B
MethodParameters:
Name Flags
buffer
public void onFillable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: goto 20
2: StackMap locals: java.nio.ByteBuffer
StackMap stack:
iconst_1
getstatic org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.SIZE:[I
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._fields:I
iaload
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._builder:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.length:()I
isub
invokestatic java.lang.Math.max:(II)I
istore 2
start local 2 3: aload 1
ifnull 4
aload 1
invokevirtual java.nio.ByteBuffer.capacity:()I
iload 2
if_icmpeq 5
4: StackMap locals: int
StackMap stack:
iload 2
invokestatic org.eclipse.jetty.util.BufferUtil.allocate:(I)Ljava/nio/ByteBuffer;
astore 1
goto 6
5: StackMap locals:
StackMap stack:
aload 1
invokestatic org.eclipse.jetty.util.BufferUtil.clear:(Ljava/nio/ByteBuffer;)V
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
aload 1
invokeinterface org.eclipse.jetty.io.EndPoint.fill:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 7: iload 3
ifge 10
8: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
invokeinterface org.eclipse.jetty.io.EndPoint.shutdownOutput:()V
9: return
10: StackMap locals: int
StackMap stack:
iload 3
ifne 13
11: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.fillInterested:()V
12: return
13: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._length:I
iload 3
iadd
putfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._length:I
14: aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._length:I
bipush 108
if_icmplt 18
15: getstatic org.eclipse.jetty.server.ProxyConnectionFactory.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "PROXY line too long {} for {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._length:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
16: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.close:()V
17: return
18: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.parse:(Ljava/nio/ByteBuffer;)Z
ifne 20
19: return
end local 3 end local 2 20: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._fields:I
bipush 7
if_icmplt 2
21: ldc "PROXY"
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._field:[Ljava/lang/String;
iconst_0
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 25
22: getstatic org.eclipse.jetty.server.ProxyConnectionFactory.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "Not PROXY protocol for {}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
23: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.close:()V
24: return
25: StackMap locals:
StackMap stack:
new java.net.InetSocketAddress
dup
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._field:[Ljava/lang/String;
iconst_2
aaload
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._field:[Ljava/lang/String;
iconst_4
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
astore 2
start local 2 26: new java.net.InetSocketAddress
dup
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._field:[Ljava/lang/String;
iconst_3
aaload
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._field:[Ljava/lang/String;
iconst_5
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
astore 3
start local 3 27: aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._connector:Lorg/eclipse/jetty/server/Connector;
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._next:Ljava/lang/String;
invokeinterface org.eclipse.jetty.server.Connector.getConnectionFactory:(Ljava/lang/String;)Lorg/eclipse/jetty/server/ConnectionFactory;
astore 4
start local 4 28: aload 4
ifnonnull 32
29: getstatic org.eclipse.jetty.server.ProxyConnectionFactory.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "No Next protocol '{}' for {}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._next:Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
30: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.close:()V
31: return
32: StackMap locals: java.net.InetSocketAddress java.net.InetSocketAddress org.eclipse.jetty.server.ConnectionFactory
StackMap stack:
getstatic org.eclipse.jetty.server.ProxyConnectionFactory.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 34
33: getstatic org.eclipse.jetty.server.ProxyConnectionFactory.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "Next protocol '{}' for {} r={} l={}"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._next:Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
aastore
dup
iconst_2
aload 2
aastore
dup
iconst_3
aload 3
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
34: StackMap locals:
StackMap stack:
new org.eclipse.jetty.server.ProxyConnectionFactory$ProxyEndPoint
dup
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
aload 2
aload 3
invokespecial org.eclipse.jetty.server.ProxyConnectionFactory$ProxyEndPoint.<init>:(Lorg/eclipse/jetty/io/EndPoint;Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;)V
astore 5
start local 5 35: aload 4
aload 0
getfield org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection._connector:Lorg/eclipse/jetty/server/Connector;
aload 5
invokeinterface org.eclipse.jetty.server.ConnectionFactory.newConnection:(Lorg/eclipse/jetty/server/Connector;Lorg/eclipse/jetty/io/EndPoint;)Lorg/eclipse/jetty/io/Connection;
astore 6
start local 6 36: aload 5
aload 6
invokeinterface org.eclipse.jetty.io.EndPoint.upgrade:(Lorg/eclipse/jetty/io/Connection;)V
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 37: goto 41
38: StackMap locals: org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection
StackMap stack: java.lang.Throwable
astore 1
start local 1 39: getstatic org.eclipse.jetty.server.ProxyConnectionFactory.LOG:Lorg/eclipse/jetty/util/log/Logger;
new java.lang.StringBuilder
dup
ldc "PROXY error for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.getEndPoint:()Lorg/eclipse/jetty/io/EndPoint;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokeinterface org.eclipse.jetty.util.log.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
40: aload 0
invokevirtual org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection.close:()V
end local 1 41: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/eclipse/jetty/server/ProxyConnectionFactory$ProxyProtocolV1Connection;
1 37 1 buffer Ljava/nio/ByteBuffer;
3 20 2 size I
7 20 3 fill I
26 37 2 remote Ljava/net/InetSocketAddress;
27 37 3 local Ljava/net/InetSocketAddress;
28 37 4 connectionFactory Lorg/eclipse/jetty/server/ConnectionFactory;
35 37 5 endPoint Lorg/eclipse/jetty/io/EndPoint;
36 37 6 newConnection Lorg/eclipse/jetty/io/Connection;
39 41 1 x Ljava/lang/Throwable;
Exception table:
from to target type
0 9 38 Class java.lang.Throwable
10 12 38 Class java.lang.Throwable
13 17 38 Class java.lang.Throwable
18 19 38 Class java.lang.Throwable
20 24 38 Class java.lang.Throwable
25 31 38 Class java.lang.Throwable
32 37 38 Class java.lang.Throwable
}
SourceFile: "ProxyConnectionFactory.java"
NestHost: org.eclipse.jetty.server.ProxyConnectionFactory
InnerClasses:
public ProxyEndPoint = org.eclipse.jetty.server.ProxyConnectionFactory$ProxyEndPoint of org.eclipse.jetty.server.ProxyConnectionFactory
public ProxyProtocolV1Connection = org.eclipse.jetty.server.ProxyConnectionFactory$ProxyProtocolV1Connection of org.eclipse.jetty.server.ProxyConnectionFactory