[Modify] Polish it

This commit is contained in:
sta 2019-04-15 21:21:21 +09:00
parent 816272a908
commit 3da7b49a47

View File

@ -331,24 +331,75 @@ namespace WebSocketSharp.Net
if (pair.Length == 0) if (pair.Length == 0)
continue; continue;
if (pair.IndexOf ("version", compType) == 0) { var idx = pair.IndexOf ('=');
if (cookie != null) if (idx == -1) {
cookie.Version = Int32.Parse (pair.GetValue ('=', true)); if (cookie == null)
continue;
if (pair.Equals ("port", compType)) {
cookie.Port = "\"\"";
continue;
}
if (pair.Equals ("discard", compType)) {
cookie.Discard = true;
continue;
}
if (pair.Equals ("secure", compType)) {
cookie.Secure = true;
continue;
}
if (pair.Equals ("httponly", compType)) {
cookie.HttpOnly = true;
continue;
}
continue; continue;
} }
if (pair.IndexOf ("expires", compType) == 0) { if (idx == 0) {
if (cookie != null) {
ret.Add (cookie);
cookie = null;
}
continue;
}
var name = pair.Substring (0, idx).TrimEnd (' ');
var val = idx < pair.Length - 1
? pair.Substring (idx + 1).TrimStart (' ')
: String.Empty;
if (name.Equals ("version", compType)) {
if (cookie == null)
continue;
if (val.Length == 0)
continue;
cookie.Version = Int32.Parse (val.Unquote ());
continue;
}
if (name.Equals ("expires", compType)) {
if (val.Length == 0)
continue;
if (i == pairs.Length - 1) if (i == pairs.Length - 1)
break; break;
i++; i++;
if (cookie != null) { if (cookie == null)
continue;
if (cookie.Expires != DateTime.MinValue) if (cookie.Expires != DateTime.MinValue)
continue; continue;
var buff = new StringBuilder (pair.GetValue ('='), 32); var buff = new StringBuilder (val, 32);
buff.AppendFormat (", {0}", pairs[i].Trim ()); buff.AppendFormat (", {0}", pairs[i].Trim ());
DateTime expires; DateTime expires;
@ -365,77 +416,75 @@ namespace WebSocketSharp.Net
expires = DateTime.Now; expires = DateTime.Now;
cookie.Expires = expires.ToLocalTime (); cookie.Expires = expires.ToLocalTime ();
}
continue; continue;
} }
if (pair.IndexOf ("max-age", compType) == 0) { if (name.Equals ("max-age", compType)) {
if (cookie != null) { if (cookie == null)
var max = Int32.Parse (pair.GetValue ('=', true)); continue;
if (val.Length == 0)
continue;
var max = Int32.Parse (val.Unquote ());
var expires = DateTime.Now.AddSeconds ((double) max); var expires = DateTime.Now.AddSeconds ((double) max);
cookie.Expires = expires; cookie.Expires = expires;
}
continue; continue;
} }
if (pair.IndexOf ("path", compType) == 0) { if (name.Equals ("path", compType)) {
if (cookie != null) if (cookie == null)
cookie.Path = pair.GetValue ('='); continue;
if (val.Length == 0)
continue;
cookie.Path = val;
continue; continue;
} }
if (pair.IndexOf ("domain", compType) == 0) { if (name.Equals ("domain", compType)) {
if (cookie != null) if (cookie == null)
cookie.Domain = pair.GetValue ('='); continue;
if (val.Length == 0)
continue;
cookie.Domain = val;
continue; continue;
} }
if (pair.IndexOf ("port", compType) == 0) { if (name.Equals ("port", compType)) {
if (cookie != null) { if (cookie == null)
cookie.Port = !pair.Equals ("port", compType) continue;
? pair.GetValue ('=')
: "\"\"";
}
if (val.Length == 0)
continue;
cookie.Port = val;
continue; continue;
} }
if (pair.IndexOf ("comment", compType) == 0) { if (name.Equals ("comment", compType)) {
if (cookie != null) if (cookie == null)
cookie.Comment = urlDecode (pair.GetValue ('='), Encoding.UTF8); continue;
if (val.Length == 0)
continue;
cookie.Comment = urlDecode (val, Encoding.UTF8);
continue; continue;
} }
if (pair.IndexOf ("commenturl", compType) == 0) { if (name.Equals ("commenturl", compType)) {
if (cookie != null) if (cookie == null)
cookie.CommentUri = pair.GetValue ('=', true).ToUri ();
continue; continue;
}
if (pair.Equals ("discard", compType)) {
if (cookie != null)
cookie.Discard = true;
if (val.Length == 0)
continue; continue;
}
if (pair.Equals ("secure", compType)) {
if (cookie != null)
cookie.Secure = true;
continue;
}
if (pair.Equals ("httponly", compType)) {
if (cookie != null)
cookie.HttpOnly = true;
cookie.CommentUri = val.Unquote ().ToUri ();
continue; continue;
} }
@ -444,18 +493,6 @@ namespace WebSocketSharp.Net
cookie = null; cookie = null;
} }
var idx = pair.IndexOf ('=');
if (idx == -1)
continue;
if (idx == 0)
continue;
var name = pair.Substring (0, idx).TrimEnd (' ');
var val = idx < pair.Length - 1
? pair.Substring (idx + 1).TrimStart (' ')
: String.Empty;
cookie = new Cookie (name, val); cookie = new Cookie (name, val);
} }