Fix due to the modified Handshake.cs

This commit is contained in:
sta 2013-05-08 15:03:13 +09:00
parent c513fe7670
commit 8ba6ff1f09
14 changed files with 67 additions and 54 deletions

Binary file not shown.

View File

@ -37,7 +37,7 @@ namespace WebSocketSharp {
#region Protected Const Fields
protected const string _crlf = "\r\n";
protected const string CrLf = "\r\n";
#endregion
@ -53,8 +53,13 @@ namespace WebSocketSharp {
#region Public Properties
public NameValueCollection Headers { get; internal set; }
public Version ProtocolVersion { get; internal set; }
public NameValueCollection Headers {
get; protected set;
}
public Version ProtocolVersion {
get; protected set;
}
#endregion
@ -65,22 +70,22 @@ namespace WebSocketSharp {
Headers.Add(name, value);
}
public bool ContainsHeader(string name)
{
return Headers.Exists(name);
}
public bool ContainsHeader(string name, string value)
{
return Headers.Exists(name, value);
}
public string[] GetHeaderValues(string name)
{
return Headers.GetValues(name);
}
public bool HeaderExists(string name)
{
return Headers.Exists(name);
}
public bool HeaderExists(string name, string value)
{
return Headers.Exists(name, value);
}
public byte[] ToBytes()
public byte[] ToByteArray()
{
return Encoding.UTF8.GetBytes(ToString());
}

View File

@ -72,7 +72,9 @@ namespace WebSocketSharp {
}
}
public string HttpMethod { get; private set; }
public string HttpMethod {
get; private set;
}
public bool IsWebSocketRequest {
get {
@ -80,15 +82,15 @@ namespace WebSocketSharp {
? false
: ProtocolVersion < HttpVersion.Version11
? false
: !HeaderExists("Upgrade", "websocket")
: !ContainsHeader("Upgrade", "websocket")
? false
: !HeaderExists("Connection", "Upgrade")
: !ContainsHeader("Connection", "Upgrade")
? false
: !HeaderExists("Host")
: !ContainsHeader("Host")
? false
: !HeaderExists("Sec-WebSocket-Key")
: !ContainsHeader("Sec-WebSocket-Key")
? false
: HeaderExists("Sec-WebSocket-Version");
: ContainsHeader("Sec-WebSocket-Version");
}
}
@ -128,7 +130,9 @@ namespace WebSocketSharp {
}
}
public Uri RequestUri { get; private set; }
public Uri RequestUri {
get; private set;
}
#endregion
@ -167,11 +171,11 @@ namespace WebSocketSharp {
public void SetCookies(CookieCollection cookies)
{
if (cookies.IsNull() || cookies.Count == 0)
if (cookies == null || cookies.Count == 0)
return;
var sorted = cookies.Sorted.ToArray();
var header = new StringBuilder(sorted[0].ToString());
var header = new StringBuilder(sorted[0].ToString(), 64);
for (int i = 1; i < sorted.Length; i++)
if (!sorted[i].Expired)
header.AppendFormat("; {0}", sorted[i].ToString());
@ -181,12 +185,12 @@ namespace WebSocketSharp {
public override string ToString()
{
var buffer = new StringBuilder();
buffer.AppendFormat("{0} {1} HTTP/{2}{3}", HttpMethod, RawUrl, ProtocolVersion, _crlf);
var buffer = new StringBuilder(64);
buffer.AppendFormat("{0} {1} HTTP/{2}{3}", HttpMethod, RawUrl, ProtocolVersion, CrLf);
foreach (string key in Headers.AllKeys)
buffer.AppendFormat("{0}: {1}{2}", key, Headers[key], _crlf);
buffer.AppendFormat("{0}: {1}{2}", key, Headers[key], CrLf);
buffer.Append(_crlf);
buffer.Append(CrLf);
return buffer.ToString();
}

View File

@ -67,17 +67,21 @@ namespace WebSocketSharp {
? false
: StatusCode != "101"
? false
: !HeaderExists("Upgrade", "websocket")
: !ContainsHeader("Upgrade", "websocket")
? false
: !HeaderExists("Connection", "Upgrade")
: !ContainsHeader("Connection", "Upgrade")
? false
: HeaderExists("Sec-WebSocket-Accept");
: ContainsHeader("Sec-WebSocket-Accept");
}
}
public string Reason { get; internal set; }
public string Reason {
get; private set;
}
public string StatusCode { get; internal set; }
public string StatusCode {
get; private set;
}
#endregion
@ -97,7 +101,7 @@ namespace WebSocketSharp {
if (statusLine.Length < 3)
throw new ArgumentException("Invalid status line.");
var reason = new StringBuilder(statusLine[2]);
var reason = new StringBuilder(statusLine[2], 64);
for (int i = 3; i < statusLine.Length; i++)
reason.AppendFormat(" {0}", statusLine[i]);
@ -115,7 +119,7 @@ namespace WebSocketSharp {
public void SetCookies(CookieCollection cookies)
{
if (cookies.IsNull() || cookies.Count == 0)
if (cookies == null || cookies.Count == 0)
return;
foreach (var cookie in cookies.Sorted)
@ -124,12 +128,12 @@ namespace WebSocketSharp {
public override string ToString()
{
var buffer = new StringBuilder();
buffer.AppendFormat("HTTP/{0} {1} {2}{3}", ProtocolVersion, StatusCode, Reason, _crlf);
var buffer = new StringBuilder(64);
buffer.AppendFormat("HTTP/{0} {1} {2}{3}", ProtocolVersion, StatusCode, Reason, CrLf);
foreach (string key in Headers.AllKeys)
buffer.AppendFormat("{0}: {1}{2}", key, Headers[key], _crlf);
buffer.AppendFormat("{0}: {1}{2}", key, Headers[key], CrLf);
buffer.Append(_crlf);
buffer.Append(CrLf);
return buffer.ToString();
}

View File

@ -827,10 +827,10 @@ namespace WebSocketSharp {
{
return !response.IsWebSocketResponse
? false
: !response.HeaderExists("Sec-WebSocket-Accept", createResponseKey())
: !response.ContainsHeader("Sec-WebSocket-Accept", createResponseKey())
? false
: !response.HeaderExists("Sec-WebSocket-Version") ||
response.HeaderExists("Sec-WebSocket-Version", _version);
: !response.ContainsHeader("Sec-WebSocket-Version") ||
response.ContainsHeader("Sec-WebSocket-Version", _version);
}
private void onClose(CloseEventArgs eventArgs)

View File

@ -256,7 +256,7 @@ namespace WebSocketSharp {
public bool Write(Handshake handshake)
{
return write(handshake.ToBytes());
return write(handshake.ToByteArray());
}
#endregion