public class oadd.io.netty.handler.ssl.SslHandler extends oadd.io.netty.handler.codec.ByteToMessageDecoder implements oadd.io.netty.channel.ChannelOutboundHandler
{
private static final oadd.io.netty.util.internal.logging.InternalLogger logger;
private static final java.util.regex.Pattern IGNORABLE_CLASS_IN_STACK;
private static final java.util.regex.Pattern IGNORABLE_ERROR_MESSAGE;
private static final int STATE_SENT_FIRST_MESSAGE;
private static final int STATE_FLUSHED_BEFORE_HANDSHAKE;
private static final int STATE_READ_DURING_HANDSHAKE;
private static final int STATE_HANDSHAKE_STARTED;
private static final int STATE_NEEDS_FLUSH;
private static final int STATE_OUTBOUND_CLOSED;
private static final int STATE_CLOSE_NOTIFY;
private static final int STATE_PROCESS_TASK;
private static final int STATE_FIRE_CHANNEL_READ;
private static final int STATE_UNWRAP_REENTRY;
private static final int MAX_PLAINTEXT_LENGTH;
private volatile oadd.io.netty.channel.ChannelHandlerContext ctx;
private final javax.net.ssl.SSLEngine engine;
private final oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType;
private final java.util.concurrent.Executor delegatedTaskExecutor;
private final boolean jdkCompatibilityMode;
private final java.nio.ByteBuffer[] singleBuffer;
private final boolean startTls;
private final oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner sslTaskRunnerForUnwrap;
private final oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner sslTaskRunner;
private oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites;
private oadd.io.netty.util.concurrent.Promise handshakePromise;
private final oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise;
private int packetLength;
private short state;
private volatile long handshakeTimeoutMillis;
private volatile long closeNotifyFlushTimeoutMillis;
private volatile long closeNotifyReadTimeoutMillis;
volatile int wrapDataSize;
static final boolean $assertionsDisabled;
public void <init>(javax.net.ssl.SSLEngine)
{
oadd.io.netty.handler.ssl.SslHandler v;
javax.net.ssl.SSLEngine v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: javax.net.ssl.SSLEngine;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void <init>(javax.net.ssl.SSLEngine,boolean)>(v, 0);
return;
}
public void <init>(javax.net.ssl.SSLEngine, boolean)
{
oadd.io.netty.util.concurrent.ImmediateExecutor v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
javax.net.ssl.SSLEngine v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: boolean;
v = <oadd.io.netty.util.concurrent.ImmediateExecutor: oadd.io.netty.util.concurrent.ImmediateExecutor INSTANCE>;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void <init>(javax.net.ssl.SSLEngine,boolean,java.util.concurrent.Executor)>(v, v, v);
return;
}
public void <init>(javax.net.ssl.SSLEngine, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
oadd.io.netty.handler.ssl.SslHandler v;
javax.net.ssl.SSLEngine v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: java.util.concurrent.Executor;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void <init>(javax.net.ssl.SSLEngine,boolean,java.util.concurrent.Executor)>(v, 0, v);
return;
}
public void <init>(javax.net.ssl.SSLEngine, boolean, java.util.concurrent.Executor)
{
oadd.io.netty.handler.ssl.SslHandler$SslEngineType v, v, v;
oadd.io.netty.handler.codec.ByteToMessageDecoder$Cumulator v;
javax.net.ssl.SSLEngine v;
oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise v, v;
boolean v, v;
java.nio.ByteBuffer[] v;
oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner v, v;
java.util.concurrent.Executor v;
oadd.io.netty.handler.ssl.SslHandler v;
java.lang.Object v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: boolean;
v := @parameter: java.util.concurrent.Executor;
specialinvoke v.<oadd.io.netty.handler.codec.ByteToMessageDecoder: void <init>()>();
v = newarray (java.nio.ByteBuffer)[1];
v.<oadd.io.netty.handler.ssl.SslHandler: java.nio.ByteBuffer[] singleBuffer> = v;
v = new oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner: void <init>(oadd.io.netty.handler.ssl.SslHandler,boolean)>(v, 1);
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner sslTaskRunnerForUnwrap> = v;
v = new oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner: void <init>(oadd.io.netty.handler.ssl.SslHandler,boolean)>(v, 0);
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner sslTaskRunner> = v;
v = new oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: void <init>(oadd.io.netty.handler.ssl.SslHandler)>(v);
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise> = v;
v = new oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: void <init>(oadd.io.netty.handler.ssl.SslHandler)>(v);
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise> = v;
v.<oadd.io.netty.handler.ssl.SslHandler: long handshakeTimeoutMillis> = 10000L;
v.<oadd.io.netty.handler.ssl.SslHandler: long closeNotifyFlushTimeoutMillis> = 3000L;
v.<oadd.io.netty.handler.ssl.SslHandler: int wrapDataSize> = 16384;
v = staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "engine");
v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine> = v;
v = staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "delegatedTaskExecutor");
v.<oadd.io.netty.handler.ssl.SslHandler: java.util.concurrent.Executor delegatedTaskExecutor> = v;
v = staticinvoke <oadd.io.netty.handler.ssl.SslHandler$SslEngineType: oadd.io.netty.handler.ssl.SslHandler$SslEngineType forEngine(javax.net.ssl.SSLEngine)>(v);
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType> = v;
v.<oadd.io.netty.handler.ssl.SslHandler: boolean startTls> = v;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslEngineType: boolean jdkCompatibilityMode(javax.net.ssl.SSLEngine)>(v);
v.<oadd.io.netty.handler.ssl.SslHandler: boolean jdkCompatibilityMode> = v;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType>;
v = v.<oadd.io.netty.handler.ssl.SslHandler$SslEngineType: oadd.io.netty.handler.codec.ByteToMessageDecoder$Cumulator cumulator>;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setCumulator(oadd.io.netty.handler.codec.ByteToMessageDecoder$Cumulator)>(v);
return;
}
public long getHandshakeTimeoutMillis()
{
long v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: long handshakeTimeoutMillis>;
return v;
}
public void setHandshakeTimeout(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
long v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "unit");
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeTimeoutMillis(long)>(v);
return;
}
public void setHandshakeTimeoutMillis(long)
{
long v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: long;
v = staticinvoke <oadd.io.netty.util.internal.ObjectUtil: long checkPositiveOrZero(long,java.lang.String)>(v, "handshakeTimeoutMillis");
v.<oadd.io.netty.handler.ssl.SslHandler: long handshakeTimeoutMillis> = v;
return;
}
public final void setWrapDataSize(int)
{
int v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: int;
v.<oadd.io.netty.handler.ssl.SslHandler: int wrapDataSize> = v;
return;
}
public long getCloseNotifyTimeoutMillis()
{
long v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: long getCloseNotifyFlushTimeoutMillis()>();
return v;
}
public void setCloseNotifyTimeout(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
long v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setCloseNotifyFlushTimeout(long,java.util.concurrent.TimeUnit)>(v, v);
return;
}
public void setCloseNotifyTimeoutMillis(long)
{
long v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: long;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setCloseNotifyFlushTimeoutMillis(long)>(v);
return;
}
public final long getCloseNotifyFlushTimeoutMillis()
{
long v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: long closeNotifyFlushTimeoutMillis>;
return v;
}
public final void setCloseNotifyFlushTimeout(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
long v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setCloseNotifyFlushTimeoutMillis(long)>(v);
return;
}
public final void setCloseNotifyFlushTimeoutMillis(long)
{
long v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: long;
v = staticinvoke <oadd.io.netty.util.internal.ObjectUtil: long checkPositiveOrZero(long,java.lang.String)>(v, "closeNotifyFlushTimeoutMillis");
v.<oadd.io.netty.handler.ssl.SslHandler: long closeNotifyFlushTimeoutMillis> = v;
return;
}
public final long getCloseNotifyReadTimeoutMillis()
{
long v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: long closeNotifyReadTimeoutMillis>;
return v;
}
public final void setCloseNotifyReadTimeout(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
long v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setCloseNotifyReadTimeoutMillis(long)>(v);
return;
}
public final void setCloseNotifyReadTimeoutMillis(long)
{
long v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: long;
v = staticinvoke <oadd.io.netty.util.internal.ObjectUtil: long checkPositiveOrZero(long,java.lang.String)>(v, "closeNotifyReadTimeoutMillis");
v.<oadd.io.netty.handler.ssl.SslHandler: long closeNotifyReadTimeoutMillis> = v;
return;
}
public javax.net.ssl.SSLEngine engine()
{
oadd.io.netty.handler.ssl.SslHandler v;
javax.net.ssl.SSLEngine v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
return v;
}
public java.lang.String applicationProtocol()
{
java.lang.String v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
javax.net.ssl.SSLEngine v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine()>();
v = v instanceof oadd.io.netty.handler.ssl.ApplicationProtocolAccessor;
if v != 0 goto label;
return null;
label:
v = interfaceinvoke v.<oadd.io.netty.handler.ssl.ApplicationProtocolAccessor: java.lang.String getNegotiatedApplicationProtocol()>();
return v;
}
public oadd.io.netty.util.concurrent.Future handshakeFuture()
{
oadd.io.netty.util.concurrent.Promise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
return v;
}
public oadd.io.netty.channel.ChannelFuture close()
{
oadd.io.netty.channel.ChannelFuture v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelFuture closeOutbound()>();
return v;
}
public oadd.io.netty.channel.ChannelFuture close(oadd.io.netty.channel.ChannelPromise)
{
oadd.io.netty.channel.ChannelFuture v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelFuture closeOutbound(oadd.io.netty.channel.ChannelPromise)>(v);
return v;
}
public oadd.io.netty.channel.ChannelFuture closeOutbound()
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelFuture v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelFuture closeOutbound(oadd.io.netty.channel.ChannelPromise)>(v);
return v;
}
public oadd.io.netty.channel.ChannelFuture closeOutbound(oadd.io.netty.channel.ChannelPromise)
{
oadd.io.netty.handler.ssl.SslHandler$1 v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
oadd.io.netty.util.concurrent.EventExecutor v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void closeOutbound0(oadd.io.netty.channel.ChannelPromise)>(v);
goto label;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = new oadd.io.netty.handler.ssl.SslHandler$1;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$1: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.channel.ChannelPromise)>(v, v);
interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: void execute(java.lang.Runnable)>(v);
label:
return v;
}
private void closeOutbound0(oadd.io.netty.channel.ChannelPromise)
{
oadd.io.netty.channel.Channel v;
oadd.io.netty.handler.ssl.SslHandler v;
java.lang.Exception v;
javax.net.ssl.SSLEngine v;
oadd.io.netty.util.internal.logging.InternalLogger v;
oadd.io.netty.channel.ChannelHandlerContext v, v;
oadd.io.netty.channel.ChannelPromise v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(32);
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void closeOutbound()>();
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void flush(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.channel.ChannelPromise)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelPromise: boolean tryFailure(java.lang.Throwable)>(v);
if v != 0 goto label;
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("{} flush() raised a masked exception.", v, v);
label:
return;
catch java.lang.Exception from label to label with label;
}
public oadd.io.netty.util.concurrent.Future sslCloseFuture()
{
oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise>;
return v;
}
public void handlerRemoved0(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
java.lang.Throwable v;
javax.net.ssl.SSLEngine v, v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v, v;
oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelException v;
boolean v, v, v, v;
oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent v;
javax.net.ssl.SSLHandshakeException v, v, v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.Promise v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: boolean isEmpty()>();
if v != 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = new oadd.io.netty.channel.ChannelException;
specialinvoke v.<oadd.io.netty.channel.ChannelException: void <init>(java.lang.String)>("Pending write on removal of SslHandler");
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void releaseAndFailAll(oadd.io.netty.channel.ChannelOutboundInvoker,java.lang.Throwable)>(v, v);
label:
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites> = null;
v = null;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v != 0 goto label;
v = new javax.net.ssl.SSLHandshakeException;
specialinvoke v.<javax.net.ssl.SSLHandshakeException: void <init>(java.lang.String)>("SslHandler removed before handshake completed");
v = v;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
if v == 0 goto label;
v = new oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent: void <init>(java.lang.Throwable)>(v);
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireUserEventTriggered(java.lang.Object)>(v);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: boolean isDone()>();
if v != 0 goto label;
if v != null goto label;
v = new javax.net.ssl.SSLHandshakeException;
specialinvoke v.<javax.net.ssl.SSLHandshakeException: void <init>(java.lang.String)>("SslHandler removed before handshake completed");
v = v;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void notifyClosePromise(java.lang.Throwable)>(v);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
staticinvoke <oadd.io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
goto label;
label:
v := @caughtexception;
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
staticinvoke <oadd.io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void bind(oadd.io.netty.channel.ChannelHandlerContext, java.net.SocketAddress, oadd.io.netty.channel.ChannelPromise) throws java.lang.Exception
{
java.net.SocketAddress v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.net.SocketAddress;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture bind(java.net.SocketAddress,oadd.io.netty.channel.ChannelPromise)>(v, v);
return;
}
public void connect(oadd.io.netty.channel.ChannelHandlerContext, java.net.SocketAddress, java.net.SocketAddress, oadd.io.netty.channel.ChannelPromise) throws java.lang.Exception
{
java.net.SocketAddress v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.net.SocketAddress;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture connect(java.net.SocketAddress,java.net.SocketAddress,oadd.io.netty.channel.ChannelPromise)>(v, v, v);
return;
}
public void deregister(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.channel.ChannelPromise) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture deregister(oadd.io.netty.channel.ChannelPromise)>(v);
return;
}
public void disconnect(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.channel.ChannelPromise) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void closeOutboundAndChannel(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.channel.ChannelPromise,boolean)>(v, v, 1);
return;
}
public void close(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.channel.ChannelPromise) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void closeOutboundAndChannel(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.channel.ChannelPromise,boolean)>(v, v, 0);
return;
}
public void read(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.util.concurrent.Promise v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(4);
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext read()>();
return;
}
private static java.lang.IllegalStateException newPendingWritesNullException()
{
java.lang.IllegalStateException v;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("pendingUnencryptedWrites is null, handlerRemoved called?");
return v;
}
public void write(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Object, oadd.io.netty.channel.ChannelPromise) throws java.lang.Exception
{
java.lang.IllegalStateException v;
java.lang.Class[] v;
oadd.io.netty.handler.codec.UnsupportedMessageTypeException v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v, v;
java.lang.Object v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelPromise v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
v = v instanceof oadd.io.netty.buffer.ByteBuf;
if v != 0 goto label;
v = new oadd.io.netty.handler.codec.UnsupportedMessageTypeException;
v = newarray (java.lang.Class)[1];
v[0] = class "Loadd/io/netty/buffer/ByteBuf;";
specialinvoke v.<oadd.io.netty.handler.codec.UnsupportedMessageTypeException: void <init>(java.lang.Object,java.lang.Class[])>(v, v);
staticinvoke <oadd.io.netty.util.ReferenceCountUtil: void safeRelease(java.lang.Object)>(v);
interfaceinvoke v.<oadd.io.netty.channel.ChannelPromise: oadd.io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
if v != null goto label;
staticinvoke <oadd.io.netty.util.ReferenceCountUtil: void safeRelease(java.lang.Object)>(v);
v = staticinvoke <oadd.io.netty.handler.ssl.SslHandler: java.lang.IllegalStateException newPendingWritesNullException()>();
interfaceinvoke v.<oadd.io.netty.channel.ChannelPromise: oadd.io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void add(oadd.io.netty.buffer.ByteBuf,oadd.io.netty.channel.ChannelPromise)>(v, v);
label:
return;
}
public void flush(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
java.lang.Throwable v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v, v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = v.<oadd.io.netty.handler.ssl.SslHandler: boolean startTls>;
if v == 0 goto label;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(1);
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(1);
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void writeAndRemoveAll(oadd.io.netty.channel.ChannelHandlerContext)>(v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void startHandshakeProcessing(boolean)>(1);
return;
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(128);
if v == 0 goto label;
return;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void wrapAndFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
staticinvoke <oadd.io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void wrapAndFlush(oadd.io.netty.channel.ChannelHandlerContext) throws javax.net.ssl.SSLException
{
java.lang.Throwable v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v, v;
oadd.io.netty.util.concurrent.Promise v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v;
oadd.io.netty.channel.ChannelPromise v;
boolean v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: boolean isEmpty()>();
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = <oadd.io.netty.buffer.Unpooled: oadd.io.netty.buffer.ByteBuf EMPTY_BUFFER>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelPromise newPromise()>();
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void add(oadd.io.netty.buffer.ByteBuf,oadd.io.netty.channel.ChannelPromise)>(v, v);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(2);
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void wrap(oadd.io.netty.channel.ChannelHandlerContext,boolean)>(v, 0);
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void wrap(oadd.io.netty.channel.ChannelHandlerContext, boolean) throws javax.net.ssl.SSLException
{
java.lang.IllegalStateException v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise v;
int[] v;
oadd.io.netty.buffer.ByteBufAllocator v;
oadd.io.netty.channel.ChannelPromise v;
boolean v, v, v, v, v, v;
oadd.io.netty.util.concurrent.Promise v;
java.lang.Throwable v, v;
javax.net.ssl.SSLEngine v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v, v, v, v, v, v;
javax.net.ssl.SSLEngineResult v;
int v, v, v, v, v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
java.lang.String v;
javax.net.ssl.SSLEngineResult$Status v, v;
oadd.io.netty.buffer.ByteBuf v, v, v, v, v, v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.handler.ssl.SslClosedEngineException v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: boolean;
v = null;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.buffer.ByteBufAllocator alloc()>();
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: int wrapDataSize>;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: boolean isRemoved()>();
if v != 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelPromise newPromise()>();
if v <= 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: oadd.io.netty.buffer.ByteBuf remove(oadd.io.netty.buffer.ByteBufAllocator,int,oadd.io.netty.channel.ChannelPromise)>(v, v, v);
goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: oadd.io.netty.buffer.ByteBuf removeFirst(oadd.io.netty.channel.ChannelPromise)>(v);
label:
v = v;
if v == null goto label;
if v != null goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int nioBufferCount()>();
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.buffer.ByteBuf allocateOutNetBuf(oadd.io.netty.channel.ChannelHandlerContext,int,int)>(v, v, v);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngineResult wrap(oadd.io.netty.buffer.ByteBufAllocator,javax.net.ssl.SSLEngine,oadd.io.netty.buffer.ByteBuf,oadd.io.netty.buffer.ByteBuf)>(v, v, v, v);
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean isReadable()>();
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void addFirst(oadd.io.netty.buffer.ByteBuf,oadd.io.netty.channel.ChannelPromise)>(v, v);
v = null;
goto label;
label:
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean isReadable()>();
if v == 0 goto label;
v = v;
v = null;
if v == null goto label;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture write(java.lang.Object,oadd.io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture write(java.lang.Object)>(v);
goto label;
label:
if v == null goto label;
v = <oadd.io.netty.buffer.Unpooled: oadd.io.netty.buffer.ByteBuf EMPTY_BUFFER>;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture write(java.lang.Object,oadd.io.netty.channel.ChannelPromise)>(v, v);
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$Status getStatus()>();
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
if v != v goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: java.lang.Throwable cause()>();
if v != null goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: java.lang.Throwable cause()>();
if v != null goto label;
v = new oadd.io.netty.handler.ssl.SslClosedEngineException;
specialinvoke v.<oadd.io.netty.handler.ssl.SslClosedEngineException: void <init>(java.lang.String)>("SSLEngine closed already");
v = v;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void releaseAndFailAll(oadd.io.netty.channel.ChannelOutboundInvoker,java.lang.Throwable)>(v, v);
label:
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(16);
label:
return;
label:
v = <oadd.io.netty.handler.ssl.SslHandler$11: int[] $SwitchMap$javax$net$ssl$SSLEngineResult$HandshakeStatus>;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult$HandshakeStatus: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
default: goto label;
};
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean runDelegatedTasks(boolean)>(v);
if v != 0 goto label;
goto label;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean setHandshakeSuccess()>();
goto label;
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesProduced()>();
if v <= 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: boolean isEmpty()>();
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = <oadd.io.netty.buffer.Unpooled: oadd.io.netty.buffer.ByteBuf EMPTY_BUFFER>;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void add(oadd.io.netty.buffer.ByteBuf)>(v);
goto label;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void readIfNeeded(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(16);
label:
return;
label:
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.net.ssl.SSLEngineResult$HandshakeStatus)>(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[])>("Unknown handshake status: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(16);
goto label;
label:
v := @caughtexception;
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(16);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private boolean wrapNonAppData(oadd.io.netty.channel.ChannelHandlerContext, boolean) throws javax.net.ssl.SSLException
{
java.lang.IllegalStateException v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v;
int[] v;
oadd.io.netty.buffer.ByteBufAllocator v;
boolean v, v, v, v, v, v, v;
java.lang.Throwable v;
javax.net.ssl.SSLEngine v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v, v;
javax.net.ssl.SSLEngineResult v;
int v, v, v, v, v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
java.lang.String v;
oadd.io.netty.buffer.ByteBuf v, v;
oadd.io.netty.handler.ssl.SslHandler$2 v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.channel.ChannelFuture v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: boolean;
v = null;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.buffer.ByteBufAllocator alloc()>();
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: boolean isRemoved()>();
if v != 0 goto label;
if v != null goto label;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.buffer.ByteBuf allocateOutNetBuf(oadd.io.netty.channel.ChannelHandlerContext,int,int)>(v, 2048, 1);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
v = <oadd.io.netty.buffer.Unpooled: oadd.io.netty.buffer.ByteBuf EMPTY_BUFFER>;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngineResult wrap(oadd.io.netty.buffer.ByteBufAllocator,javax.net.ssl.SSLEngine,oadd.io.netty.buffer.ByteBuf,oadd.io.netty.buffer.ByteBuf)>(v, v, v, v);
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesProduced()>();
if v <= 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture write(java.lang.Object)>(v);
v = new oadd.io.netty.handler.ssl.SslHandler$2;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$2: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.channel.ChannelHandlerContext)>(v, v);
interfaceinvoke v.<oadd.io.netty.channel.ChannelFuture: oadd.io.netty.channel.ChannelFuture addListener(oadd.io.netty.util.concurrent.GenericFutureListener)>(v);
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(16);
label:
v = null;
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = <oadd.io.netty.handler.ssl.SslHandler$11: int[] $SwitchMap$javax$net$ssl$SSLEngineResult$HandshakeStatus>;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult$HandshakeStatus: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
default: goto label;
};
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean setHandshakeSuccess()>();
if v == 0 goto label;
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: boolean isEmpty()>();
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void wrap(oadd.io.netty.channel.ChannelHandlerContext,boolean)>(v, 1);
label:
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
return 0;
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean runDelegatedTasks(boolean)>(v);
if v != 0 goto label;
goto label;
label:
if v != 0 goto label;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: int unwrapNonAppData(oadd.io.netty.channel.ChannelHandlerContext)>(v);
if v > 0 goto label;
label:
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
return 0;
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean setHandshakeSuccess()>();
if v == 0 goto label;
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: boolean isEmpty()>();
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void wrap(oadd.io.netty.channel.ChannelHandlerContext,boolean)>(v, 1);
label:
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: int unwrapNonAppData(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
return 1;
label:
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.net.ssl.SSLEngineResult$HandshakeStatus)>(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[])>("Unknown handshake status: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesProduced()>();
if v != 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
if v != v goto label;
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesConsumed()>();
if v != 0 goto label;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
if v != v goto label;
label:
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v := @caughtexception;
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
throw v;
label:
return 0;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private javax.net.ssl.SSLEngineResult wrap(oadd.io.netty.buffer.ByteBufAllocator, javax.net.ssl.SSLEngine, oadd.io.netty.buffer.ByteBuf, oadd.io.netty.buffer.ByteBuf) throws javax.net.ssl.SSLException
{
oadd.io.netty.handler.ssl.SslHandler$SslEngineType v;
java.nio.ByteBuffer v, v, v;
oadd.io.netty.buffer.ByteBufAllocator v;
boolean v, v, v;
java.nio.ByteBuffer[] v, v, v;
java.lang.Throwable v;
javax.net.ssl.SSLEngine v;
javax.net.ssl.SSLEngineResult v;
javax.net.ssl.SSLSession v;
int v, v, v, v, v, v, v, v, v, v, v;
javax.net.ssl.SSLEngineResult$Status v, v;
oadd.io.netty.buffer.ByteBuf v, v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.buffer.ByteBufAllocator;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = null;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean isDirect()>();
if v != 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType>;
v = v.<oadd.io.netty.handler.ssl.SslHandler$SslEngineType: boolean wantsDirectBuffer>;
if v != 0 goto label;
label:
v = v instanceof oadd.io.netty.buffer.CompositeByteBuf;
if v != 0 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int nioBufferCount()>();
if v != 1 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: java.nio.ByteBuffer[] singleBuffer>;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
v[0] = v;
goto label;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer[] nioBuffers()>();
goto label;
label:
v = interfaceinvoke v.<oadd.io.netty.buffer.ByteBufAllocator: oadd.io.netty.buffer.ByteBuf directBuffer(int)>(v);
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf writeBytes(oadd.io.netty.buffer.ByteBuf,int,int)>(v, v, v);
v = v.<oadd.io.netty.handler.ssl.SslHandler: java.nio.ByteBuffer[] singleBuffer>;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
v[0] = v;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer nioBuffer(int,int)>(v, v);
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[],java.nio.ByteBuffer)>(v, v);
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesConsumed()>();
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf skipBytes(int)>(v);
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writerIndex()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesProduced()>();
v = v + v;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf writerIndex(int)>(v);
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$Status getStatus()>();
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
if v != v goto label;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: int getPacketBufferSize()>();
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf ensureWritable(int)>(v);
goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: java.nio.ByteBuffer[] singleBuffer>;
v[0] = null;
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
return v;
label:
v := @caughtexception;
v = v.<oadd.io.netty.handler.ssl.SslHandler: java.nio.ByteBuffer[] singleBuffer>;
v[0] = null;
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
throw v;
catch java.lang.Throwable from label to label with label;
}
public void channelInactive(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
java.lang.Throwable v, v;
java.nio.channels.ClosedChannelException v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.Promise v;
oadd.io.netty.channel.ChannelHandlerContext v;
boolean v, v, v, v, v, v;
oadd.io.netty.handler.codec.DecoderException v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: java.lang.Throwable cause()>();
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = new java.nio.channels.ClosedChannelException;
specialinvoke v.<java.nio.channels.ClosedChannelException: void <init>()>();
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(32);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(8);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable,boolean,boolean,boolean)>(v, v, v, v, 0);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void notifyClosePromise(java.lang.Throwable)>(v);
label:
specialinvoke v.<oadd.io.netty.handler.codec.ByteToMessageDecoder: void channelInactive(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.handler.codec.DecoderException: java.lang.Throwable getCause()>();
v = v instanceof javax.net.ssl.SSLException;
if v != 0 goto label;
label:
throw v;
label:
return;
catch oadd.io.netty.handler.codec.DecoderException from label to label with label;
}
public void exceptionCaught(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Throwable) throws java.lang.Exception
{
java.lang.Throwable v;
oadd.io.netty.channel.Channel v, v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.internal.logging.InternalLogger v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
boolean v, v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean ignoreException(java.lang.Throwable)>(v);
if v == 0 goto label;
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} Swallowing a harmless \'connection reset by peer / broken pipe\' error that occurred while writing close_notify in response to the peer\'s close_notify", v, v);
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: boolean isActive()>();
if v == 0 goto label;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture close()>();
goto label;
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireExceptionCaught(java.lang.Throwable)>(v);
label:
return;
}
private boolean ignoreException(java.lang.Throwable)
{
java.util.regex.Matcher v, v;
oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise v;
oadd.io.netty.util.internal.logging.InternalLogger v, v;
boolean v, v, v, v, v, v, v, v, v, v, v;
java.lang.StackTraceElement[] v;
java.lang.ClassLoader v;
java.util.regex.Pattern v, v;
java.lang.Throwable v, v;
java.lang.Object[] v;
int v, v, v;
java.lang.StackTraceElement v;
java.lang.String v, v, v, v, v, v;
oadd.io.netty.handler.ssl.SslHandler v;
java.lang.Class v, v, v, v, v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: java.lang.Throwable;
v = v instanceof javax.net.ssl.SSLException;
if v != 0 goto label;
v = v instanceof java.io.IOException;
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: boolean isDone()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
if v == null goto label;
v = <oadd.io.netty.handler.ssl.SslHandler: java.util.regex.Pattern IGNORABLE_ERROR_MESSAGE>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.Throwable: java.lang.StackTraceElement[] getStackTrace()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.StackTraceElement: java.lang.String getClassName()>();
v = virtualinvoke v.<java.lang.StackTraceElement: java.lang.String getMethodName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("oadd.io.netty.");
if v != 0 goto label;
v = "read";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <oadd.io.netty.handler.ssl.SslHandler: java.util.regex.Pattern IGNORABLE_CLASS_IN_STACK>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <oadd.io.netty.util.internal.PlatformDependent: java.lang.ClassLoader getClassLoader(java.lang.Class)>(v);
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v = class "Ljava/nio/channels/SocketChannel;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = class "Ljava/nio/channels/DatagramChannel;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
label:
return 1;
label:
v = staticinvoke <oadd.io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = "com.sun.nio.sctp.SctpChannel";
v = virtualinvoke v.<java.lang.Class: java.lang.Class getSuperclass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
return 1;
label:
v := @caughtexception;
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v[0] = v;
v[1] = v;
v[2] = v;
interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object[])>("Unexpected exception while loading class {} classname {}", v);
label:
v = v + 1;
goto label;
label:
return 0;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public static boolean isEncrypted(oadd.io.netty.buffer.ByteBuf)
{
int v, v, v, v;
java.lang.IllegalArgumentException v;
oadd.io.netty.buffer.ByteBuf v;
boolean v;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
if v >= 5 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("buffer must have at least 5 readable bytes");
throw v;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = staticinvoke <oadd.io.netty.handler.ssl.SslUtils: int getEncryptedPacketLength(oadd.io.netty.buffer.ByteBuf,int)>(v, v);
v = (int) -2;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void decodeJdkCompatible(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.buffer.ByteBuf) throws oadd.io.netty.handler.ssl.NotSslRecordException
{
java.lang.Throwable v;
java.lang.AssertionError v, v;
javax.net.ssl.SSLEngine v;
int v, v, v, v, v, v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
java.lang.String v, v, v;
oadd.io.netty.buffer.ByteBuf v;
boolean v, v, v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.handler.ssl.NotSslRecordException v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = v.<oadd.io.netty.handler.ssl.SslHandler: int packetLength>;
if v <= 0 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
if v >= v goto label;
return;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
if v >= 5 goto label;
return;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = staticinvoke <oadd.io.netty.handler.ssl.SslUtils: int getEncryptedPacketLength(oadd.io.netty.buffer.ByteBuf,int)>(v, v);
v = (int) -2;
if v != v goto label;
v = new oadd.io.netty.handler.ssl.NotSslRecordException;
v = staticinvoke <oadd.io.netty.buffer.ByteBufUtil: java.lang.String hexDump(oadd.io.netty.buffer.ByteBuf)>(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[])>("not an SSL/TLS record: \u0001");
specialinvoke v.<oadd.io.netty.handler.ssl.NotSslRecordException: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf skipBytes(int)>(v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
throw v;
label:
v = <oadd.io.netty.handler.ssl.SslHandler: boolean $assertionsDisabled>;
if v != 0 goto label;
if v > 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
if v <= v goto label;
v.<oadd.io.netty.handler.ssl.SslHandler: int packetLength> = v;
return;
label:
v.<oadd.io.netty.handler.ssl.SslHandler: int packetLength> = 0;
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: int unwrap(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf,int)>(v, v, v);
v = <oadd.io.netty.handler.ssl.SslHandler: boolean $assertionsDisabled>;
if v != 0 goto label;
if v == v goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: boolean isInboundDone()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,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[])>("we feed the SSLEngine a packets worth of data: \u but it only consumed: \u0001");
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void handleUnwrapThrowable(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void decodeNonJdkCompatible(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.buffer.ByteBuf)
{
java.lang.Throwable v;
int v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: int unwrap(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf,int)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void handleUnwrapThrowable(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void handleUnwrapThrowable(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Throwable)
{
java.lang.Throwable v, v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v;
oadd.io.netty.util.concurrent.Promise v;
javax.net.ssl.SSLException v;
oadd.io.netty.util.internal.logging.InternalLogger v;
oadd.io.netty.channel.ChannelHandlerContext v;
boolean v;
oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
if v == 0 goto label;
v = new oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent: void <init>(java.lang.Throwable)>(v);
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireUserEventTriggered(java.lang.Object)>(v);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
if v == null goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void wrapAndFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable,boolean,boolean,boolean)>(v, v, 1, 0, 1);
goto label;
label:
v := @caughtexception;
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Throwable)>("SSLException during trying to call SSLEngine.wrap(...) because of an previous SSLException, ignoring...", v);
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable,boolean,boolean,boolean)>(v, v, 1, 0, 1);
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable,boolean,boolean,boolean)>(v, v, 1, 0, 1);
throw v;
label:
staticinvoke <oadd.io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
return;
catch javax.net.ssl.SSLException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void decode(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.buffer.ByteBuf, java.util.List) throws javax.net.ssl.SSLException
{
java.util.List v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: java.util.List;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(128);
if v == 0 goto label;
return;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: boolean jdkCompatibilityMode>;
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void decodeJdkCompatible(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf)>(v, v);
goto label;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void decodeNonJdkCompatible(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf)>(v, v);
label:
return;
}
public void channelReadComplete(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void channelReadComplete0(oadd.io.netty.channel.ChannelHandlerContext)>(v);
return;
}
private void channelReadComplete0(oadd.io.netty.channel.ChannelHandlerContext)
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void discardSomeReadBytes()>();
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void flushIfNeeded(oadd.io.netty.channel.ChannelHandlerContext)>(v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void readIfNeeded(oadd.io.netty.channel.ChannelHandlerContext)>(v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(256);
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireChannelReadComplete()>();
return;
}
private void readIfNeeded(oadd.io.netty.channel.ChannelHandlerContext)
{
oadd.io.netty.channel.Channel v;
oadd.io.netty.channel.ChannelConfig v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.Promise v;
oadd.io.netty.channel.ChannelHandlerContext v;
boolean v, v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: oadd.io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelConfig: boolean isAutoRead()>();
if v != 0 goto label;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(256);
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v != 0 goto label;
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext read()>();
label:
return;
}
private void flushIfNeeded(oadd.io.netty.channel.ChannelHandlerContext)
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(16);
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
return;
}
private int unwrapNonAppData(oadd.io.netty.channel.ChannelHandlerContext) throws javax.net.ssl.SSLException
{
int v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = <oadd.io.netty.buffer.Unpooled: oadd.io.netty.buffer.ByteBuf EMPTY_BUFFER>;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: int unwrap(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf,int)>(v, v, 0);
return v;
}
private int unwrap(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.buffer.ByteBuf, int) throws javax.net.ssl.SSLException
{
oadd.io.netty.handler.ssl.SslHandler$SslEngineType v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.io.netty.util.concurrent.Promise v;
java.lang.Throwable v;
javax.net.ssl.SSLEngine v;
javax.net.ssl.SSLEngineResult v;
javax.net.ssl.SSLSession v;
int v, v, v, v, v, v, v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
javax.net.ssl.SSLEngineResult$Status v, v, v, v;
oadd.io.netty.buffer.ByteBuf v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: int;
v = v;
v = 0;
v = 0;
v = 0;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.buffer.ByteBuf allocate(oadd.io.netty.channel.ChannelHandlerContext,int)>(v, v);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslEngineType: javax.net.ssl.SSLEngineResult unwrap(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.buffer.ByteBuf,int,oadd.io.netty.buffer.ByteBuf)>(v, v, v, v);
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$Status getStatus()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesProduced()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesConsumed()>();
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf skipBytes(int)>(v);
v = v - v;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v == v goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
if v != v goto label;
label:
v = v;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean isReadable()>();
if v == 0 goto label;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean setHandshakeSuccessUnwrapMarkReentry()>();
if v == 0 goto label;
goto label;
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean setHandshakeSuccess()>();
if v != 0 goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v != v goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v | v;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean isReadable()>();
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(256);
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(512);
if v == 0 goto label;
v = 1;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void executeChannelRead(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf)>(v, v);
goto label;
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireChannelRead(java.lang.Object)>(v);
label:
v = null;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
if v != v goto label;
v = 1;
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
if v != v goto label;
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: int getApplicationBufferSize()>();
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType>;
if v >= v goto label;
v = v;
goto label;
label:
v = v - v;
label:
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslEngineType: int calculatePendingData(oadd.io.netty.handler.ssl.SslHandler,int)>(v, v);
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.buffer.ByteBuf allocate(oadd.io.netty.channel.ChannelHandlerContext,int)>(v, v);
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
if v != v goto label;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean runDelegatedTasks(boolean)>(1);
if v != 0 goto label;
v = 0;
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
if v != v goto label;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean wrapNonAppData(oadd.io.netty.channel.ChannelHandlerContext,boolean)>(v, 1);
if v == 0 goto label;
if v == 0 goto label;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_UNDERFLOW>;
if v == v goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_TASK>;
if v == v goto label;
if v != 0 goto label;
if v == 0 goto label;
label:
if v != 0 goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
if v != v goto label;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
if v != v goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void readIfNeeded(oadd.io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
if v != null goto label;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.buffer.ByteBuf allocate(oadd.io.netty.channel.ChannelHandlerContext,int)>(v, v);
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: boolean isRemoved()>();
if v == 0 goto label;
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(2);
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(2);
v = 1;
label:
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void wrap(oadd.io.netty.channel.ChannelHandlerContext,boolean)>(v, 1);
label:
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
if v == 0 goto label;
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void executeNotifyClosePromise(oadd.io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void notifyClosePromise(java.lang.Throwable)>(null);
goto label;
label:
v := @caughtexception;
if v == null goto label;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
label:
if v == 0 goto label;
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void executeNotifyClosePromise(oadd.io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void notifyClosePromise(java.lang.Throwable)>(null);
label:
throw v;
label:
v = v - v;
return v;
catch java.lang.Throwable from label to label with label;
}
private boolean setHandshakeSuccessUnwrapMarkReentry()
{
java.lang.Throwable v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v, v, v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(512);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(512);
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean setHandshakeSuccess()>();
label:
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(512);
label:
return v;
label:
v := @caughtexception;
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(512);
label:
throw v;
catch java.lang.Throwable from label to label with label;
}
private void executeNotifyClosePromise(oadd.io.netty.channel.ChannelHandlerContext)
{
java.util.concurrent.RejectedExecutionException v;
oadd.io.netty.handler.ssl.SslHandler$3 v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.EventExecutor v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = new oadd.io.netty.handler.ssl.SslHandler$3;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$3: void <init>(oadd.io.netty.handler.ssl.SslHandler)>(v);
interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void notifyClosePromise(java.lang.Throwable)>(v);
label:
return;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
private void executeChannelRead(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.buffer.ByteBuf)
{
java.util.concurrent.RejectedExecutionException v;
oadd.io.netty.handler.ssl.SslHandler$4 v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.EventExecutor v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = new oadd.io.netty.handler.ssl.SslHandler$4;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$4: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf)>(v, v, v);
interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
throw v;
label:
return;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
private static java.nio.ByteBuffer toByteBuffer(oadd.io.netty.buffer.ByteBuf, int, int)
{
int v, v, v;
oadd.io.netty.buffer.ByteBuf v;
java.nio.ByteBuffer v;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: int;
v := @parameter: int;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int nioBufferCount()>();
if v != 1 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
goto label;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer nioBuffer(int,int)>(v, v);
label:
return v;
}
private static boolean inEventLoop(java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
boolean v, v, v;
v := @parameter: java.util.concurrent.Executor;
v = v instanceof oadd.io.netty.util.concurrent.EventExecutor;
if v == 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean runDelegatedTasks(boolean)
{
java.lang.Throwable v, v;
oadd.io.netty.util.concurrent.ImmediateExecutor v;
java.util.concurrent.Executor v, v;
oadd.io.netty.handler.ssl.SslHandler$AsyncTaskCompletionHandler v;
java.lang.Runnable v;
oadd.io.netty.handler.ssl.SslHandler v;
javax.net.ssl.SSLEngine v;
boolean v, v, v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: boolean;
v = v.<oadd.io.netty.handler.ssl.SslHandler: java.util.concurrent.Executor delegatedTaskExecutor>;
v = <oadd.io.netty.util.concurrent.ImmediateExecutor: oadd.io.netty.util.concurrent.ImmediateExecutor INSTANCE>;
if v == v goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: java.util.concurrent.Executor delegatedTaskExecutor>;
v = staticinvoke <oadd.io.netty.handler.ssl.SslHandler: boolean inEventLoop(java.util.concurrent.Executor)>(v);
if v == 0 goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: java.lang.Runnable getDelegatedTask()>();
if v != null goto label;
return 1;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(128);
v = v instanceof oadd.io.netty.handler.ssl.AsyncRunnable;
if v == 0 goto label;
v = 0;
label:
v = new oadd.io.netty.handler.ssl.SslHandler$AsyncTaskCompletionHandler;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$AsyncTaskCompletionHandler: void <init>(oadd.io.netty.handler.ssl.SslHandler,boolean)>(v, v);
interfaceinvoke v.<oadd.io.netty.handler.ssl.AsyncRunnable: void run(java.lang.Runnable)>(v);
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$AsyncTaskCompletionHandler: boolean resumeLater()>();
if v == 0 goto label;
label:
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(128);
label:
return 0;
label:
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(128);
goto label;
label:
v := @caughtexception;
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(128);
label:
throw v;
label:
interfaceinvoke v.<java.lang.Runnable: void run()>();
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(128);
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(128);
throw v;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void executeDelegatedTask(boolean)>(v);
return 0;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner getTaskRunner(boolean)
{
oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: boolean;
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner sslTaskRunnerForUnwrap>;
goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner sslTaskRunner>;
label:
return v;
}
private void executeDelegatedTask(boolean)
{
oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: boolean;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner getTaskRunner(boolean)>(v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void executeDelegatedTask(oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner)>(v);
return;
}
private void executeDelegatedTask(oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner)
{
java.util.concurrent.RejectedExecutionException v;
oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner v;
java.util.concurrent.Executor v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.handler.ssl.SslHandler$SslTasksRunner;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(128);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: java.util.concurrent.Executor delegatedTaskExecutor>;
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(128);
throw v;
label:
return;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
private boolean setHandshakeSuccess()
{
java.lang.Object[] v;
oadd.io.netty.channel.ChannelConfig v;
javax.net.ssl.SSLEngine v;
javax.net.ssl.SSLSession v;
oadd.io.netty.util.internal.logging.InternalLogger v, v;
oadd.io.netty.channel.ChannelHandlerContext v, v, v, v, v;
java.lang.String v, v;
boolean v, v, v, v, v, v, v;
oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent v;
oadd.io.netty.channel.Channel v, v, v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.Promise v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v != 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean trySuccess(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = newarray (java.lang.Object)[3];
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v[0] = v;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getProtocol()>();
v[1] = v;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getCipherSuite()>();
v[2] = v;
interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object[])>("{} HANDSHAKEN: protocol:{} cipher suite:{}", v);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = <oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent: oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent SUCCESS>;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireUserEventTriggered(java.lang.Object)>(v);
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(4);
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(4);
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: oadd.io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelConfig: boolean isAutoRead()>();
if v != 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext read()>();
label:
return v;
}
private void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Throwable)
{
java.lang.Throwable v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable,boolean,boolean,boolean)>(v, v, 1, 1, 0);
return;
}
private void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Throwable, boolean, boolean, boolean)
{
java.lang.Throwable v, v;
javax.net.ssl.SSLEngine v, v;
oadd.io.netty.util.internal.logging.InternalLogger v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
java.lang.String v;
boolean v, v, v, v, v, v, v;
oadd.io.netty.channel.Channel v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.Promise v;
javax.net.ssl.SSLException v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(32);
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void closeOutbound()>();
if v == 0 goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void closeInbound()>();
label:
goto label;
label:
v := @caughtexception;
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = virtualinvoke v.<javax.net.ssl.SSLException: java.lang.String getMessage()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("possible truncation attack");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("closing inbound before receiving peer\'s close_notify");
if v != 0 goto label;
label:
v = <oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
interfaceinvoke v.<oadd.io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} SSLEngine.closeInbound() raised an exception.", v, v);
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
if v != 0 goto label;
if v == 0 goto label;
label:
staticinvoke <oadd.io.netty.handler.ssl.SslUtils: void handleHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable,boolean)>(v, v, v);
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void releaseAndFailAll(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void releaseAndFailAll(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch javax.net.ssl.SSLException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void setHandshakeFailureTransportFailure(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Throwable)
{
java.lang.Throwable v, v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.Promise v;
javax.net.ssl.SSLException v;
oadd.io.netty.channel.ChannelHandlerContext v;
boolean v;
oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
label:
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String,java.lang.Throwable)>("failure when writing TLS control frames", v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void releaseAndFailAll(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
if v == 0 goto label;
v = new oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandshakeCompletionEvent: void <init>(java.lang.Throwable)>(v);
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireUserEventTriggered(java.lang.Object)>(v);
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture close()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture close()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void releaseAndFailAll(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Throwable)
{
java.lang.Throwable v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
if v == null goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void releaseAndFailAll(oadd.io.netty.channel.ChannelOutboundInvoker,java.lang.Throwable)>(v, v);
label:
return;
}
private void notifyClosePromise(java.lang.Throwable)
{
java.lang.Throwable v;
oadd.io.netty.channel.Channel v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise v, v;
oadd.io.netty.handler.ssl.SslCloseCompletionEvent v, v;
oadd.io.netty.channel.ChannelHandlerContext v, v, v;
boolean v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: java.lang.Throwable;
if v != null goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise>;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: boolean trySuccess(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = <oadd.io.netty.handler.ssl.SslCloseCompletionEvent: oadd.io.netty.handler.ssl.SslCloseCompletionEvent SUCCESS>;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireUserEventTriggered(java.lang.Object)>(v);
goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise>;
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: boolean tryFailure(java.lang.Throwable)>(v);
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = new oadd.io.netty.handler.ssl.SslCloseCompletionEvent;
specialinvoke v.<oadd.io.netty.handler.ssl.SslCloseCompletionEvent: void <init>(java.lang.Throwable)>(v);
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireUserEventTriggered(java.lang.Object)>(v);
label:
return;
}
private void closeOutboundAndChannel(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.channel.ChannelPromise, boolean) throws java.lang.Exception
{
java.lang.Throwable v;
oadd.io.netty.util.concurrent.Future v, v;
javax.net.ssl.SSLEngine v;
oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelPromise v, v, v, v;
boolean v, v, v, v;
oadd.io.netty.handler.ssl.SslHandler$5 v, v;
oadd.io.netty.channel.Channel v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
v := @parameter: boolean;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(32);
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void closeOutbound()>();
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: boolean isActive()>();
if v != 0 goto label;
if v == 0 goto label;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture disconnect(oadd.io.netty.channel.ChannelPromise)>(v);
goto label;
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture close(oadd.io.netty.channel.ChannelPromise)>(v);
label:
return;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelPromise newPromise()>();
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void flush(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.channel.ChannelPromise)>(v, v);
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(64);
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(64);
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelPromise newPromise()>();
v = staticinvoke <oadd.io.netty.util.concurrent.PromiseNotifier: oadd.io.netty.util.concurrent.Future cascade(boolean,oadd.io.netty.util.concurrent.Future,oadd.io.netty.util.concurrent.Promise)>(0, v, v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void safeClose(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.channel.ChannelFuture,oadd.io.netty.channel.ChannelPromise)>(v, v, v);
goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise>;
v = new oadd.io.netty.handler.ssl.SslHandler$5;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$5: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.channel.ChannelPromise)>(v, v);
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: oadd.io.netty.util.concurrent.Promise addListener(oadd.io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(64);
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(64);
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelPromise newPromise()>();
v = staticinvoke <oadd.io.netty.util.concurrent.PromiseNotifier: oadd.io.netty.util.concurrent.Future cascade(boolean,oadd.io.netty.util.concurrent.Future,oadd.io.netty.util.concurrent.Promise)>(0, v, v);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void safeClose(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.channel.ChannelFuture,oadd.io.netty.channel.ChannelPromise)>(v, v, v);
goto label;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise sslClosePromise>;
v = new oadd.io.netty.handler.ssl.SslHandler$5;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$5: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.channel.ChannelPromise)>(v, v);
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$LazyChannelPromise: oadd.io.netty.util.concurrent.Promise addListener(oadd.io.netty.util.concurrent.GenericFutureListener)>(v);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void flush(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.channel.ChannelPromise) throws java.lang.Exception
{
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v, v;
java.lang.IllegalStateException v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v;
oadd.io.netty.channel.ChannelPromise v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
if v == null goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites>;
v = <oadd.io.netty.buffer.Unpooled: oadd.io.netty.buffer.ByteBuf EMPTY_BUFFER>;
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void add(oadd.io.netty.buffer.ByteBuf,oadd.io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
v = staticinvoke <oadd.io.netty.handler.ssl.SslHandler: java.lang.IllegalStateException newPendingWritesNullException()>();
interfaceinvoke v.<oadd.io.netty.channel.ChannelPromise: oadd.io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
label:
virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void flush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
return;
}
public void handlerAdded(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelOption v;
oadd.io.netty.channel.Channel$Unsafe v;
oadd.io.netty.channel.Channel v;
long v;
oadd.io.netty.channel.ChannelConfig v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue v;
byte v;
java.lang.Boolean v;
java.lang.Object v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelOutboundBuffer v;
boolean v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx> = v;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = new oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.channel.Channel,int)>(v, v, 16);
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslHandlerCoalescingBufferQueue pendingUnencryptedWrites> = v;
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: oadd.io.netty.channel.ChannelConfig config()>();
v = <oadd.io.netty.channel.ChannelOption: oadd.io.netty.channel.ChannelOption TCP_FASTOPEN_CONNECT>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelConfig: java.lang.Object getOption(oadd.io.netty.channel.ChannelOption)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean equals(java.lang.Object)>(v);
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: boolean isActive()>();
if v != 0 goto label;
if v == 0 goto label;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void startHandshakeProcessing(boolean)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: oadd.io.netty.channel.Channel$Unsafe unsafe()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel$Unsafe: oadd.io.netty.channel.ChannelOutboundBuffer outboundBuffer()>();
if v == null goto label;
v = virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: long totalPendingWriteBytes()>();
v = v cmp 0L;
if v <= 0 goto label;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(16);
label:
return;
}
private void startHandshakeProcessing(boolean)
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v, v, v, v;
javax.net.ssl.SSLEngine v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: boolean;
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(8);
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setState(int)>(8);
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: boolean getUseClientMode()>();
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void handshake(boolean)>(v);
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void applyHandshakeTimeout()>();
goto label;
label:
v = specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean isStateSet(int)>(16);
if v == 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
return;
}
public oadd.io.netty.util.concurrent.Future renegotiate()
{
oadd.io.netty.util.concurrent.Promise v;
java.lang.IllegalStateException v;
oadd.io.netty.util.concurrent.Future v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
oadd.io.netty.util.concurrent.EventExecutor v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>()>();
throw v;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: oadd.io.netty.util.concurrent.Promise newPromise()>();
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Future renegotiate(oadd.io.netty.util.concurrent.Promise)>(v);
return v;
}
public oadd.io.netty.util.concurrent.Future renegotiate(oadd.io.netty.util.concurrent.Promise)
{
oadd.io.netty.handler.ssl.SslHandler$6 v;
oadd.io.netty.util.concurrent.Promise v;
java.lang.IllegalStateException v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
oadd.io.netty.util.concurrent.EventExecutor v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.util.concurrent.Promise;
staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "promise");
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>()>();
throw v;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v != 0 goto label;
v = new oadd.io.netty.handler.ssl.SslHandler$6;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$6: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.util.concurrent.Promise)>(v, v);
interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: void execute(java.lang.Runnable)>(v);
return v;
label:
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void renegotiateOnEventLoop(oadd.io.netty.util.concurrent.Promise)>(v);
return v;
}
private void renegotiateOnEventLoop(oadd.io.netty.util.concurrent.Promise)
{
oadd.io.netty.util.concurrent.Promise v, v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.util.concurrent.Promise;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v != 0 goto label;
staticinvoke <oadd.io.netty.util.concurrent.PromiseNotifier: oadd.io.netty.util.concurrent.Future cascade(oadd.io.netty.util.concurrent.Future,oadd.io.netty.util.concurrent.Promise)>(v, v);
goto label;
label:
v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise> = v;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void handshake(boolean)>(1);
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void applyHandshakeTimeout()>();
label:
return;
}
private void handshake(boolean)
{
java.lang.Throwable v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
oadd.io.netty.handler.ssl.SslHandler v;
javax.net.ssl.SSLEngine v, v;
oadd.io.netty.util.concurrent.Promise v;
oadd.io.netty.channel.ChannelHandlerContext v;
boolean v, v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: boolean;
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
if v == v goto label;
return;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v == 0 goto label;
return;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void beginHandshake()>();
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: boolean wrapNonAppData(oadd.io.netty.channel.ChannelHandlerContext,boolean)>(v, 0);
label:
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void setHandshakeFailure(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
label:
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void applyHandshakeTimeout()
{
oadd.io.netty.handler.ssl.SslHandler$7 v;
long v;
oadd.io.netty.handler.ssl.SslHandler v;
java.util.concurrent.TimeUnit v;
oadd.io.netty.util.concurrent.Promise v;
oadd.io.netty.util.concurrent.ScheduledFuture v;
byte v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler$8 v;
boolean v;
oadd.io.netty.util.concurrent.EventExecutor v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.concurrent.Promise handshakePromise>;
v = v.<oadd.io.netty.handler.ssl.SslHandler: long handshakeTimeoutMillis>;
v = v cmp 0L;
if v <= 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: boolean isDone()>();
if v == 0 goto label;
label:
return;
label:
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = new oadd.io.netty.handler.ssl.SslHandler$7;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$7: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.util.concurrent.Promise,long)>(v, v, v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: oadd.io.netty.util.concurrent.ScheduledFuture schedule(java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v);
v = new oadd.io.netty.handler.ssl.SslHandler$8;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$8: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.util.concurrent.Future)>(v, v);
interfaceinvoke v.<oadd.io.netty.util.concurrent.Promise: oadd.io.netty.util.concurrent.Promise addListener(oadd.io.netty.util.concurrent.GenericFutureListener)>(v);
return;
}
private void forceFlush(oadd.io.netty.channel.ChannelHandlerContext)
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void clearState(int)>(16);
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext flush()>();
return;
}
public void channelActive(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = v.<oadd.io.netty.handler.ssl.SslHandler: boolean startTls>;
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler: void startHandshakeProcessing(boolean)>(1);
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireChannelActive()>();
return;
}
private void safeClose(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.channel.ChannelFuture, oadd.io.netty.channel.ChannelPromise)
{
oadd.io.netty.channel.Channel v;
long v;
oadd.io.netty.handler.ssl.SslHandler$10 v;
oadd.io.netty.handler.ssl.SslHandler v;
java.util.concurrent.TimeUnit v;
oadd.io.netty.util.concurrent.ScheduledFuture v;
byte v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelFuture v;
oadd.io.netty.channel.ChannelPromise v;
boolean v, v;
oadd.io.netty.handler.ssl.SslHandler$9 v;
oadd.io.netty.util.concurrent.EventExecutor v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.channel.ChannelFuture;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: boolean isActive()>();
if v != 0 goto label;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture close(oadd.io.netty.channel.ChannelPromise)>(v);
return;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelFuture: boolean isDone()>();
if v != 0 goto label;
v = v.<oadd.io.netty.handler.ssl.SslHandler: long closeNotifyFlushTimeoutMillis>;
v = v cmp 0L;
if v <= 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = new oadd.io.netty.handler.ssl.SslHandler$9;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$9: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.channel.ChannelFuture,oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.channel.ChannelPromise)>(v, v, v, v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: oadd.io.netty.util.concurrent.ScheduledFuture schedule(java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v);
goto label;
label:
v = null;
goto label;
label:
v = null;
label:
v = new oadd.io.netty.handler.ssl.SslHandler$10;
specialinvoke v.<oadd.io.netty.handler.ssl.SslHandler$10: void <init>(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.util.concurrent.Future,oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.channel.ChannelPromise)>(v, v, v, v);
interfaceinvoke v.<oadd.io.netty.channel.ChannelFuture: oadd.io.netty.channel.ChannelFuture addListener(oadd.io.netty.util.concurrent.GenericFutureListener)>(v);
return;
}
private static void addCloseListener(oadd.io.netty.channel.ChannelFuture, oadd.io.netty.channel.ChannelPromise)
{
oadd.io.netty.channel.ChannelFuture v;
oadd.io.netty.channel.ChannelPromise v;
v := @parameter: oadd.io.netty.channel.ChannelFuture;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
staticinvoke <oadd.io.netty.util.concurrent.PromiseNotifier: oadd.io.netty.util.concurrent.Future cascade(boolean,oadd.io.netty.util.concurrent.Future,oadd.io.netty.util.concurrent.Promise)>(0, v, v);
return;
}
private oadd.io.netty.buffer.ByteBuf allocate(oadd.io.netty.channel.ChannelHandlerContext, int)
{
oadd.io.netty.handler.ssl.SslHandler$SslEngineType v;
oadd.io.netty.handler.ssl.SslHandler v;
int v;
oadd.io.netty.buffer.ByteBufAllocator v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v, v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: int;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.buffer.ByteBufAllocator alloc()>();
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType>;
v = v.<oadd.io.netty.handler.ssl.SslHandler$SslEngineType: boolean wantsDirectBuffer>;
if v == 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.buffer.ByteBufAllocator: oadd.io.netty.buffer.ByteBuf directBuffer(int)>(v);
return v;
label:
v = interfaceinvoke v.<oadd.io.netty.buffer.ByteBufAllocator: oadd.io.netty.buffer.ByteBuf buffer(int)>(v);
return v;
}
private oadd.io.netty.buffer.ByteBuf allocateOutNetBuf(oadd.io.netty.channel.ChannelHandlerContext, int, int)
{
oadd.io.netty.handler.ssl.SslHandler$SslEngineType v;
int v, v;
oadd.io.netty.buffer.ByteBufAllocator v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: int;
v := @parameter: int;
v = v.<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.handler.ssl.SslHandler$SslEngineType engineType>;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.buffer.ByteBufAllocator alloc()>();
v = virtualinvoke v.<oadd.io.netty.handler.ssl.SslHandler$SslEngineType: oadd.io.netty.buffer.ByteBuf allocateWrapBuffer(oadd.io.netty.handler.ssl.SslHandler,oadd.io.netty.buffer.ByteBufAllocator,int,int)>(v, v, v, v);
return v;
}
private boolean isStateSet(int)
{
short v;
int v, v;
oadd.io.netty.handler.ssl.SslHandler v;
boolean v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: int;
v = v.<oadd.io.netty.handler.ssl.SslHandler: short state>;
v = v & v;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void setState(int)
{
short v;
int v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: int;
v = v.<oadd.io.netty.handler.ssl.SslHandler: short state>;
v = v | v;
v.<oadd.io.netty.handler.ssl.SslHandler: short state> = v;
return;
}
private void clearState(int)
{
short v;
int v, v, v, v;
oadd.io.netty.handler.ssl.SslHandler v;
v := @this: oadd.io.netty.handler.ssl.SslHandler;
v := @parameter: int;
v = v.<oadd.io.netty.handler.ssl.SslHandler: short state>;
v = (int) -1;
v = v ^ v;
v = v & v;
v.<oadd.io.netty.handler.ssl.SslHandler: short state> = v;
return;
}
private static boolean attemptCopyToCumulation(oadd.io.netty.buffer.ByteBuf, oadd.io.netty.buffer.ByteBuf, int)
{
int v, v, v, v, v, v;
oadd.io.netty.buffer.ByteBuf v, v;
boolean v, v;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: int;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = v - v;
if v < v goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean isWritable(int)>(v);
if v == 0 goto label;
if v >= v goto label;
label:
if v >= v goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int ensureWritable(int,boolean)>(v, 0);
v = staticinvoke <oadd.io.netty.buffer.ByteBufUtil: boolean ensureWritableSuccess(int)>(v);
if v == 0 goto label;
label:
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf writeBytes(oadd.io.netty.buffer.ByteBuf)>(v);
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean release()>();
return 1;
label:
return 0;
}
static void <clinit>()
{
oadd.io.netty.util.internal.logging.InternalLogger v;
java.lang.Class v;
java.util.regex.Pattern v, v;
boolean v, v;
v = class "Loadd/io/netty/handler/ssl/SslHandler;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.io.netty.handler.ssl.SslHandler: boolean $assertionsDisabled> = v;
v = staticinvoke <oadd.io.netty.util.internal.logging.InternalLoggerFactory: oadd.io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Loadd/io/netty/handler/ssl/SslHandler;");
<oadd.io.netty.handler.ssl.SslHandler: oadd.io.netty.util.internal.logging.InternalLogger logger> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("^.*(?:Socket|Datagram|Sctp|Udt)Channel.*$");
<oadd.io.netty.handler.ssl.SslHandler: java.util.regex.Pattern IGNORABLE_CLASS_IN_STACK> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String,int)>("^.*(?:connection.*(?:reset|closed|abort|broken)|broken.*pipe).*$", 2);
<oadd.io.netty.handler.ssl.SslHandler: java.util.regex.Pattern IGNORABLE_ERROR_MESSAGE> = v;
return;
}
}