diff --git a/websocket-sharp/Net/EndPointManager.cs b/websocket-sharp/Net/EndPointManager.cs index 6b1feb18..aaaa54cc 100644 --- a/websocket-sharp/Net/EndPointManager.cs +++ b/websocket-sharp/Net/EndPointManager.cs @@ -150,6 +150,40 @@ namespace WebSocketSharp.Net return lsnr; } + private static EndPointListener getEndPointListener ( + IPAddress address, int port, bool secure, HttpListener listener + ) + { + Dictionary endpoints = null; + if (_addressToEndpoints.ContainsKey (address)) { + endpoints = _addressToEndpoints[address]; + } + else { + endpoints = new Dictionary (); + _addressToEndpoints[address] = endpoints; + } + + EndPointListener lsnr = null; + if (endpoints.ContainsKey (port)) { + lsnr = endpoints[port]; + } + else { + lsnr = + new EndPointListener ( + address, + port, + listener.ReuseAddress, + secure, + listener.CertificateFolderPath, + listener.SslConfiguration + ); + + endpoints[port] = lsnr; + } + + return lsnr; + } + private static void removePrefix (string uriPrefix, HttpListener listener) { var pref = new HttpListenerPrefix (uriPrefix);