public class org.apache.kafkaesqueesque.common.network.SslTransportLayer extends java.lang.Object implements org.apache.kafkaesqueesque.common.network.TransportLayer
{
private final java.lang.String channelId;
private final javax.net.ssl.SSLEngine sslEngine;
private final java.nio.channels.SelectionKey key;
private final java.nio.channels.SocketChannel socketChannel;
private final org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry metadataRegistry;
private final org.slf4j.Logger log;
private javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus;
private javax.net.ssl.SSLEngineResult handshakeResult;
private org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state;
private org.apache.kafkaesqueesque.common.errors.SslAuthenticationException handshakeException;
private java.nio.ByteBuffer netReadBuffer;
private java.nio.ByteBuffer netWriteBuffer;
private java.nio.ByteBuffer appReadBuffer;
private java.nio.ByteBuffer fileChannelBuffer;
private boolean hasBytesBuffered;
public static org.apache.kafkaesqueesque.common.network.SslTransportLayer create(java.lang.String, java.nio.channels.SelectionKey, javax.net.ssl.SSLEngine, org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry) throws java.io.IOException
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SelectionKey v;
java.lang.String v;
org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry v;
javax.net.ssl.SSLEngine v;
v := @parameter: java.lang.String;
v := @parameter: java.nio.channels.SelectionKey;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry;
v = new org.apache.kafkaesqueesque.common.network.SslTransportLayer;
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void <init>(java.lang.String,java.nio.channels.SelectionKey,javax.net.ssl.SSLEngine,org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry)>(v, v, v, v);
return v;
}
void <init>(java.lang.String, java.nio.channels.SelectionKey, javax.net.ssl.SSLEngine, org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry)
{
java.lang.Object[] v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v;
java.nio.channels.SelectionKey v;
org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry v;
org.apache.kafkaesqueesque.common.utils.LogContext v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v;
javax.net.ssl.SSLEngine v;
java.nio.channels.SelectableChannel v;
java.lang.Class v;
java.lang.String v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.lang.String;
v := @parameter: java.nio.channels.SelectionKey;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId> = v;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key> = v;
v = virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectableChannel channel()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel> = v;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine> = v;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State NOT_INITALIZED>;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state> = v;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry metadataRegistry> = v;
v = new org.apache.kafkaesqueesque.common.utils.LogContext;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("[SslTransportLayer channelId=%s key=%s] ", v);
specialinvoke v.<org.apache.kafkaesqueesque.common.utils.LogContext: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.utils.LogContext: org.slf4j.Logger logger(java.lang.Class)>(v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log> = v;
return;
}
protected void startHandshake() throws java.io.IOException
{
java.lang.IllegalStateException v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v;
java.nio.ByteBuffer v, v, v, v, v;
javax.net.ssl.SSLEngine v, v;
int v, v, v;
java.lang.String v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v, v, v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State NOT_INITALIZED>;
if v == v goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.kafkaesqueesque.common.network.SslTransportLayer$State)>(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[])>("startHandshake() can only be called once, state \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int netReadBufferSize()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer> = v;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int netWriteBufferSize()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer> = v;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int applicationBufferSize()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(0);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(0);
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State HANDSHAKE>;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void beginHandshake()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus> = v;
return;
}
public boolean ready()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v, v, v, v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State POST_HANDSHAKE>;
if v == v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State READY>;
if v != v goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean finishConnect() throws java.io.IOException
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SelectionKey v, v;
java.nio.channels.SocketChannel v;
int v, v, v, v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
v = virtualinvoke v.<java.nio.channels.SocketChannel: boolean finishConnect()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = (int) -9;
v = v & v;
v = v | 1;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
label:
return v;
}
public void disconnect()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SelectionKey v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
virtualinvoke v.<java.nio.channels.SelectionKey: void cancel()>();
return;
}
public java.nio.channels.SocketChannel socketChannel()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SocketChannel v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
return v;
}
public java.nio.channels.SelectionKey selectionKey()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SelectionKey v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
return v;
}
public boolean isOpen()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SocketChannel v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
v = virtualinvoke v.<java.nio.channels.SocketChannel: boolean isOpen()>();
return v;
}
public boolean isConnected()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SocketChannel v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
v = virtualinvoke v.<java.nio.channels.SocketChannel: boolean isConnected()>();
return v;
}
public void close() throws java.io.IOException
{
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v, v, v, v;
java.nio.channels.SocketChannel v, v, v, v, v, v;
boolean v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v, v, v, v, v;
java.lang.Throwable v;
java.net.Socket v, v, v;
javax.net.ssl.SSLEngine v, v;
javax.net.ssl.SSLEngineResult v;
java.lang.String v;
javax.net.ssl.SSLEngineResult$Status v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v;
java.io.IOException v, v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State CLOSING>;
if v != v goto label;
return;
label:
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State CLOSING>;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void closeOutbound()>();
label:
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State NOT_INITALIZED>;
if v == v goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean isConnected()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean flush(java.nio.ByteBuffer)>(v);
if v != 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Remaining data in the network buffer, can\'t send SSL close message.");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = <org.apache.kafkaesqueesque.common.utils.ByteUtils: java.nio.ByteBuffer EMPTY_BUF>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
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: javax.net.ssl.SSLEngineResult$Status getStatus()>();
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
if v == v goto label;
v = new java.io.IOException;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$Status getStatus()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.net.ssl.SSLEngineResult$Status)>(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[])>("Unexpected status returned by SSLEngine.wrap, expected CLOSED, received \u. Will not send close message to peer.");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean flush(java.nio.ByteBuffer)>(v);
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
virtualinvoke v.<java.net.Socket: void close()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
virtualinvoke v.<java.nio.channels.SocketChannel: void close()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer> = null;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer> = null;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer> = null;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
if v == null goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
staticinvoke <org.apache.kafkaesqueesque.common.utils.ByteBufferUnmapper: void unmap(java.lang.String,java.nio.ByteBuffer)>("fileChannelBuffer", v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer> = null;
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Failed to send SSL Close message", v);
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
virtualinvoke v.<java.net.Socket: void close()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
virtualinvoke v.<java.nio.channels.SocketChannel: void close()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer> = null;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer> = null;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer> = null;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
if v == null goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
staticinvoke <org.apache.kafkaesqueesque.common.utils.ByteBufferUnmapper: void unmap(java.lang.String,java.nio.ByteBuffer)>("fileChannelBuffer", v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer> = null;
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
virtualinvoke v.<java.net.Socket: void close()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
virtualinvoke v.<java.nio.channels.SocketChannel: void close()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer> = null;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer> = null;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer> = null;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
if v == null goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
staticinvoke <org.apache.kafkaesqueesque.common.utils.ByteBufferUnmapper: void unmap(java.lang.String,java.nio.ByteBuffer)>("fileChannelBuffer", v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer> = null;
label:
throw v;
label:
return;
catch java.io.IOException 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;
}
public boolean hasPendingWrites()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.ByteBuffer v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
return v;
}
protected int readFromSocketChannel() throws java.io.IOException
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SocketChannel v;
int v;
java.nio.ByteBuffer v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.channels.SocketChannel: int read(java.nio.ByteBuffer)>(v);
return v;
}
protected boolean flush(java.nio.ByteBuffer) throws java.io.IOException
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SocketChannel v;
int v, v;
java.nio.ByteBuffer v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.ByteBuffer;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SocketChannel socketChannel>;
v = virtualinvoke v.<java.nio.channels.SocketChannel: int write(java.nio.ByteBuffer)>(v);
if v < v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 1;
}
public void handshake() throws java.io.IOException
{
java.lang.IllegalStateException v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v;
int v, v, v;
java.lang.String v;
boolean v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SelectionKey v;
javax.net.ssl.SSLHandshakeException v;
java.io.IOException v;
java.io.EOFException v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v, v, v, v;
javax.net.ssl.SSLException v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State NOT_INITALIZED>;
if v != v goto label;
virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void startHandshake()>();
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean ready()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLHandshakeException renegotiationException()>();
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State CLOSING>;
if v != v goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.IllegalStateException closingException()>();
throw v;
label:
v = 0;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: boolean isReadable()>();
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int readFromSocketChannel()>();
label:
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void doHandshake()>();
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean ready()>();
if v == 0 goto label;
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void updateBytesBuffered(boolean)>(1);
label:
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void maybeProcessHandshakeFailure(javax.net.ssl.SSLException,boolean,java.io.IOException)>(v, 1, null);
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void maybeThrowSslAuthenticationException()>();
label:
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeUnwrap(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int readFromSocketChannel()>();
if v > 0 goto label;
label:
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void maybeProcessHandshakeFailure(javax.net.ssl.SSLException,boolean,java.io.IOException)>(v, 0, v);
label:
throw v;
label:
v = (int) -1;
if v != v goto label;
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void maybeThrowSslAuthenticationException()>();
v = new java.io.EOFException;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
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[])>("EOF during handshake, handshake status is \u0001");
specialinvoke v.<java.io.EOFException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
catch javax.net.ssl.SSLException from label to label with label;
catch java.io.IOException from label to label with label;
catch javax.net.ssl.SSLException from label to label with label;
}
private void doHandshake() throws java.io.IOException
{
java.lang.Integer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object[] v, v, v, v, v, v;
javax.net.ssl.SSLEngineResult$Status v, v, v, v, v, v, v, v, v, v, v, v, v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v, v, v, v, v, v, v, v;
int[] v;
javax.net.ssl.SSLEngine v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v, v, v, v, v;
javax.net.ssl.SSLEngineResult v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
java.nio.channels.SelectionKey v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalStateException v, v, v, v, v;
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v;
java.io.EOFException v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: boolean isReadable()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: boolean isWritable()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean flush(java.nio.ByteBuffer)>(v);
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = v | 4;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
return;
label:
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void maybeThrowSslAuthenticationException()>();
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$1: int[] $SwitchMap$javax$net$ssl$SSLEngineResult$HandshakeStatus>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus 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 = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
v[0] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("SSLHandshake NEED_TASK channelId {}, appReadBuffer pos {}, netReadBuffer pos {}, netWriteBuffer pos {}", v);
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus runDelegatedTasks()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus> = v;
goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
v[0] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("SSLHandshake NEED_WRAP channelId {}, appReadBuffer pos {}, netReadBuffer pos {}, netWriteBuffer pos {}", v);
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeWrap(boolean)>(v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
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.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int netWriteBufferSize()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer compact()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = staticinvoke <org.apache.kafkaesqueesque.common.utils.Utils: java.nio.ByteBuffer ensureCapacity(java.nio.ByteBuffer,int)>(v, v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
if v < v goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
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[])>("Buffer overflow when available data size (\u) >= network buffer size (\u)");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
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_UNDERFLOW>;
if v != v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Should not have received BUFFER_UNDERFLOW during handshake WRAP.");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
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 = new java.io.EOFException;
specialinvoke v.<java.io.EOFException: void <init>()>();
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[5];
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
v[0] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
v[1] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("SSLHandshake NEED_WRAP channelId {}, handshakeResult {}, appReadBuffer pos {}, netReadBuffer pos {}, netWriteBuffer pos {}", v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean flush(java.nio.ByteBuffer)>(v);
if v != 0 goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = v | 4;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
v[0] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("SSLHandshake NEED_UNWRAP channelId {}, appReadBuffer pos {}, netReadBuffer pos {}, netWriteBuffer pos {}", v);
label:
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeUnwrap(boolean,boolean)>(v, 0);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
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.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int applicationBufferSize()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = staticinvoke <org.apache.kafkaesqueesque.common.utils.Utils: java.nio.ByteBuffer ensureCapacity(java.nio.ByteBuffer,int)>(v, v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v <= v goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
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[])>("Buffer underflow when available data size (\u) > packet buffer size (\u)");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
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 = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
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_UNDERFLOW>;
if v != v goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int netReadBufferSize()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = staticinvoke <org.apache.kafkaesqueesque.common.utils.Utils: java.nio.ByteBuffer ensureCapacity(java.nio.ByteBuffer,int)>(v, v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v < v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Buffer underflow when there is available data");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
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 = new java.io.EOFException;
specialinvoke v.<java.io.EOFException: void <init>(java.lang.String)>("SSL handshake status CLOSED during handshake UNWRAP");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[5];
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
v[0] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
v[1] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("SSLHandshake NEED_UNWRAP channelId {}, handshakeResult {}, appReadBuffer pos {}, netReadBuffer pos {}, netWriteBuffer pos {}", v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v == v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_WRAP>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = v | 4;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = (int) -5;
v = v & v;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
goto label;
label:
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void handshakeFinished()>();
goto label;
label:
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void handshakeFinished()>();
goto label;
label:
v = new java.lang.IllegalStateException;
v = newarray (java.lang.Object)[1];
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Unexpected status [%s]", v);
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private javax.net.ssl.SSLHandshakeException renegotiationException()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
javax.net.ssl.SSLHandshakeException v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = new javax.net.ssl.SSLHandshakeException;
specialinvoke v.<javax.net.ssl.SSLHandshakeException: void <init>(java.lang.String)>("Renegotiation is not supported");
return v;
}
private java.lang.IllegalStateException closingException()
{
java.lang.IllegalStateException v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Channel is in closing state");
throw v;
}
private javax.net.ssl.SSLEngineResult$HandshakeStatus runDelegatedTasks()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v;
java.lang.Runnable v;
javax.net.ssl.SSLEngine v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.Runnable delegatedTask()>();
if v == null goto label;
interfaceinvoke v.<java.lang.Runnable: void run()>();
goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
return v;
}
private void handshakeFinished() throws java.io.IOException
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry v;
org.apache.kafkaesqueesque.common.network.CipherInformation v;
java.lang.Integer v, v, v, v;
java.nio.ByteBuffer v, v, v, v;
boolean v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v;
java.security.Principal v;
java.lang.Object[] v, v;
javax.net.ssl.SSLEngine v, v;
javax.net.ssl.SSLEngineResult v;
javax.net.ssl.SSLSession v, v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v, v;
java.nio.channels.SelectionKey v, v, v, v;
java.io.IOException v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult handshakeResult>;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = v | 4;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("TLSv.3");
if v == 0 goto label;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State POST_HANDSHAKE>;
goto label;
label:
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State READY>;
label:
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = (int) -5;
v = v & v;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getPeerHost()>();
v[0] = v;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: int getPeerPort()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.security.Principal peerPrincipal()>();
v[2] = v;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getCipherSuite()>();
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("SSL handshake completed successfully with peerHost \'{}\' peerPort {} peerPrincipal \'{}\' cipherSuite \'{}\'", v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry metadataRegistry>;
v = new org.apache.kafkaesqueesque.common.network.CipherInformation;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getCipherSuite()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getProtocol()>();
specialinvoke v.<org.apache.kafkaesqueesque.common.network.CipherInformation: void <init>(java.lang.String,java.lang.String)>(v, v);
interfaceinvoke v.<org.apache.kafkaesqueesque.common.network.ChannelMetadataRegistry: void registerCipherInformation(org.apache.kafkaesqueesque.common.network.CipherInformation)>(v);
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
v[0] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("SSLHandshake FINISHED channelId {}, appReadBuffer pos {}, netReadBuffer pos {}, netWriteBuffer pos {} ", v);
goto label;
label:
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("NOT_HANDSHAKING during handshake");
throw v;
label:
return;
}
private javax.net.ssl.SSLEngineResult handshakeWrap(boolean) throws java.io.IOException
{
java.lang.IllegalStateException v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v;
java.nio.ByteBuffer v, v, v, v, v, v;
javax.net.ssl.SSLEngine v;
javax.net.ssl.SSLEngineResult v;
java.lang.String v;
javax.net.ssl.SSLEngineResult$Status v, v;
boolean v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: boolean;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("SSLHandshake handshakeWrap {}", v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("handshakeWrap called with netWriteBuffer not empty");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = <org.apache.kafkaesqueesque.common.utils.ByteUtils: java.nio.ByteBuffer EMPTY_BUF>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer,java.nio.ByteBuffer)>(v, v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus> = 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 OK>;
if v != v 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 NEED_TASK>;
if v != v goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus runDelegatedTasks()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus> = v;
label:
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean flush(java.nio.ByteBuffer)>(v);
label:
return v;
}
private javax.net.ssl.SSLEngineResult handshakeUnwrap(boolean, boolean) throws java.io.IOException
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v, v, v, v;
java.nio.ByteBuffer v, v, v, v, v, v, v;
boolean v, v, v;
java.io.EOFException v;
javax.net.ssl.SSLEngine v;
javax.net.ssl.SSLEngineResult v;
int v, v, v, v, v;
java.lang.String v, v;
javax.net.ssl.SSLEngineResult$Status v, v, v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: boolean;
v := @parameter: boolean;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("SSLHandshake handshakeUnwrap {}", v);
v = 0;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int readFromSocketChannel()>();
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer,java.nio.ByteBuffer)>(v, v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer compact()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus> = 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 OK>;
if v != v 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 NEED_TASK>;
if v != v goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus runDelegatedTasks()>();
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus> = 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 OK>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NEED_UNWRAP>;
if v == v goto label;
label:
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v == v goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$Status getStatus()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("SSLHandshake handshakeUnwrap: handshakeStatus {} status {}", v, v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v == 0 goto label;
if v != 0 goto label;
label:
v = (int) -1;
if v != v goto label;
v = new java.io.EOFException;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus>;
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[])>("EOF during handshake, handshake status is \u0001");
specialinvoke v.<java.io.EOFException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
public int read(java.nio.ByteBuffer) throws java.io.IOException
{
java.lang.Integer v, v, v;
javax.net.ssl.SSLHandshakeException v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.errors.SslAuthenticationException v;
javax.net.ssl.SSLException v;
java.lang.Object[] v;
javax.net.ssl.SSLEngineResult v;
java.lang.String v, v, v;
javax.net.ssl.SSLEngineResult$Status v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalStateException v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v;
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v;
java.io.EOFException v, v;
javax.net.ssl.SSLEngine v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.ByteBuffer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State CLOSING>;
if v != v goto label;
v = (int) -1;
return v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean ready()>();
if v != 0 goto label;
return 0;
label:
v = 0;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v <= 0 goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int readFromAppBuffer(java.nio.ByteBuffer)>(v);
label:
v = 0;
v = 0;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= 0 goto label;
v = 0;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int netReadBufferSize()>();
v = staticinvoke <org.apache.kafkaesqueesque.common.utils.Utils: java.nio.ByteBuffer ensureCapacity(java.nio.ByteBuffer,int)>(v, v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int readFromSocketChannel()>();
if v <= 0 goto label;
v = 1;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v <= 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer,java.nio.ByteBuffer)>(v, v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State POST_HANDSHAKE>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v == 0 goto label;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State READY>;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state> = v;
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State POST_HANDSHAKE>;
if v != v goto label;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State HANDSHAKE_FAILED>;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state> = v;
v = new org.apache.kafkaesqueesque.common.errors.SslAuthenticationException;
specialinvoke v.<org.apache.kafkaesqueesque.common.errors.SslAuthenticationException: void <init>(java.lang.String,java.lang.Throwable)>("Failed to process post-handshake messages", v);
throw v;
label:
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer compact()>();
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;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v == v goto 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 OK>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[5];
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.String channelId>;
v[0] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("Renegotiation requested, but it is not supported, channelId {}, appReadBuffer pos {}, netReadBuffer pos {}, netWriteBuffer pos {} handshakeStatus {}", v);
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLHandshakeException renegotiationException()>();
throw 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 OK>;
if v != v goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int readFromAppBuffer(java.nio.ByteBuffer)>(v);
v = v + v;
goto label;
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 BUFFER_OVERFLOW>;
if v != v goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int applicationBufferSize()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = staticinvoke <org.apache.kafkaesqueesque.common.utils.Utils: java.nio.ByteBuffer ensureCapacity(java.nio.ByteBuffer,int)>(v, v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v < v goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
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[])>("Buffer overflow when available data size (\u) >= application buffer size (\u)");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int readFromAppBuffer(java.nio.ByteBuffer)>(v);
v = v + v;
goto label;
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 BUFFER_UNDERFLOW>;
if v != v goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int netReadBufferSize()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = staticinvoke <org.apache.kafkaesqueesque.common.utils.Utils: java.nio.ByteBuffer ensureCapacity(java.nio.ByteBuffer,int)>(v, v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v < v goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
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[])>("Buffer underflow when available data size (\u) > packet buffer size (\u)");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw 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.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v != 0 goto label;
if v != 0 goto label;
v = new java.io.EOFException;
specialinvoke v.<java.io.EOFException: void <init>()>();
throw v;
label:
v = 1;
label:
if v != 0 goto label;
if v >= 0 goto label;
v = new java.io.EOFException;
specialinvoke v.<java.io.EOFException: void <init>(java.lang.String)>("EOF during read");
throw v;
label:
if v <= 0 goto label;
if v == 0 goto label;
label:
if v != 0 goto label;
if v <= 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void updateBytesBuffered(boolean)>(v);
return v;
catch javax.net.ssl.SSLException from label to label with label;
}
public long read(java.nio.ByteBuffer[]) throws java.io.IOException
{
java.nio.ByteBuffer[] v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
int v;
long v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.ByteBuffer[];
v = lengthof v;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: long read(java.nio.ByteBuffer[],int,int)>(v, 0, v);
return v;
}
public long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException
{
java.lang.IndexOutOfBoundsException v;
java.nio.ByteBuffer[] v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.ByteBuffer v, v, v;
int v, v, v, v, v, v, v;
boolean v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
if v < 0 goto label;
if v < 0 goto label;
v = lengthof v;
v = v - v;
if v <= v goto label;
label:
v = new java.lang.IndexOutOfBoundsException;
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>()>();
throw v;
label:
v = 0;
v = v;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = v[v];
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int read(java.nio.ByteBuffer)>(v);
if v <= 0 goto label;
v = v + v;
label:
v = v[v];
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = v + 1;
goto label;
label:
return v;
}
public int write(java.nio.ByteBuffer) throws java.io.IOException
{
java.lang.IllegalStateException v, v;
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v;
boolean v, v, v;
javax.net.ssl.SSLHandshakeException v;
java.io.EOFException v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v, v;
javax.net.ssl.SSLEngine v;
javax.net.ssl.SSLEngineResult v;
int v, v, v, v;
javax.net.ssl.SSLEngineResult$Status v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.ByteBuffer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State CLOSING>;
if v != v goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.IllegalStateException closingException()>();
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean ready()>();
if v != 0 goto label;
return 0;
label:
v = 0;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean flush(java.nio.ByteBuffer)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer,java.nio.ByteBuffer)>(v, v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
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;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$Status getStatus()>();
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
if v != v goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLHandshakeException renegotiationException()>();
throw 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 OK>;
if v != v goto label;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesConsumed()>();
v = v + v;
goto label;
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 BUFFER_OVERFLOW>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int netWriteBufferSize()>();
v = staticinvoke <org.apache.kafkaesqueesque.common.utils.Utils: java.nio.ByteBuffer ensureCapacity(java.nio.ByteBuffer,int)>(v, v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
goto label;
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 BUFFER_UNDERFLOW>;
if v != v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("SSL BUFFER_UNDERFLOW during write");
throw 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 = new java.io.EOFException;
specialinvoke v.<java.io.EOFException: void <init>()>();
throw v;
label:
return v;
}
public long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException
{
java.lang.IndexOutOfBoundsException v;
java.nio.ByteBuffer v, v, v;
int v, v, v, v, v, v, v;
boolean v, v, v, v;
java.nio.ByteBuffer[] v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
if v < 0 goto label;
if v < 0 goto label;
v = lengthof v;
v = v - v;
if v <= v goto label;
label:
v = new java.lang.IndexOutOfBoundsException;
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>()>();
throw v;
label:
v = 0;
v = v;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean hasPendingWrites()>();
if v == 0 goto label;
label:
v = v[v];
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int write(java.nio.ByteBuffer)>(v);
if v <= 0 goto label;
v = v + v;
label:
v = v[v];
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean hasPendingWrites()>();
if v != 0 goto label;
v = v + 1;
goto label;
label:
return v;
}
public long write(java.nio.ByteBuffer[]) throws java.io.IOException
{
java.nio.ByteBuffer[] v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
int v;
long v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.ByteBuffer[];
v = lengthof v;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: long write(java.nio.ByteBuffer[],int,int)>(v, 0, v);
return v;
}
public java.security.Principal peerPrincipal()
{
java.security.Principal v;
javax.net.ssl.SSLSession v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.apache.kafkaesqueesque.common.security.auth.KafkaPrincipal v;
org.slf4j.Logger v;
javax.net.ssl.SSLEngine v;
javax.net.ssl.SSLPeerUnverifiedException v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.security.Principal getPeerPrincipal()>();
label:
return v;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("SSL peer is not authenticated, returning ANONYMOUS instead");
v = <org.apache.kafkaesqueesque.common.security.auth.KafkaPrincipal: org.apache.kafkaesqueesque.common.security.auth.KafkaPrincipal ANONYMOUS>;
return v;
catch javax.net.ssl.SSLPeerUnverifiedException from label to label with label;
}
public javax.net.ssl.SSLSession sslSession() throws java.lang.IllegalStateException
{
javax.net.ssl.SSLSession v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
javax.net.ssl.SSLEngine v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
return v;
}
public void addInterestOps(int)
{
java.lang.IllegalStateException v;
java.nio.channels.CancelledKeyException v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SelectionKey v, v, v;
int v, v, v;
boolean v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: int;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: boolean isValid()>();
if v != 0 goto label;
v = new java.nio.channels.CancelledKeyException;
specialinvoke v.<java.nio.channels.CancelledKeyException: void <init>()>();
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean ready()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("handshake is not completed");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = v | v;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
return;
}
public void removeInterestOps(int)
{
java.lang.IllegalStateException v;
java.nio.channels.CancelledKeyException v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SelectionKey v, v, v;
int v, v, v, v, v;
boolean v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: int;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: boolean isValid()>();
if v != 0 goto label;
v = new java.nio.channels.CancelledKeyException;
specialinvoke v.<java.nio.channels.CancelledKeyException: void <init>()>();
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean ready()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("handshake is not completed");
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = (int) -1;
v = v ^ v;
v = v & v;
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(v);
return;
}
protected java.lang.Runnable delegatedTask()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.lang.Runnable v;
javax.net.ssl.SSLEngine v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: java.lang.Runnable getDelegatedTask()>();
return v;
}
private int readFromAppBuffer(java.nio.ByteBuffer)
{
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.ByteBuffer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
if v <= 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer compact()>();
return v;
}
protected int netReadBufferSize()
{
javax.net.ssl.SSLSession v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
int v;
javax.net.ssl.SSLEngine v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: int getPacketBufferSize()>();
return v;
}
protected int netWriteBufferSize()
{
javax.net.ssl.SSLSession v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
int v;
javax.net.ssl.SSLEngine v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: int getPacketBufferSize()>();
return v;
}
protected int applicationBufferSize()
{
javax.net.ssl.SSLSession v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
int v;
javax.net.ssl.SSLEngine v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: int getApplicationBufferSize()>();
return v;
}
protected java.nio.ByteBuffer netReadBuffer()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.ByteBuffer v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
return v;
}
protected java.nio.ByteBuffer appReadBuffer()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.ByteBuffer v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
return v;
}
private void handshakeFailure(javax.net.ssl.SSLException, boolean) throws java.io.IOException
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v, v;
java.io.IOException v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v;
java.nio.ByteBuffer v;
org.apache.kafkaesqueesque.common.errors.SslAuthenticationException v, v, v;
javax.net.ssl.SSLEngine v, v;
javax.net.ssl.SSLException v, v;
boolean v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: javax.net.ssl.SSLException;
v := @parameter: boolean;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void closeOutbound()>();
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: javax.net.ssl.SSLEngine sslEngine>;
virtualinvoke v.<javax.net.ssl.SSLEngine: void closeInbound()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("SSLEngine.closeInBound() raised an exception.", v);
label:
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State HANDSHAKE_FAILED>;
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state> = v;
v = new org.apache.kafkaesqueesque.common.errors.SslAuthenticationException;
specialinvoke v.<org.apache.kafkaesqueesque.common.errors.SslAuthenticationException: void <init>(java.lang.String,java.lang.Throwable)>("SSL handshake failed", v);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.errors.SslAuthenticationException handshakeException> = v;
label:
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean flush(java.nio.ByteBuffer)>(v);
if v == 0 goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.errors.SslAuthenticationException handshakeException>;
throw v;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Failed to flush all bytes before closing channel", v);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.errors.SslAuthenticationException handshakeException>;
throw v;
label:
return;
catch javax.net.ssl.SSLException from label to label with label;
catch java.io.IOException from label to label with label;
}
private void maybeProcessHandshakeFailure(javax.net.ssl.SSLException, boolean, java.io.IOException) throws java.io.IOException
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.slf4j.Logger v;
java.io.IOException v;
javax.net.ssl.SSLException v;
java.lang.String v, v;
boolean v, v, v, v, v, v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: javax.net.ssl.SSLException;
v := @parameter: boolean;
v := @parameter: java.io.IOException;
v = v instanceof javax.net.ssl.SSLHandshakeException;
if v != 0 goto label;
v = v instanceof javax.net.ssl.SSLProtocolException;
if v != 0 goto label;
v = v instanceof javax.net.ssl.SSLPeerUnverifiedException;
if v != 0 goto label;
v = v instanceof javax.net.ssl.SSLKeyException;
if v != 0 goto label;
v = virtualinvoke v.<javax.net.ssl.SSLException: java.lang.String getMessage()>();
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("Unrecognized SSL message");
if v != 0 goto label;
v = virtualinvoke v.<javax.net.ssl.SSLException: java.lang.String getMessage()>();
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("Received fatal alert: ");
if v == 0 goto label;
label:
specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: void handshakeFailure(javax.net.ssl.SSLException,boolean)>(v, v);
goto label;
label:
if v != null goto label;
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("SSLException while unwrapping data after IOException, original IOException will be propagated", v);
throw v;
label:
return;
}
private void maybeThrowSslAuthenticationException()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
org.apache.kafkaesqueesque.common.errors.SslAuthenticationException v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.errors.SslAuthenticationException handshakeException>;
if v == null goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.errors.SslAuthenticationException handshakeException>;
throw v;
label:
return;
}
public boolean isMute()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.nio.channels.SelectionKey v, v;
int v, v;
boolean v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: boolean isValid()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.channels.SelectionKey key>;
v = virtualinvoke v.<java.nio.channels.SelectionKey: int interestOps()>();
v = v & 1;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean hasBytesBuffered()
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean hasBytesBuffered>;
return v;
}
private void updateBytesBuffered(boolean)
{
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
int v, v;
java.nio.ByteBuffer v, v;
boolean v, v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: boolean;
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer appReadBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean hasBytesBuffered> = v;
goto label;
label:
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean hasBytesBuffered> = 0;
label:
return;
}
public long transferFrom(java.nio.channels.FileChannel, long, long) throws java.io.IOException
{
java.lang.IllegalStateException v;
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v, v, v, v, v;
byte v;
boolean v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer$State v, v, v, v;
long v, v, v, v, v, v, v;
int v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.network.SslTransportLayer v;
java.io.IOException v;
java.nio.channels.FileChannel v;
v := @this: org.apache.kafkaesqueesque.common.network.SslTransportLayer;
v := @parameter: java.nio.channels.FileChannel;
v := @parameter: long;
v := @parameter: long;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State CLOSING>;
if v != v goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.lang.IllegalStateException closingException()>();
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State state>;
v = <org.apache.kafkaesqueesque.common.network.SslTransportLayer$State: org.apache.kafkaesqueesque.common.network.SslTransportLayer$State READY>;
if v == v goto label;
return 0L;
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer netWriteBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: boolean flush(java.nio.ByteBuffer)>(v);
if v != 0 goto label;
return 0L;
label:
v = virtualinvoke v.<java.nio.channels.FileChannel: long size()>();
v = v cmp v;
if v <= 0 goto label;
return 0L;
label:
v = v - v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 2147483647L);
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
if v != null goto label;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocateDirect(int)>(32768);
v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer> = v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
label:
v = 0;
v = v;
label:
if v >= v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
v = v - v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
if v >= v goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
v = virtualinvoke v.<java.nio.channels.FileChannel: int read(java.nio.ByteBuffer,long)>(v, v);
if v <= 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
label:
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: int write(java.nio.ByteBuffer)>(v);
v = v + v;
v = v.<org.apache.kafkaesqueesque.common.network.SslTransportLayer: java.nio.ByteBuffer fileChannelBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = v + v;
goto label;
label:
return v;
label:
v := @caughtexception;
if v <= 0 goto label;
return v;
label:
throw v;
catch java.io.IOException from label to label with label;
}
}