private AcceptorSocketDescriptor GetAcceptorSocketDescriptor(Dictionary dict) { int port = System.Convert.ToInt32(dict.GetLong(SessionSettings.SOCKET_ACCEPT_PORT)); SocketSettings socketSettings = new SocketSettings(); IPEndPoint socketEndPoint; if (dict.Has(SessionSettings.SOCKET_ACCEPT_HOST)) { string host = dict.GetString(SessionSettings.SOCKET_ACCEPT_HOST); IPAddress[] addrs = Dns.GetHostAddresses(host); socketEndPoint = new IPEndPoint(addrs[0], port); // Set hostname (if it is not already configured) socketSettings.ServerCommonName = socketSettings.ServerCommonName ?? host; } else { socketEndPoint = new IPEndPoint(IPAddress.Any, port); } socketSettings.Configure(dict); AcceptorSocketDescriptor descriptor; if (!socketDescriptorForAddress_.TryGetValue(socketEndPoint, out descriptor)) { descriptor = new AcceptorSocketDescriptor(socketEndPoint, socketSettings, dict); socketDescriptorForAddress_[socketEndPoint] = descriptor; } return descriptor; }
private AcceptorSocketDescriptor GetAcceptorSocketDescriptor(SessionSettings settings, SessionID sessionID) { QuickFix.Dictionary dict = settings.Get(sessionID); int port = System.Convert.ToInt32(dict.GetLong(SessionSettings.SOCKET_ACCEPT_PORT)); SocketSettings socketSettings = new SocketSettings(); IPEndPoint socketEndPoint; if (dict.Has(SessionSettings.SOCKET_ACCEPT_HOST)) { string host = dict.GetString(SessionSettings.SOCKET_ACCEPT_HOST); IPAddress[] addrs = Dns.GetHostAddresses(host); socketEndPoint = new IPEndPoint(addrs[0], port); } else { socketEndPoint = new IPEndPoint(IPAddress.Any, port); } if (dict.Has(SessionSettings.SOCKET_NODELAY)) { socketSettings.SocketNodelay = dict.GetBool(SessionSettings.SOCKET_NODELAY); } AcceptorSocketDescriptor descriptor; if (!socketDescriptorForAddress_.TryGetValue(socketEndPoint, out descriptor)) { descriptor = new AcceptorSocketDescriptor(socketEndPoint, socketSettings, dict); socketDescriptorForAddress_[socketEndPoint] = descriptor; } return descriptor; }