public final class io.netty.handler.codec.http.CookieDecoder extends java.lang.Object
{
private final io.netty.util.internal.logging.InternalLogger logger;
private static final io.netty.handler.codec.http.CookieDecoder STRICT;
private static final io.netty.handler.codec.http.CookieDecoder LAX;
private static final java.lang.String COMMENT;
private static final java.lang.String COMMENTURL;
private static final java.lang.String DISCARD;
private static final java.lang.String PORT;
private static final java.lang.String VERSION;
private final boolean strict;
public static java.util.Set decode(java.lang.String)
{
java.util.Set v;
java.lang.String v;
v := @parameter: java.lang.String;
v = staticinvoke <io.netty.handler.codec.http.CookieDecoder: java.util.Set decode(java.lang.String,boolean)>(v, 1);
return v;
}
public static java.util.Set decode(java.lang.String, boolean)
{
java.util.Set v;
java.lang.String v;
io.netty.handler.codec.http.CookieDecoder v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v == 0 goto label;
v = <io.netty.handler.codec.http.CookieDecoder: io.netty.handler.codec.http.CookieDecoder STRICT>;
goto label;
label:
v = <io.netty.handler.codec.http.CookieDecoder: io.netty.handler.codec.http.CookieDecoder LAX>;
label:
v = specialinvoke v.<io.netty.handler.codec.http.CookieDecoder: java.util.Set doDecode(java.lang.String)>(v);
return v;
}
private java.util.Set doDecode(java.lang.String)
{
java.lang.Integer v;
byte v;
java.util.Set v, v;
long v, v, v, v;
java.util.TreeSet v;
java.util.ArrayList v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.handler.codec.http.DefaultCookie v;
java.lang.NumberFormatException v, v;
java.util.Date v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String[] v;
int v, v, v, v, v, v, v, v, v;
io.netty.handler.codec.http.CookieDecoder v;
java.lang.Object v, v, v, v, v, v;
v := @this: io.netty.handler.codec.http.CookieDecoder;
v := @parameter: java.lang.String;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(8);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(8);
staticinvoke <io.netty.handler.codec.http.CookieDecoder: void extractKeyValuePairs(java.lang.String,java.util.List,java.util.List)>(v, v, v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
return v;
label:
v = 0;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("Version");
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v > v goto label;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
return v;
label:
v = new java.util.TreeSet;
specialinvoke v.<java.util.TreeSet: void <init>()>();
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
if v != null goto label;
v = "";
label:
v = specialinvoke v.<io.netty.handler.codec.http.CookieDecoder: io.netty.handler.codec.http.DefaultCookie initCookie(java.lang.String,java.lang.String)>(v, v);
if v == null goto label;
v = 0;
v = 0;
v = 0;
v = null;
v = null;
v = null;
v = null;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(2);
v = v + 1;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = "Discard";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = "Secure";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = "HTTPOnly";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = "Comment";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = "CommentURL";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = "Domain";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = "Path";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = "Expires";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <io.netty.handler.codec.DateFormatter: java.util.Date parseHttpDate(java.lang.CharSequence)>(v);
if v == null goto label;
virtualinvoke v.<java.util.Date: long getTime()>();
staticinvoke <java.lang.System: long currentTimeMillis()>();
goto label;
label:
v = "Max-Age";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
goto label;
label:
v = "Version";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
goto label;
label:
v = "Port";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(",");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(java.lang.String)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
v = v + 1;
goto label;
label:
v = v + 1;
v = v + 1;
goto label;
label:
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setVersion(int)>(v);
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setMaxAge(long)>(v);
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setPath(java.lang.String)>(v);
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setDomain(java.lang.String)>(v);
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setSecure(boolean)>(v);
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setHttpOnly(boolean)>(v);
if v <= 0 goto label;
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setComment(java.lang.String)>(v);
label:
if v <= 1 goto label;
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setCommentUrl(java.lang.String)>(v);
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setPorts(java.lang.Iterable)>(v);
interfaceinvoke v.<io.netty.handler.codec.http.Cookie: void setDiscard(boolean)>(v);
label:
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
return v;
catch java.lang.NumberFormatException from label to label with label;
catch java.lang.NumberFormatException from label to label with label;
}
private static void extractKeyValuePairs(java.lang.String, java.util.List, java.util.List)
{
int v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
boolean v;
char v, v, v, v, v, v;
java.util.List v, v;
java.lang.StringBuilder v;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = virtualinvoke v.<java.lang.String: int length()>();
v = 0;
label:
if v == v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
lookupswitch(v)
{
case 9: goto label;
case 10: goto label;
case 11: goto label;
case 12: goto label;
case 13: goto label;
case 32: goto label;
case 44: goto label;
case 59: goto label;
default: goto label;
};
label:
v = v + 1;
goto label;
label:
if v == v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 36 goto label;
v = v + 1;
goto label;
label:
if v != v goto label;
v = null;
v = null;
goto label;
label:
v = v;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
lookupswitch(v)
{
case 59: goto label;
case 61: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
v = null;
goto label;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
v = v + 1;
if v != v goto label;
v = "";
goto label;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v == 34 goto label;
if v != 39 goto label;
label:
v = new java.lang.StringBuilder;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - v;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(v);
v = 0;
v = v + 1;
label:
if v != v goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
goto label;
label:
if v == 0 goto label;
v = 0;
v = v;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
lookupswitch(v)
{
case 34: goto label;
case 39: goto label;
case 92: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
v = v - 1;
virtualinvoke v.<java.lang.StringBuilder: void setCharAt(int,char)>(v, v);
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
goto label;
label:
v = v;
v = v + 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != v goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
if v != 92 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(int,int)>(59, v);
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
v = v;
goto label;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = v;
goto label;
label:
v = v + 1;
if v != v goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = null;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return;
}
private void <init>(boolean)
{
io.netty.util.internal.logging.InternalLogger v;
java.lang.Class v;
io.netty.handler.codec.http.CookieDecoder v;
boolean v;
v := @this: io.netty.handler.codec.http.CookieDecoder;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(v);
v.<io.netty.handler.codec.http.CookieDecoder: io.netty.util.internal.logging.InternalLogger logger> = v;
v.<io.netty.handler.codec.http.CookieDecoder: boolean strict> = v;
return;
}
private io.netty.handler.codec.http.DefaultCookie initCookie(java.lang.String, java.lang.String)
{
java.lang.Character v, v;
int v, v, v, v, v;
java.lang.String v, v, v;
io.netty.handler.codec.http.CookieDecoder v;
boolean v, v, v, v, v, v;
io.netty.handler.codec.http.DefaultCookie v;
java.lang.CharSequence v;
char v, v;
io.netty.util.internal.logging.InternalLogger v, v, v, v, v, v, v;
v := @this: io.netty.handler.codec.http.CookieDecoder;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v != 0 goto label;
label:
v = v.<io.netty.handler.codec.http.CookieDecoder: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>("Skipping cookie with null name");
return null;
label:
if v != null goto label;
v = v.<io.netty.handler.codec.http.CookieDecoder: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>("Skipping cookie with null value");
return null;
label:
v = staticinvoke <io.netty.handler.codec.http.CookieUtil: java.lang.CharSequence unwrapValue(java.lang.CharSequence)>(v);
if v != null goto label;
v = v.<io.netty.handler.codec.http.CookieDecoder: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("Skipping cookie because starting quotes are not properly balanced in \'{}\'", v);
return null;
label:
v = v.<io.netty.handler.codec.http.CookieDecoder: boolean strict>;
if v == 0 goto label;
v = staticinvoke <io.netty.handler.codec.http.CookieUtil: int firstInvalidCookieNameOctet(java.lang.CharSequence)>(v);
if v < 0 goto label;
v = v.<io.netty.handler.codec.http.CookieDecoder: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<io.netty.handler.codec.http.CookieDecoder: io.netty.util.internal.logging.InternalLogger logger>;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <java.lang.Character: java.lang.Character valueOf(char)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Skipping cookie because name \'{}\' contains invalid char \'{}\'", v, v);
label:
return null;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = v.<io.netty.handler.codec.http.CookieDecoder: boolean strict>;
if v == 0 goto label;
v = staticinvoke <io.netty.handler.codec.http.CookieUtil: int firstInvalidCookieValueOctet(java.lang.CharSequence)>(v);
if v < 0 goto label;
v = v.<io.netty.handler.codec.http.CookieDecoder: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<io.netty.handler.codec.http.CookieDecoder: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = staticinvoke <java.lang.Character: java.lang.Character valueOf(char)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Skipping cookie because value \'{}\' contains invalid char \'{}\'", v, v);
label:
return null;
label:
v = new io.netty.handler.codec.http.DefaultCookie;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
specialinvoke v.<io.netty.handler.codec.http.DefaultCookie: void <init>(java.lang.String,java.lang.String)>(v, v);
virtualinvoke v.<io.netty.handler.codec.http.DefaultCookie: void setWrap(boolean)>(v);
return v;
}
static void <clinit>()
{
io.netty.handler.codec.http.CookieDecoder v, v;
v = new io.netty.handler.codec.http.CookieDecoder;
specialinvoke v.<io.netty.handler.codec.http.CookieDecoder: void <init>(boolean)>(1);
<io.netty.handler.codec.http.CookieDecoder: io.netty.handler.codec.http.CookieDecoder STRICT> = v;
v = new io.netty.handler.codec.http.CookieDecoder;
specialinvoke v.<io.netty.handler.codec.http.CookieDecoder: void <init>(boolean)>(0);
<io.netty.handler.codec.http.CookieDecoder: io.netty.handler.codec.http.CookieDecoder LAX> = v;
return;
}
}