Fix a few for TcpListenerWebSocketContext.cs

This commit is contained in:
sta 2014-05-10 17:20:37 +09:00
parent 4125e4d3e1
commit 091b45c8b0
4 changed files with 22 additions and 24 deletions

View File

@ -510,9 +510,9 @@ namespace WebSocketSharp
} }
internal static TcpListenerWebSocketContext GetWebSocketContext ( internal static TcpListenerWebSocketContext GetWebSocketContext (
this TcpClient client, string protocol, X509Certificate cert, bool secure, Logger logger) this TcpClient client, string protocol, bool secure, X509Certificate cert, Logger logger)
{ {
return new TcpListenerWebSocketContext (client, protocol, cert, secure, logger); return new TcpListenerWebSocketContext (client, protocol, secure, cert, logger);
} }
internal static bool IsCompressionExtension (this string value) internal static bool IsCompressionExtension (this string value)

View File

@ -59,14 +59,12 @@ namespace WebSocketSharp.Net.WebSockets
#region Internal Constructors #region Internal Constructors
internal TcpListenerWebSocketContext ( internal TcpListenerWebSocketContext (
TcpClient client, string protocol, X509Certificate cert, bool secure, Logger logger) TcpClient client, string protocol, bool secure, X509Certificate cert, Logger logger)
{ {
_client = client; _client = client;
_secure = secure; _secure = secure;
_stream = WsStream.CreateServerStream (client, cert, secure); _stream = WsStream.CreateServerStream (client, secure, cert);
_request = _stream.ReadHandshake<HandshakeRequest> ( _request = _stream.ReadHandshake<HandshakeRequest> (HandshakeRequest.Parse, 90000);
HandshakeRequest.Parse, 90000);
_websocket = new WebSocket (this, protocol, logger); _websocket = new WebSocket (this, protocol, logger);
} }
@ -326,8 +324,8 @@ namespace WebSocketSharp.Net.WebSockets
var host = _request.Headers ["Host"]; var host = _request.Headers ["Host"];
var rawUri = _request.RequestUri; var rawUri = _request.RequestUri;
var path = rawUri.IsAbsoluteUri var path = rawUri.IsAbsoluteUri
? rawUri.PathAndQuery ? rawUri.PathAndQuery
: HttpUtility.UrlDecode (_request.RawUrl); : HttpUtility.UrlDecode (_request.RawUrl);
return String.Format ("{0}://{1}{2}", scheme, host, path).ToUri (); return String.Format ("{0}://{1}{2}", scheme, host, path).ToUri ();
} }
@ -356,7 +354,7 @@ namespace WebSocketSharp.Net.WebSockets
} }
internal void SetUser ( internal void SetUser (
AuthenticationSchemes expectedScheme, AuthenticationSchemes scheme,
string realm, string realm,
Func<IIdentity, NetworkCredential> credentialsFinder) Func<IIdentity, NetworkCredential> credentialsFinder)
{ {
@ -364,29 +362,29 @@ namespace WebSocketSharp.Net.WebSockets
if (authRes == null) if (authRes == null)
return; return;
var identity = authRes.ToIdentity (); var id = authRes.ToIdentity ();
if (identity == null) if (id == null)
return; return;
NetworkCredential credentials = null; NetworkCredential cred = null;
try { try {
credentials = credentialsFinder (identity); cred = credentialsFinder (id);
} }
catch { catch {
} }
if (credentials == null) if (cred == null)
return; return;
var valid = expectedScheme == AuthenticationSchemes.Basic var valid = scheme == AuthenticationSchemes.Basic
? ((HttpBasicIdentity) identity).Password == credentials.Password ? ((HttpBasicIdentity) id).Password == cred.Password
: expectedScheme == AuthenticationSchemes.Digest : scheme == AuthenticationSchemes.Digest
? ((HttpDigestIdentity) identity).IsValid ( ? ((HttpDigestIdentity) id).IsValid (
credentials.Password, realm, _request.HttpMethod, null) cred.Password, realm, _request.HttpMethod, null)
: false; : false;
if (valid) if (valid)
_user = new GenericPrincipal (identity, credentials.Roles); _user = new GenericPrincipal (id, cred.Roles);
} }
#endregion #endregion

View File

@ -476,7 +476,7 @@ namespace WebSocketSharp.Server
ThreadPool.QueueUserWorkItem ( ThreadPool.QueueUserWorkItem (
state => { state => {
try { try {
var context = client.GetWebSocketContext (null, _cert, _secure, _logger); var context = client.GetWebSocketContext (null, _secure, _cert, _logger);
if (_authSchemes != AuthenticationSchemes.Anonymous && if (_authSchemes != AuthenticationSchemes.Anonymous &&
!authenticateRequest (_authSchemes, context)) !authenticateRequest (_authSchemes, context))
return; return;

View File

@ -163,7 +163,7 @@ namespace WebSocketSharp
} }
internal static WsStream CreateServerStream ( internal static WsStream CreateServerStream (
TcpClient client, X509Certificate cert, bool secure) TcpClient client, bool secure, X509Certificate cert)
{ {
var netStream = client.GetStream (); var netStream = client.GetStream ();
if (secure) { if (secure) {