class io.undertow.protocols.ssl.UndertowSslConnection extends org.xnio.ssl.SslConnection
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.undertow.protocols.ssl.UndertowSslConnection
super_class: org.xnio.ssl.SslConnection
{
private static final java.util.Set<org.xnio.Option<?>> SUPPORTED_OPTIONS;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Lorg/xnio/Option<*>;>;
private final org.xnio.StreamConnection delegate;
descriptor: Lorg/xnio/StreamConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.protocols.ssl.SslConduit sslConduit;
descriptor: Lio/undertow/protocols/ssl/SslConduit;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.ChannelListener$SimpleSetter<org.xnio.ssl.SslConnection> handshakeSetter;
descriptor: Lorg/xnio/ChannelListener$SimpleSetter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/xnio/ChannelListener$SimpleSetter<Lorg/xnio/ssl/SslConnection;>;
private final javax.net.ssl.SSLEngine engine;
descriptor: Ljavax/net/ssl/SSLEngine;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: invokestatic org.xnio.Option.setBuilder:()Lorg/xnio/Option$SetBuilder;
getstatic org.xnio.Options.SECURE:Lorg/xnio/Option;
getstatic org.xnio.Options.SSL_CLIENT_AUTH_MODE:Lorg/xnio/Option;
invokevirtual org.xnio.Option$SetBuilder.add:(Lorg/xnio/Option;Lorg/xnio/Option;)Lorg/xnio/Option$SetBuilder;
invokevirtual org.xnio.Option$SetBuilder.create:()Ljava/util/Set;
putstatic io.undertow.protocols.ssl.UndertowSslConnection.SUPPORTED_OPTIONS:Ljava/util/Set;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.xnio.StreamConnection, javax.net.ssl.SSLEngine, io.undertow.connector.ByteBufferPool);
descriptor: (Lorg/xnio/StreamConnection;Ljavax/net/ssl/SSLEngine;Lio/undertow/connector/ByteBufferPool;)V
flags: (0x0000)
Code:
stack=10, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
invokespecial org.xnio.ssl.SslConnection.<init>:(Lorg/xnio/XnioIoThread;)V
1: aload 0
new org.xnio.ChannelListener$SimpleSetter
dup
invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
putfield io.undertow.protocols.ssl.UndertowSslConnection.handshakeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
2: aload 0
aload 1
putfield io.undertow.protocols.ssl.UndertowSslConnection.delegate:Lorg/xnio/StreamConnection;
3: aload 0
aload 2
putfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
4: aload 0
new io.undertow.protocols.ssl.SslConduit
dup
aload 0
aload 1
aload 2
aload 3
new io.undertow.protocols.ssl.UndertowSslConnection$HandshakeCallback
dup
aload 0
invokespecial io.undertow.protocols.ssl.UndertowSslConnection$HandshakeCallback.<init>:(Lio/undertow/protocols/ssl/UndertowSslConnection;)V
invokespecial io.undertow.protocols.ssl.SslConduit.<init>:(Lio/undertow/protocols/ssl/UndertowSslConnection;Lorg/xnio/StreamConnection;Ljavax/net/ssl/SSLEngine;Lio/undertow/connector/ByteBufferPool;Ljava/lang/Runnable;)V
putfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
5: aload 0
aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
invokevirtual io.undertow.protocols.ssl.UndertowSslConnection.setSourceConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
6: aload 0
aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
invokevirtual io.undertow.protocols.ssl.UndertowSslConnection.setSinkConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
0 8 1 delegate Lorg/xnio/StreamConnection;
0 8 2 engine Ljavax/net/ssl/SSLEngine;
0 8 3 bufferPool Lio/undertow/connector/ByteBufferPool;
MethodParameters:
Name Flags
delegate
engine
bufferPool
public void startHandshake();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
invokevirtual io.undertow.protocols.ssl.SslConduit.startHandshake:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
Exceptions:
throws java.io.IOException
public javax.net.ssl.SSLSession getSslSession();
descriptor: ()Ljavax/net/ssl/SSLSession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
invokevirtual io.undertow.protocols.ssl.SslConduit.getSslSession:()Ljavax/net/ssl/SSLSession;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
public org.xnio.ChannelListener$Setter<? extends org.xnio.ssl.SslConnection> getHandshakeSetter();
descriptor: ()Lorg/xnio/ChannelListener$Setter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.handshakeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
Signature: ()Lorg/xnio/ChannelListener$Setter<+Lorg/xnio/ssl/SslConnection;>;
protected void notifyWriteClosed();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyWriteClosed:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
protected void notifyReadClosed();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyReadClosed:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
public java.net.SocketAddress getPeerAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getPeerAddress:()Ljava/net/SocketAddress;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
public java.net.SocketAddress getLocalAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getLocalAddress:()Ljava/net/SocketAddress;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
public javax.net.ssl.SSLEngine getSSLEngine();
descriptor: ()Ljavax/net/ssl/SSLEngine;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
invokevirtual io.undertow.protocols.ssl.SslConduit.getSSLEngine:()Ljavax/net/ssl/SSLEngine;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
io.undertow.protocols.ssl.SslConduit getSslConduit();
descriptor: ()Lio/undertow/protocols/ssl/SslConduit;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
public <T> T setOption(org.xnio.Option<T>, );
descriptor: (Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic org.xnio.Options.SSL_CLIENT_AUTH_MODE:Lorg/xnio/Option;
if_acmpne 20
1: aload 1
aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getNeedClientAuth:()Z
ifeq 2
getstatic org.xnio.SslClientAuthMode.REQUIRED:Lorg/xnio/SslClientAuthMode;
goto 4
StackMap locals:
StackMap stack: org.xnio.Option
2: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getWantClientAuth:()Z
ifeq 3
getstatic org.xnio.SslClientAuthMode.REQUESTED:Lorg/xnio/SslClientAuthMode;
goto 4
StackMap locals:
StackMap stack: org.xnio.Option
3: getstatic org.xnio.SslClientAuthMode.NOT_REQUESTED:Lorg/xnio/SslClientAuthMode;
StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option java.lang.Object
StackMap stack: org.xnio.Option org.xnio.SslClientAuthMode
4: invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
5: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
aload 2
getstatic org.xnio.SslClientAuthMode.REQUIRED:Lorg/xnio/SslClientAuthMode;
if_acmpne 6
iconst_1
goto 7
StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option java.lang.Object top java.lang.Object
StackMap stack: javax.net.ssl.SSLEngine
6: iconst_0
StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option java.lang.Object top java.lang.Object
StackMap stack: javax.net.ssl.SSLEngine int
7: invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
8: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
aload 2
getstatic org.xnio.SslClientAuthMode.REQUESTED:Lorg/xnio/SslClientAuthMode;
if_acmpne 9
iconst_1
goto 10
StackMap locals:
StackMap stack: javax.net.ssl.SSLEngine
9: iconst_0
StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option java.lang.Object top java.lang.Object
StackMap stack: javax.net.ssl.SSLEngine int
10: invokevirtual javax.net.ssl.SSLEngine.setWantClientAuth:(Z)V
11: aload 4
areturn
12: StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option java.lang.Object
StackMap stack: java.lang.Throwable
astore 3
13: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
aload 2
getstatic org.xnio.SslClientAuthMode.REQUIRED:Lorg/xnio/SslClientAuthMode;
if_acmpne 14
iconst_1
goto 15
StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option java.lang.Object java.lang.Throwable
StackMap stack: javax.net.ssl.SSLEngine
14: iconst_0
StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option java.lang.Object java.lang.Throwable
StackMap stack: javax.net.ssl.SSLEngine int
15: invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
16: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
aload 2
getstatic org.xnio.SslClientAuthMode.REQUESTED:Lorg/xnio/SslClientAuthMode;
if_acmpne 17
iconst_1
goto 18
StackMap locals:
StackMap stack: javax.net.ssl.SSLEngine
17: iconst_0
StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option java.lang.Object java.lang.Throwable
StackMap stack: javax.net.ssl.SSLEngine int
18: invokevirtual javax.net.ssl.SSLEngine.setWantClientAuth:(Z)V
19: aload 3
athrow
20: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.SECURE:Lorg/xnio/Option;
if_acmpne 22
21: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.delegate:Lorg/xnio/StreamConnection;
aload 1
aload 2
invokevirtual org.xnio.StreamConnection.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
0 23 1 option Lorg/xnio/Option<TT;>;
0 23 2 value TT;
Exception table:
from to target type
1 5 12 any
Exceptions:
throws java.lang.IllegalArgumentException, java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;TT;)TT;
MethodParameters:
Name Flags
option final
value final
public <T> T getOption(org.xnio.Option<T>);
descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.xnio.Options.SSL_CLIENT_AUTH_MODE:Lorg/xnio/Option;
if_acmpne 5
1: aload 1
aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getNeedClientAuth:()Z
ifeq 2
getstatic org.xnio.SslClientAuthMode.REQUIRED:Lorg/xnio/SslClientAuthMode;
goto 4
StackMap locals:
StackMap stack: org.xnio.Option
2: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getWantClientAuth:()Z
ifeq 3
getstatic org.xnio.SslClientAuthMode.REQUESTED:Lorg/xnio/SslClientAuthMode;
goto 4
StackMap locals:
StackMap stack: org.xnio.Option
3: getstatic org.xnio.SslClientAuthMode.NOT_REQUESTED:Lorg/xnio/SslClientAuthMode;
StackMap locals: io.undertow.protocols.ssl.UndertowSslConnection org.xnio.Option
StackMap stack: org.xnio.Option org.xnio.SslClientAuthMode
4: invokevirtual org.xnio.Option.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
5: StackMap locals:
StackMap stack:
aload 1
getstatic org.xnio.Options.SECURE:Lorg/xnio/Option;
if_acmpne 6
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
goto 7
StackMap locals:
StackMap stack:
6: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.delegate:Lorg/xnio/StreamConnection;
aload 1
invokevirtual org.xnio.StreamConnection.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
7: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
0 8 1 option Lorg/xnio/Option<TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
MethodParameters:
Name Flags
option final
public boolean supportsOption(org.xnio.Option<?>);
descriptor: (Lorg/xnio/Option;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic io.undertow.protocols.ssl.UndertowSslConnection.SUPPORTED_OPTIONS:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 1
aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.delegate:Lorg/xnio/StreamConnection;
aload 1
invokevirtual org.xnio.StreamConnection.supportsOption:(Lorg/xnio/Option;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
0 2 1 option Lorg/xnio/Option<*>;
Signature: (Lorg/xnio/Option<*>;)Z
MethodParameters:
Name Flags
option final
protected boolean readClosed();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.xnio.ssl.SslConnection.readClosed:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
protected boolean writeClosed();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.xnio.ssl.SslConnection.writeClosed:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
protected void closeAction();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.UndertowSslConnection.sslConduit:Lio/undertow/protocols/ssl/SslConduit;
invokevirtual io.undertow.protocols.ssl.SslConduit.close:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/UndertowSslConnection;
}
SourceFile: "UndertowSslConnection.java"
NestMembers:
io.undertow.protocols.ssl.UndertowSslConnection$HandshakeCallback
InnerClasses:
private final HandshakeCallback = io.undertow.protocols.ssl.UndertowSslConnection$HandshakeCallback of io.undertow.protocols.ssl.UndertowSslConnection
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener
public SetBuilder = org.xnio.Option$SetBuilder of org.xnio.Option