fix Ext.cs, WebSocket.cs

This commit is contained in:
sta
2010-10-27 16:07:12 +09:00
parent 5a3545e911
commit 0a07fe449c
22 changed files with 21 additions and 40 deletions
+2 -2
View File
@@ -1,8 +1,8 @@
<Properties>
<MonoDevelop.Ide.Workspace ActiveConfiguration="Release_Ubuntu" ctype="Workspace" />
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug_Ubuntu" ctype="Workspace" />
<MonoDevelop.Ide.Workbench ActiveDocument="websocket-sharp/WebSocket.cs" ctype="Workbench">
<Files>
<File FileName="websocket-sharp/WebSocket.cs" Line="263" Column="2" />
<File FileName="websocket-sharp/WebSocket.cs" Line="262" Column="15" />
</Files>
</MonoDevelop.Ide.Workbench>
<MonoDevelop.Ide.DebuggingService.Breakpoints>
+3 -24
View File
@@ -83,27 +83,6 @@ namespace WebSocketSharp
return new String(secKey.ToArray());
}
public static IEnumerable<int> IndexOf<T>(this T[] array, T val)
{
for (int i = 0; i < array.Length; i++)
{
if (array[i].Equals(val))
{
yield return i;
}
}
}
public static T[] InitializeWith<T>(this T[] array, T val)
{
for (int i = 0; i < array.Length; i++)
{
array[i] = val;
}
return array;
}
public static Byte[] InitializeWithPrintableASCII(this Byte[] bytes, Random rand)
{
for (int i = 0; i < bytes.Length; i++)
@@ -114,11 +93,11 @@ namespace WebSocketSharp
return bytes;
}
public static void NotEqualsDo(this string a, string b, Action<string, string> action)
public static void NotEqualsDo(this string expected, string actual, Action<string, string> action)
{
if (a != b)
if (expected != actual)
{
action(a, b);
action(expected, actual);
}
}
}
+16 -14
View File
@@ -259,7 +259,11 @@ namespace WebSocketSharp
}
string subProtocol = protocol != String.Empty
#if !CHALLENGE
? String.Format("WebSocket-Protocol: {0}\r\n", protocol)
#else
? String.Format("Sec-WebSocket-Protocol: {0}\r\n", protocol)
#endif
: protocol;
#if !CHALLENGE
string secKeys = String.Empty;
@@ -325,17 +329,17 @@ namespace WebSocketSharp
Console.WriteLine("{0}", s);
}
#endif
Action<string, string> action = (a, b) =>
Action<string, string> action = (e, a) =>
{
throw new IOException("Invalid handshake response: " + a);
};
#if !CHALLENGE
response[0].NotEqualsDo("HTTP/1.1 101 Web Socket Protocol Handshake", action);
"HTTP/1.1 101 Web Socket Protocol Handshake".NotEqualsDo(response[0], action);
#else
response[0].NotEqualsDo("HTTP/1.1 101 WebSocket Protocol Handshake", action);
"HTTP/1.1 101 WebSocket Protocol Handshake".NotEqualsDo(response[0], action);
#endif
response[1].NotEqualsDo("Upgrade: WebSocket", action);
response[2].NotEqualsDo("Connection: Upgrade", action);
"Upgrade: WebSocket".NotEqualsDo(response[1], action);
"Connection: Upgrade".NotEqualsDo(response[2], action);
for (int i = 3; i < response.Length; i++)
{
@@ -357,17 +361,15 @@ namespace WebSocketSharp
string expectedResToHexStr = BitConverter.ToString(expectedRes);
string actualResToHexStr = BitConverter.ToString(actualRes);
actualResToHexStr.NotEqualsDo(expectedResToHexStr, (a, b) =>
{
Console.WriteLine("WS: Error @doHandshake: Invalid challenge response.");
Console.WriteLine("\texpected: {0}", b);
Console.WriteLine("\tactual : {0}", a);
throw new IOException("Invalid challenge response: " + a);
}
);
expectedResToHexStr.NotEqualsDo(actualResToHexStr, (e, a) =>
{
#if DEBUG
Console.WriteLine("WS: Info @doHandshake: challenge response: {0}", actualResToHexStr);
Console.WriteLine("WS: Error @doHandshake: Invalid challenge response.");
Console.WriteLine("\texpected: {0}", e);
Console.WriteLine("\tactual : {0}", a);
#endif
throw new IOException("Invalid challenge response: " + a);
});
#endif
ReadyState = WsState.OPEN;
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.