/// <summary> /// Initializes a new instance of the <see cref="ServerConfig"/> class. /// </summary> /// <param name="serverConfig">The server config.</param> public ServerConfig(IServerConfig serverConfig) { serverConfig.CopyPropertiesTo(this); this.Options = serverConfig.Options; this.OptionElements = serverConfig.OptionElements; if (serverConfig.Certificate != null) { this.Certificate = serverConfig.Certificate.MakeCopy <CertificateConfig>(); } if (serverConfig.Listeners != null && serverConfig.Listeners.Any()) { this.Listeners = serverConfig.Listeners.MakeCopy <ListenerConfig>(); } if (serverConfig.CommandAssemblies != null && serverConfig.CommandAssemblies.Any()) { this.CommandAssemblies = serverConfig.CommandAssemblies.MakeCopy <CommandAssemblyConfig>(); } if (serverConfig.BufferPools != null && serverConfig.BufferPools.Any()) { this.BufferPools = serverConfig.BufferPools.MakeCopy <BufferPoolConfig>(); } }
/// <summary> /// Initializes a new instance of the <see cref="ServerConfig"/> class. /// </summary> /// <param name="serverConfig">The server config.</param> public ServerConfig(IServerConfig serverConfig) #if NETSTANDARD2_0 : base(new List <IConfigurationProvider>()) #endif { serverConfig.CopyPropertiesTo(this); this.Options = serverConfig.Options; this.OptionElements = serverConfig.OptionElements; if (serverConfig.Certificate != null) { this.Certificate = serverConfig.Certificate.CopyPropertiesTo(new CertificateConfig()); } if (serverConfig.Listeners != null && serverConfig.Listeners.Any()) { this.Listeners = serverConfig.Listeners.Select(l => l.CopyPropertiesTo(new ListenerConfig())).OfType <ListenerConfig>().ToArray(); } if (serverConfig.CommandAssemblies != null && serverConfig.CommandAssemblies.Any()) { this.CommandAssemblies = serverConfig.CommandAssemblies.Select(c => c.CopyPropertiesTo(new CommandAssemblyConfig())).OfType <CommandAssemblyConfig>().ToArray(); } }
private IServerConfig ResolveServerConfig(IServerConfig serverConfig) { var config = new ServerConfig(); serverConfig.CopyPropertiesTo(config); if (serverConfig.Port > 0) { var endPointKey = serverConfig.Name + "_" + serverConfig.Port; var instanceEndpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[endPointKey]; if (instanceEndpoint == null) { Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", endPointKey), "Error"); return(serverConfig); } var ipEndpoint = instanceEndpoint.IPEndpoint; config.Ip = ipEndpoint.Address.ToString(); config.Port = ipEndpoint.Port; } if (config.Listeners != null && config.Listeners.Any()) { var listeners = config.Listeners.ToArray(); var newListeners = new List <ListenerConfig>(listeners.Length); for (var i = 0; i < listeners.Length; i++) { var listener = listeners[i]; var endPointKey = serverConfig.Name + "_" + listener.Port; var instanceEndpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[endPointKey]; if (instanceEndpoint == null) { Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", endPointKey), "Error"); return(serverConfig); } var newListener = new ListenerConfig(); newListener.Ip = instanceEndpoint.IPEndpoint.Address.ToString(); newListener.Port = instanceEndpoint.IPEndpoint.Port; newListener.Backlog = listener.Backlog; newListeners.Add(newListener); } config.Listeners = newListeners; } return(config); }
private IServerConfig ResolveServerConfig(IServerConfig serverConfig) { var config = new ServerConfig(); serverConfig.CopyPropertiesTo(config); if (serverConfig.Port > 0) { var endPointKey = serverConfig.Name + "_" + serverConfig.Port; var instanceEndpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[endPointKey]; if (instanceEndpoint == null) { Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", endPointKey), "Error"); return serverConfig; } var ipEndpoint = instanceEndpoint.IPEndpoint; config.Ip = ipEndpoint.Address.ToString(); config.Port = ipEndpoint.Port; } if (config.Listeners != null && config.Listeners.Any()) { var listeners = config.Listeners.ToArray(); var newListeners = new List<ListenerConfig>(listeners.Length); for (var i = 0; i < listeners.Length; i++) { var listener = listeners[i]; var endPointKey = serverConfig.Name + "_" + listener.Port; var instanceEndpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[endPointKey]; if (instanceEndpoint == null) { Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", endPointKey), "Error"); return serverConfig; } var newListener = new ListenerConfig(); newListener.Ip = instanceEndpoint.IPEndpoint.Address.ToString(); newListener.Port = instanceEndpoint.IPEndpoint.Port; newListener.Backlog = listener.Backlog; newListeners.Add(newListener); } config.Listeners = newListeners; } return config; }
void IWorkItemBase.ReportPotentialConfigChange(IServerConfig config) { var oldConfig = this.Config; CheckConfigOptionsChange(oldConfig.Options, config.Options); CheckConfigOptionsChange(oldConfig.OptionElements, config.OptionElements); var updatableConfig = oldConfig as ServerConfig; if (updatableConfig == null) { return; } config.CopyPropertiesTo(p => p.GetCustomAttributes(typeof(HotUpdateAttribute), true).Length > 0, updatableConfig); }
/// <summary> /// Initializes a new instance of the <see cref="ServerConfig"/> class. /// </summary> /// <param name="serverConfig">The server config.</param> public ServerConfig(IServerConfig serverConfig) { serverConfig.CopyPropertiesTo(this); this.Options = serverConfig.Options; this.OptionElements = serverConfig.OptionElements; if (serverConfig.Certificate != null) { this.Certificate = serverConfig.Certificate.CopyPropertiesTo(new CertificateConfig()); } if (serverConfig.Listeners != null && serverConfig.Listeners.Any()) { this.Listeners = serverConfig.Listeners.Select(l => l.CopyPropertiesTo(new ListenerConfig())); } }
private IServerConfig ResolveServerConfig(IServerConfig serverConfig) { var config = new ServerConfig(); serverConfig.CopyPropertiesTo(config); var instanceEndpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[serverConfig.Name + "Endpoint"]; if (instanceEndpoint == null) { Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", serverConfig.Name + "Endpoint"), "Error"); return serverConfig; } var ipEndpoint = instanceEndpoint.IPEndpoint; config.Ip = ipEndpoint.Address.ToString(); config.Port = ipEndpoint.Port; return config; }
private IServerConfig ResolveServerConfig(IServerConfig serverConfig) { var config = new ServerConfig(); serverConfig.CopyPropertiesTo(config); RoleInstanceEndpoint instanceEndpoint; if (!RoleEnvironment.CurrentRoleInstance.InstanceEndpoints.TryGetValue(serverConfig.Name + "Endpoint", out instanceEndpoint)) { Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", serverConfig.Name + "Endpoint"), "Error"); return(serverConfig); } var ipEndpoint = instanceEndpoint.IPEndpoint; config.Ip = ipEndpoint.Address.ToString(); config.Port = ipEndpoint.Port; List <int> dataPorts = new List <int>(); int dataPortIndex = 0; while (true) { var dataPortKey = "FTPDataPort" + dataPortIndex++; RoleInstanceEndpoint dataEndpoint; if (!RoleEnvironment.CurrentRoleInstance.InstanceEndpoints.TryGetValue(dataPortKey, out dataEndpoint)) { break; } dataPorts.Add(dataEndpoint.IPEndpoint.Port); } if (dataPorts.Count > 0) { config.Options["dataPort"] = string.Join(",", dataPorts.Select(p => p.ToString()).ToArray()); } return(config); }
private IServerConfig ResolveServerConfig(IServerConfig serverConfig) { var config = new ServerConfig(); serverConfig.CopyPropertiesTo(config); var instanceEndpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[serverConfig.Name + "Endpoint"]; if (instanceEndpoint == null) { Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", serverConfig.Name + "Endpoint"), "Error"); return(serverConfig); } var ipEndpoint = instanceEndpoint.IPEndpoint; config.Ip = ipEndpoint.Address.ToString(); config.Port = ipEndpoint.Port; return(config); }
private IServerConfig ResolveServerConfig(IServerConfig serverConfig) { var config = new ServerConfig(); serverConfig.CopyPropertiesTo(config); RoleInstanceEndpoint instanceEndpoint; if (!RoleEnvironment.CurrentRoleInstance.InstanceEndpoints.TryGetValue(serverConfig.Name + "Endpoint", out instanceEndpoint)) { Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", serverConfig.Name + "Endpoint"), "Error"); return serverConfig; } var ipEndpoint = instanceEndpoint.IPEndpoint; config.Ip = ipEndpoint.Address.ToString(); config.Port = ipEndpoint.Port; List<int> dataPorts = new List<int>(); int dataPortIndex = 0; while (true) { var dataPortKey = "FTPDataPort" + dataPortIndex++; RoleInstanceEndpoint dataEndpoint; if (!RoleEnvironment.CurrentRoleInstance.InstanceEndpoints.TryGetValue(dataPortKey, out dataEndpoint)) break; dataPorts.Add(dataEndpoint.IPEndpoint.Port); } if (dataPorts.Count > 0) config.Options["dataPort"] = string.Join(",", dataPorts.Select(p => p.ToString()).ToArray()); return config; }
/// <summary> /// Setups the appServer instance /// </summary> /// <param name="rootConfig">The root config.</param> /// <param name="config">The socket server instance config.</param> /// <param name="socketServerFactory">The socket server factory.</param> /// <param name="requestFilterFactory">The request filter factory.</param> /// <returns></returns> protected virtual bool Setup(IRootConfig rootConfig, IServerConfig config, ISocketServerFactory socketServerFactory, IRequestFilterFactory <TRequestInfo> requestFilterFactory) { if (rootConfig == null) { throw new ArgumentNullException("rootConfig"); } RootConfig = rootConfig; if (!m_ThreadPoolConfigured) { if (!TheadPoolEx.ResetThreadPool(rootConfig.MaxWorkingThreads >= 0 ? rootConfig.MaxWorkingThreads : new Nullable <int>(), rootConfig.MaxCompletionPortThreads >= 0 ? rootConfig.MaxCompletionPortThreads : new Nullable <int>(), rootConfig.MinWorkingThreads >= 0 ? rootConfig.MinWorkingThreads : new Nullable <int>(), rootConfig.MinCompletionPortThreads >= 0 ? rootConfig.MinCompletionPortThreads : new Nullable <int>())) { return(false); } m_ThreadPoolConfigured = true; } if (config == null) { throw new ArgumentNullException("config"); } if (!(config is ServerConfig)) { //Use config plain model directly to avoid extra object casting in runtime var newConfig = new ServerConfig(); config.CopyPropertiesTo(newConfig); config = newConfig; } Config = config; m_SocketServerFactory = socketServerFactory; SetupLogger(); if (!SetupSecurity(config)) { return(false); } if (!SetupListeners(config)) { if (Logger.IsErrorEnabled) { Logger.Error("Invalid config ip/port"); } return(false); } if (!SetupRequestFilterFactory(config, requestFilterFactory)) { return(false); } m_CommandLoaders = new List <ICommandLoader> { new ReflectCommandLoader() }; if (Config.EnableDynamicCommand) { ICommandLoader dynamicCommandLoader; try { dynamicCommandLoader = AssemblyUtil.CreateInstance <ICommandLoader>("SuperSocket.Dlr.DynamicCommandLoader, SuperSocket.Dlr"); } catch (Exception e) { if (Logger.IsErrorEnabled) { Logger.Error("The file SuperSocket.Dlr is required for dynamic command support!", e); } return(false); } m_CommandLoaders.Add(dynamicCommandLoader); } if (!SetupCommands(m_CommandDict)) { return(false); } return(SetupSocketServer()); }
public ServerConfig(IServerConfig serverConfig) { serverConfig.CopyPropertiesTo(this); }
public ServerConfig(IServerConfig serverConfig) { #if !DOTNETCORE serverConfig.CopyPropertiesTo(this); #endif }