private static void _setupNewSocketServer(RelayNode relayNode, string instanceName, int portNumber, bool useAsyncHandler, ConnectionWhitelist connectionWhitelist, bool whitelistOnly) { //all public method should lock(_syncRoot) so we should be ok SocketServer socketServer = new SocketServer(instanceName, portNumber); IMessageHandler messageHandler; if (useAsyncHandler) { messageHandler = new SocketServerAsyncMessageHandler(relayNode, relayNode); } else { messageHandler = new SocketServerRelayMessageHandler(relayNode, relayNode); } socketServer.MessageHandler = messageHandler; socketServer.AcceptingConnectionsDelegate = relayNode.AcceptNewRequest; socketServer.AcceptingRequestsDelegate = relayNode.AcceptNewRequest; socketServer.WhitelistOnly = whitelistOnly; socketServer.Start(connectionWhitelist); _socketServer = socketServer; if (_cachedWhiteListValue != null) { _socketServer.WhitelistOnly = _cachedWhiteListValue.Value; _cachedWhiteListValue = null; } }
private static void _setupNewSocketServer(RelayNode relayNode, string instanceName, int portNumber, bool useAsyncHandler, ConnectionWhitelist connectionWhitelist, bool whitelistOnly) { //all public method should lock(_syncRoot) so we should be ok SocketServer socketServer = new SocketServer(instanceName, portNumber); IMessageHandler messageHandler; if (useAsyncHandler) { messageHandler = new SocketServerAsyncMessageHandler(relayNode, relayNode); } else { messageHandler = new SocketServerRelayMessageHandler(relayNode, relayNode); } socketServer.MessageHandler = messageHandler; socketServer.AcceptingConnectionsDelegate = relayNode.AcceptNewConnection; socketServer.WhitelistOnly = whitelistOnly; socketServer.Start(connectionWhitelist); _socketServer = socketServer; if (_cachedWhiteListValue != null) { _socketServer.WhitelistOnly = _cachedWhiteListValue.Value; _cachedWhiteListValue = null; } }