public class io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00 extends io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00
super_class: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker
{
private static final java.util.regex.Pattern BEGINNING_DIGIT;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern BEGINNING_SPACE;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "[^0-9]"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.BEGINNING_DIGIT:Ljava/util/regex/Pattern;
1: ldc "[^ ]"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.BEGINNING_SPACE:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String, java.lang.String, int);
descriptor: (Ljava/lang/String;Ljava/lang/String;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getstatic io.netty.handler.codec.http.websocketx.WebSocketVersion.V00:Lio/netty/handler/codec/http/websocketx/WebSocketVersion;
aload 1
aload 2
iload 3
invokespecial io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker.<init>:(Lio/netty/handler/codec/http/websocketx/WebSocketVersion;Ljava/lang/String;Ljava/lang/String;I)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker00;
0 2 1 webSocketURL Ljava/lang/String;
0 2 2 subprotocols Ljava/lang/String;
0 2 3 maxFramePayloadLength I
MethodParameters:
Name Flags
webSocketURL
subprotocols
maxFramePayloadLength
protected io.netty.handler.codec.http.FullHttpResponse newHandshakeResponse(io.netty.handler.codec.http.FullHttpRequest, io.netty.handler.codec.http.HttpHeaders);
descriptor: (Lio/netty/handler/codec/http/FullHttpRequest;Lio/netty/handler/codec/http/HttpHeaders;)Lio/netty/handler/codec/http/FullHttpResponse;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.CONNECTION:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.HttpHeaderValues.UPGRADE:Lio/netty/util/AsciiString;
iconst_1
invokevirtual io.netty.handler.codec.http.HttpHeaders.containsValue:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z
ifeq 2
1: getstatic io.netty.handler.codec.http.HttpHeaderValues.WEBSOCKET:Lio/netty/util/AsciiString;
aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.UPGRADE:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual io.netty.util.AsciiString.contentEqualsIgnoreCase:(Ljava/lang/CharSequence;)Z
ifne 3
2: StackMap locals:
StackMap stack:
new io.netty.handler.codec.http.websocketx.WebSocketHandshakeException
dup
ldc "not a WebSocket handshake request: missing upgrade"
invokespecial io.netty.handler.codec.http.websocketx.WebSocketHandshakeException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SEC_WEBSOCKET_KEY1:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.contains:(Ljava/lang/CharSequence;)Z
ifeq 6
4: aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SEC_WEBSOCKET_KEY2:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.contains:(Ljava/lang/CharSequence;)Z
ifeq 6
5: iconst_1
goto 7
StackMap locals:
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: istore 3
start local 3 8: new io.netty.handler.codec.http.DefaultFullHttpResponse
dup
getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
9: new io.netty.handler.codec.http.HttpResponseStatus
dup
bipush 101
10: iload 3
ifeq 11
ldc "WebSocket Protocol Handshake"
goto 12
StackMap locals: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00 io.netty.handler.codec.http.FullHttpRequest io.netty.handler.codec.http.HttpHeaders int
StackMap stack: new 8 new 8 io.netty.handler.codec.http.HttpVersion new 9 new 9 int
11: ldc "Web Socket Protocol Handshake"
StackMap locals: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00 io.netty.handler.codec.http.FullHttpRequest io.netty.handler.codec.http.HttpHeaders int
StackMap stack: new 8 new 8 io.netty.handler.codec.http.HttpVersion new 9 new 9 int java.lang.String
12: invokespecial io.netty.handler.codec.http.HttpResponseStatus.<init>:(ILjava/lang/String;)V
13: invokespecial io.netty.handler.codec.http.DefaultFullHttpResponse.<init>:(Lio/netty/handler/codec/http/HttpVersion;Lio/netty/handler/codec/http/HttpResponseStatus;)V
astore 4
start local 4 14: aload 2
ifnull 16
15: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
aload 2
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Lio/netty/handler/codec/http/HttpHeaders;)Lio/netty/handler/codec/http/HttpHeaders;
pop
16: StackMap locals: io.netty.handler.codec.http.FullHttpResponse
StackMap stack:
aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.UPGRADE:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.HttpHeaderValues.WEBSOCKET:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
17: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.CONNECTION:Lio/netty/util/AsciiString;
getstatic io.netty.handler.codec.http.HttpHeaderValues.UPGRADE:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
18: iload 3
ifeq 44
19: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SEC_WEBSOCKET_ORIGIN:Lio/netty/util/AsciiString;
aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.ORIGIN:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
20: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SEC_WEBSOCKET_LOCATION:Lio/netty/util/AsciiString;
aload 0
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.uri:()Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
21: aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SEC_WEBSOCKET_PROTOCOL:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
astore 5
start local 5 22: aload 5
ifnull 29
23: aload 0
aload 5
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.selectSubprotocol:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 24: aload 6
ifnonnull 28
25: getstatic io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.logger:Lio/netty/util/internal/logging/InternalLogger;
invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
ifeq 29
26: getstatic io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Requested subprotocol(s) not supported: {}"
aload 5
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
27: goto 29
28: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SEC_WEBSOCKET_PROTOCOL:Lio/netty/util/AsciiString;
aload 6
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
end local 6 29: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SEC_WEBSOCKET_KEY1:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
astore 6
start local 6 30: aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.SEC_WEBSOCKET_KEY2:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
astore 7
start local 7 31: getstatic io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.BEGINNING_DIGIT:Ljava/util/regex/Pattern;
aload 6
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
ldc ""
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
32: getstatic io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.BEGINNING_SPACE:Ljava/util/regex/Pattern;
aload 6
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
ldc ""
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.length:()I
i2l
33: ldiv
l2i
istore 8
start local 8 34: getstatic io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.BEGINNING_DIGIT:Ljava/util/regex/Pattern;
aload 7
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
ldc ""
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
35: getstatic io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.BEGINNING_SPACE:Ljava/util/regex/Pattern;
aload 7
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
ldc ""
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.length:()I
i2l
36: ldiv
l2i
istore 9
start local 9 37: aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readLong:()J
lstore 10
start local 10 38: bipush 16
invokestatic io.netty.buffer.Unpooled.buffer:(I)Lio/netty/buffer/ByteBuf;
astore 12
start local 12 39: aload 12
iload 8
invokevirtual io.netty.buffer.ByteBuf.writeInt:(I)Lio/netty/buffer/ByteBuf;
pop
40: aload 12
iload 9
invokevirtual io.netty.buffer.ByteBuf.writeInt:(I)Lio/netty/buffer/ByteBuf;
pop
41: aload 12
lload 10
invokevirtual io.netty.buffer.ByteBuf.writeLong:(J)Lio/netty/buffer/ByteBuf;
pop
42: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.content:()Lio/netty/buffer/ByteBuf;
aload 12
invokevirtual io.netty.buffer.ByteBuf.array:()[B
invokestatic io.netty.handler.codec.http.websocketx.WebSocketUtil.md5:([B)[B
invokevirtual io.netty.buffer.ByteBuf.writeBytes:([B)Lio/netty/buffer/ByteBuf;
pop
end local 12 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 43: goto 49
44: StackMap locals:
StackMap stack:
aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.WEBSOCKET_ORIGIN:Lio/netty/util/AsciiString;
aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.ORIGIN:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
45: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.WEBSOCKET_LOCATION:Lio/netty/util/AsciiString;
aload 0
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.uri:()Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
46: aload 1
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.WEBSOCKET_PROTOCOL:Lio/netty/util/AsciiString;
invokevirtual io.netty.handler.codec.http.HttpHeaders.get:(Ljava/lang/CharSequence;)Ljava/lang/String;
astore 5
start local 5 47: aload 5
ifnull 49
48: aload 4
invokeinterface io.netty.handler.codec.http.FullHttpResponse.headers:()Lio/netty/handler/codec/http/HttpHeaders;
getstatic io.netty.handler.codec.http.HttpHeaderNames.WEBSOCKET_PROTOCOL:Lio/netty/util/AsciiString;
aload 0
aload 5
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.selectSubprotocol:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
end local 5 49: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker00;
0 50 1 req Lio/netty/handler/codec/http/FullHttpRequest;
0 50 2 headers Lio/netty/handler/codec/http/HttpHeaders;
8 50 3 isHixie76 Z
14 50 4 res Lio/netty/handler/codec/http/FullHttpResponse;
22 43 5 subprotocols Ljava/lang/String;
24 29 6 selectedSubprotocol Ljava/lang/String;
30 43 6 key1 Ljava/lang/String;
31 43 7 key2 Ljava/lang/String;
34 43 8 a I
37 43 9 b I
38 43 10 c J
39 43 12 input Lio/netty/buffer/ByteBuf;
47 49 5 protocol Ljava/lang/String;
MethodParameters:
Name Flags
req
headers
public io.netty.channel.ChannelFuture close(io.netty.channel.Channel, io.netty.handler.codec.http.websocketx.CloseWebSocketFrame, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/Channel;Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
aload 3
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker00;
0 1 1 channel Lio/netty/channel/Channel;
0 1 2 frame Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;
0 1 3 promise Lio/netty/channel/ChannelPromise;
MethodParameters:
Name Flags
channel
frame
promise
protected io.netty.handler.codec.http.websocketx.WebSocketFrameDecoder newWebsocketDecoder();
descriptor: ()Lio/netty/handler/codec/http/websocketx/WebSocketFrameDecoder;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new io.netty.handler.codec.http.websocketx.WebSocket00FrameDecoder
dup
aload 0
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker00.maxFramePayloadLength:()I
invokespecial io.netty.handler.codec.http.websocketx.WebSocket00FrameDecoder.<init>:(I)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker00;
protected io.netty.handler.codec.http.websocketx.WebSocketFrameEncoder newWebSocketEncoder();
descriptor: ()Lio/netty/handler/codec/http/websocketx/WebSocketFrameEncoder;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: new io.netty.handler.codec.http.websocketx.WebSocket00FrameEncoder
dup
invokespecial io.netty.handler.codec.http.websocketx.WebSocket00FrameEncoder.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker00;
}
SourceFile: "WebSocketServerHandshaker00.java"