final class io.netty.handler.ssl.OpenSslClientSessionCache extends io.netty.handler.ssl.OpenSslSessionCache
{
private final java.util.Map sessions;
static final boolean $assertionsDisabled;
void <init>(io.netty.handler.ssl.OpenSslEngineMap)
{
java.util.HashMap v;
io.netty.handler.ssl.OpenSslClientSessionCache v;
io.netty.handler.ssl.OpenSslEngineMap v;
v := @this: io.netty.handler.ssl.OpenSslClientSessionCache;
v := @parameter: io.netty.handler.ssl.OpenSslEngineMap;
specialinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: void <init>(io.netty.handler.ssl.OpenSslEngineMap)>(v);
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<io.netty.handler.ssl.OpenSslClientSessionCache: java.util.Map sessions> = v;
return;
}
protected boolean sessionCreated(io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession)
{
io.netty.handler.ssl.OpenSslClientSessionCache$HostPort v;
java.lang.AssertionError v;
io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession v;
io.netty.handler.ssl.OpenSslClientSessionCache v;
java.util.Map v, v;
int v;
java.lang.String v;
boolean v, v, v;
v := @this: io.netty.handler.ssl.OpenSslClientSessionCache;
v := @parameter: io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession;
v = <io.netty.handler.ssl.OpenSslClientSessionCache: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <java.lang.Thread: boolean holdsLock(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: java.lang.String getPeerHost()>();
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: int getPeerPort()>();
v = staticinvoke <io.netty.handler.ssl.OpenSslClientSessionCache: io.netty.handler.ssl.OpenSslClientSessionCache$HostPort keyFor(java.lang.String,int)>(v, v);
if v == null goto label;
v = v.<io.netty.handler.ssl.OpenSslClientSessionCache: java.util.Map sessions>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
label:
return 0;
label:
v = v.<io.netty.handler.ssl.OpenSslClientSessionCache: java.util.Map sessions>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return 1;
}
protected void sessionRemoved(io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession)
{
io.netty.handler.ssl.OpenSslClientSessionCache$HostPort v;
java.lang.AssertionError v;
io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession v;
io.netty.handler.ssl.OpenSslClientSessionCache v;
java.util.Map v;
int v;
java.lang.String v;
boolean v, v;
v := @this: io.netty.handler.ssl.OpenSslClientSessionCache;
v := @parameter: io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession;
v = <io.netty.handler.ssl.OpenSslClientSessionCache: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <java.lang.Thread: boolean holdsLock(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: java.lang.String getPeerHost()>();
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: int getPeerPort()>();
v = staticinvoke <io.netty.handler.ssl.OpenSslClientSessionCache: io.netty.handler.ssl.OpenSslClientSessionCache$HostPort keyFor(java.lang.String,int)>(v, v);
if v != null goto label;
return;
label:
v = v.<io.netty.handler.ssl.OpenSslClientSessionCache: java.util.Map sessions>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
return;
}
void setSession(long, java.lang.String, int)
{
java.lang.Throwable v;
io.netty.handler.ssl.OpenSslClientSessionCache$HostPort v;
long v, v;
io.netty.handler.ssl.OpenSslSessionId v;
io.netty.handler.ssl.OpenSslClientSessionCache v;
java.util.Map v;
int v;
java.lang.Object v;
java.lang.String v;
boolean v, v, v;
v := @this: io.netty.handler.ssl.OpenSslClientSessionCache;
v := @parameter: long;
v := @parameter: java.lang.String;
v := @parameter: int;
v = staticinvoke <io.netty.handler.ssl.OpenSslClientSessionCache: io.netty.handler.ssl.OpenSslClientSessionCache$HostPort keyFor(java.lang.String,int)>(v, v);
if v != null goto label;
return;
label:
entermonitor v;
label:
v = v.<io.netty.handler.ssl.OpenSslClientSessionCache: java.util.Map sessions>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
exitmonitor v;
label:
return;
label:
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: boolean isValid()>();
if v != 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: io.netty.handler.ssl.OpenSslSessionId sessionId()>();
virtualinvoke v.<io.netty.handler.ssl.OpenSslClientSessionCache: void removeSessionWithId(io.netty.handler.ssl.OpenSslSessionId)>(v);
exitmonitor v;
label:
return;
label:
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: long session()>();
v = staticinvoke <io.netty.internal.tcnative.SSL: boolean setSession(long,long)>(v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: boolean shouldBeSingleUse()>();
if v == 0 goto label;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: void invalidate()>();
label:
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache$NativeSslSession: void updateLastAccessedTime()>();
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static io.netty.handler.ssl.OpenSslClientSessionCache$HostPort keyFor(java.lang.String, int)
{
int v;
io.netty.handler.ssl.OpenSslClientSessionCache$HostPort v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: int;
if v != null goto label;
if v >= 1 goto label;
return null;
label:
v = new io.netty.handler.ssl.OpenSslClientSessionCache$HostPort;
specialinvoke v.<io.netty.handler.ssl.OpenSslClientSessionCache$HostPort: void <init>(java.lang.String,int)>(v, v);
return v;
}
synchronized void clear()
{
io.netty.handler.ssl.OpenSslClientSessionCache v;
java.util.Map v;
v := @this: io.netty.handler.ssl.OpenSslClientSessionCache;
specialinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: void clear()>();
v = v.<io.netty.handler.ssl.OpenSslClientSessionCache: java.util.Map sessions>;
interfaceinvoke v.<java.util.Map: void clear()>();
return;
}
static void <clinit>()
{
java.lang.Class v;
boolean v, v;
v = class "Lio/netty/handler/ssl/OpenSslClientSessionCache;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.handler.ssl.OpenSslClientSessionCache: boolean $assertionsDisabled> = v;
return;
}
}