From 138628b470460593fcc7710a4e3b010bc0d2b785 Mon Sep 17 00:00:00 2001 From: sta Date: Fri, 25 Apr 2014 17:16:27 +0900 Subject: [PATCH] Fix a few for EndPointListener.cs --- websocket-sharp/Net/EndPointListener.cs | 86 ++++++++++++++----------- 1 file changed, 47 insertions(+), 39 deletions(-) diff --git a/websocket-sharp/Net/EndPointListener.cs b/websocket-sharp/Net/EndPointListener.cs index eccc6b46..82471d2b 100644 --- a/websocket-sharp/Net/EndPointListener.cs +++ b/websocket-sharp/Net/EndPointListener.cs @@ -8,7 +8,7 @@ * The MIT License * * Copyright (c) 2005 Novell, Inc. (http://www.novell.com) - * Copyright (c) 2012-2013 sta.blockhead + * Copyright (c) 2012-2014 sta.blockhead * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,7 +33,7 @@ #region Authors /* * Authors: - * Gonzalo Paniagua Javier + * - Gonzalo Paniagua Javier */ #endregion @@ -67,44 +67,56 @@ namespace WebSocketSharp.Net #region Public Constructors public EndPointListener ( - IPAddress address, - int port, - bool secure, - string certFolderPath, - X509Certificate2 defaultCert) + IPAddress address, int port, bool secure, string certFolderPath, X509Certificate2 defaultCert) { if (secure) { _secure = secure; _cert = getCertificate (port, certFolderPath, defaultCert); if (_cert == null) - throw new ArgumentException ("Server certificate not found."); + throw new ArgumentException ("No server certificate found."); } _endpoint = new IPEndPoint (address, port); - _socket = new Socket ( - address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); + _prefixes = new Dictionary (); + _unregistered = new Dictionary (); + + _socket = new Socket (address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); _socket.Bind (_endpoint); _socket.Listen (500); + var args = new SocketAsyncEventArgs (); args.UserToken = this; args.Completed += onAccept; _socket.AcceptAsync (args); - _prefixes = new Dictionary (); - _unregistered = new Dictionary (); + } + + #endregion + + #region Public Properties + + public X509Certificate2 Certificate { + get { + return _cert; + } + } + + public bool IsSecure { + get { + return _secure; + } } #endregion #region Private Methods - private static void addSpecial ( - List prefixes, ListenerPrefix prefix) + private static void addSpecial (List prefixes, ListenerPrefix prefix) { if (prefixes == null) return; foreach (var p in prefixes) - if (p.Path == prefix.Path) // TODO: code + if (p.Path == prefix.Path) // TODO: Code. throw new HttpListenerException (400, "Prefix already in use."); prefixes.Add (prefix); @@ -126,14 +138,15 @@ namespace WebSocketSharp.Net private static RSACryptoServiceProvider createRSAFromFile (string filename) { - var rsa = new RSACryptoServiceProvider (); - byte[] pvk = null; + byte [] pvk = null; using (var fs = File.Open (filename, FileMode.Open, FileAccess.Read, FileShare.Read)) { pvk = new byte [fs.Length]; fs.Read (pvk, 0, pvk.Length); } + var rsa = new RSACryptoServiceProvider (); rsa.ImportCspBlob (pvk); + return rsa; } @@ -183,7 +196,7 @@ namespace WebSocketSharp.Net private static void onAccept (object sender, EventArgs e) { var args = (SocketAsyncEventArgs) e; - var epListener = (EndPointListener) args.UserToken; + var listener = (EndPointListener) args.UserToken; Socket accepted = null; if (args.SocketError == SocketError.Success) { accepted = args.AcceptSocket; @@ -191,7 +204,7 @@ namespace WebSocketSharp.Net } try { - epListener._socket.AcceptAsync (args); + listener._socket.AcceptAsync (args); } catch { if (accepted != null) @@ -205,11 +218,9 @@ namespace WebSocketSharp.Net HttpConnection conn = null; try { - conn = new HttpConnection ( - accepted, epListener, epListener._secure, epListener._cert); - lock (((ICollection) epListener._unregistered).SyncRoot) { - epListener._unregistered [conn] = conn; - } + conn = new HttpConnection (accepted, listener, listener._secure, listener._cert); + lock (((ICollection) listener._unregistered).SyncRoot) + listener._unregistered [conn] = conn; conn.BeginReadRequest (); } @@ -223,8 +234,7 @@ namespace WebSocketSharp.Net } } - private static bool removeSpecial ( - List prefixes, ListenerPrefix prefix) + private static bool removeSpecial (List prefixes, ListenerPrefix prefix) { if (prefixes == null) return false; @@ -320,8 +330,8 @@ namespace WebSocketSharp.Net do { current = _unhandled; future = current != null - ? new List (current) - : new List (); + ? new List (current) + : new List (); prefix.Listener = listener; addSpecial (future, prefix); @@ -335,8 +345,8 @@ namespace WebSocketSharp.Net do { current = _all; future = current != null - ? new List (current) - : new List (); + ? new List (current) + : new List (); prefix.Listener = listener; addSpecial (future, prefix); @@ -351,9 +361,8 @@ namespace WebSocketSharp.Net prefs = _prefixes; if (prefs.ContainsKey (prefix)) { var other = prefs [prefix]; - if (other != listener) // TODO: code. - throw new HttpListenerException ( - 400, "There's another listener for " + prefix); + if (other != listener) // TODO: Code. + throw new HttpListenerException (400, "There's another listener for " + prefix); return; } @@ -366,9 +375,8 @@ namespace WebSocketSharp.Net public bool BindContext (HttpListenerContext context) { - var req = context.Request; ListenerPrefix prefix; - var listener = searchListener (req.Url, out prefix); + var listener = searchListener (context.Request.Url, out prefix); if (listener == null) return false; @@ -398,8 +406,8 @@ namespace WebSocketSharp.Net do { current = _unhandled; future = current != null - ? new List (current) - : new List (); + ? new List (current) + : new List (); if (!removeSpecial (future, prefix)) break; // Prefix not found. @@ -414,8 +422,8 @@ namespace WebSocketSharp.Net do { current = _all; future = current != null - ? new List (current) - : new List (); + ? new List (current) + : new List (); if (!removeSpecial (future, prefix)) break; // Prefix not found.