public class org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition extends java.lang.Object implements org.glassfish.grizzly.utils.conditions.Condition
{
private final org.glassfish.grizzly.ssl.SSLEngineConfigurator configurator;
private final org.glassfish.grizzly.Connection connection;
private final javax.net.ssl.SSLEngine sslEngine;
private final org.glassfish.grizzly.streams.StreamReader streamReader;
private final org.glassfish.grizzly.streams.StreamWriter streamWriter;
private final org.glassfish.grizzly.ssl.SSLStreamWriter$HandshakeCompletionHandler completionHandler;
public void <init>(org.glassfish.grizzly.streams.StreamReader, org.glassfish.grizzly.streams.StreamWriter, org.glassfish.grizzly.ssl.SSLEngineConfigurator, javax.net.ssl.SSLEngine, org.glassfish.grizzly.ssl.SSLStreamWriter$HandshakeCompletionHandler)
{
org.glassfish.grizzly.ssl.SSLEngineConfigurator v;
org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition v;
org.glassfish.grizzly.Connection v;
org.glassfish.grizzly.streams.StreamWriter v;
org.glassfish.grizzly.ssl.SSLStreamWriter$HandshakeCompletionHandler v;
javax.net.ssl.SSLEngine v;
org.glassfish.grizzly.streams.StreamReader v;
v := @this: org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition;
v := @parameter: org.glassfish.grizzly.streams.StreamReader;
v := @parameter: org.glassfish.grizzly.streams.StreamWriter;
v := @parameter: org.glassfish.grizzly.ssl.SSLEngineConfigurator;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: org.glassfish.grizzly.ssl.SSLStreamWriter$HandshakeCompletionHandler;
specialinvoke v.<java.lang.Object: void <init>()>();
v = interfaceinvoke v.<org.glassfish.grizzly.streams.StreamReader: org.glassfish.grizzly.Connection getConnection()>();
v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: org.glassfish.grizzly.Connection connection> = v;
v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: org.glassfish.grizzly.ssl.SSLEngineConfigurator configurator> = v;
v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine> = v;
v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: org.glassfish.grizzly.ssl.SSLStreamWriter$HandshakeCompletionHandler completionHandler> = v;
v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: org.glassfish.grizzly.streams.StreamReader streamReader> = v;
v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: org.glassfish.grizzly.streams.StreamWriter streamWriter> = v;
return;
}
public boolean check()
{
org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition v;
java.io.IOException v;
java.lang.RuntimeException v;
org.glassfish.grizzly.ssl.SSLStreamWriter$HandshakeCompletionHandler v;
boolean v;
v := @this: org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition;
label:
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: boolean doHandshakeStep()>();
label:
return v;
label:
v := @caughtexception;
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: org.glassfish.grizzly.ssl.SSLStreamWriter$HandshakeCompletionHandler completionHandler>;
virtualinvoke v.<org.glassfish.grizzly.ssl.SSLStreamWriter$HandshakeCompletionHandler: void failed(java.lang.Throwable)>(v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("Unexpected handshake exception");
throw v;
catch java.io.IOException from label to label with label;
}
public boolean doHandshakeStep() throws java.io.IOException
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v, v, v;
int[] v;
org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition v;
boolean v;
org.glassfish.grizzly.Buffer v;
java.util.logging.Logger v, v, v, v, v;
java.lang.Object[] v;
java.util.logging.Level v, v, v, v, v;
javax.net.ssl.SSLEngine v, v, v, v, v, v, v, v, v;
int v, v;
org.glassfish.grizzly.streams.StreamWriter v, v;
java.lang.String v;
java.lang.RuntimeException v;
v := @this: org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition;
v = <org.glassfish.grizzly.ssl.SSLStreamWriter: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v == v goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
if v != v goto label;
label:
return 1;
label:
if v == 0 goto label;
v = <org.glassfish.grizzly.ssl.SSLStreamWriter: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = newarray (java.lang.Object)[2];
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
v[0] = v;
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "Loop Engine: {0} handshakeStatus={1}", v);
label:
v = <org.glassfish.grizzly.ssl.SSLStreamWriter$1: int[] $SwitchMap$javax$net$ssl$SSLEngineResult$HandshakeStatus>;
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult$HandshakeStatus: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
default: goto label;
};
label:
if v == 0 goto label;
v = <org.glassfish.grizzly.ssl.SSLStreamWriter: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "NEED_UNWRAP Engine: {0}", v);
label:
return 0;
label:
if v == 0 goto label;
v = <org.glassfish.grizzly.ssl.SSLStreamWriter: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "NEED_WRAP Engine: {0}", v);
label:
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: org.glassfish.grizzly.streams.StreamWriter streamWriter>;
v = <org.glassfish.grizzly.memory.Buffers: org.glassfish.grizzly.Buffer EMPTY_BUFFER>;
interfaceinvoke v.<org.glassfish.grizzly.streams.StreamWriter: void writeBuffer(org.glassfish.grizzly.Buffer)>(v);
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: org.glassfish.grizzly.streams.StreamWriter streamWriter>;
interfaceinvoke v.<org.glassfish.grizzly.streams.StreamWriter: org.glassfish.grizzly.GrizzlyFuture flush()>();
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
goto label;
label:
if v == 0 goto label;
v = <org.glassfish.grizzly.ssl.SSLStreamWriter: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "NEED_TASK Engine: {0}", v);
label:
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: void executeDelegatedTask(javax.net.ssl.SSLEngine)>(v);
v = v.<org.glassfish.grizzly.ssl.SSLStreamWriter$SSLHandshakeCondition: javax.net.ssl.SSLEngine sslEngine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
goto label;
label:
return 1;
label:
v = new java.lang.RuntimeException;
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[])>("Invalid Handshaking State\u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v != v goto label;
return 1;
}
}