Пример #1
0
        static int Main(string[] args)
        {
            m_Server = new HttpServerBase("User", args);

            m_UserServiceConnector = new UserServiceConnector(m_Server.Config, m_Server.HttpServer);

            return(m_Server.Run());
        }
Пример #2
0
        /// <summary>
        /// Method to auto start the application Server.
        /// </summary>
        public void AutoStartServer()
        {
            // Get default server in preferences.
            log.Info("Auto start HTTP server connection. Please wait...");

            ServerData server = InitializeServer();

            // Try to start server.
            try
            {
                if (server != null)
                {
                    if (!server.AutoStart)
                    {
                        log.Debug("Auto start HTTP server connection. Aborted !");
                        log.Info("Auto start HTTP server connection. Done !");
                        return;
                    }

                    HttpServerBase.AddNetworkAcl();
                    HttpServerBase.Start();

                    log.Info("Server started : [" + server.Host + ":" + server.Port + "]");
                }
                else
                {
                    log.Error("Server preferences not found !");
                }
            }

            // Catch server start exception.
            catch (Exception e)
            {
                log.Error("Auto start HTTP server connection failed : [" + server?.Host + ":" + server?.Port + "]", e);
                MessageBox.Show("Starting server : [" + server?.Host + ":" + server?.Port + "] failed !", Local.Properties.Translations.ApplicationName, MessageBoxButton.OK, MessageBoxImage.Error);
            }

            log.Info("Auto start HTTP server connection. Done !");
        }
Пример #3
0
        public static int Main(string[] args)
        {
            m_Server = new HttpServerBase("R.O.B.U.S.T.", args);

            IConfig serverConfig = m_Server.Config.Configs["Startup"];

            if (serverConfig == null)
            {
                System.Console.WriteLine("Startup config section missing in .ini file");
                throw new Exception("Configuration error");
            }

            string connList = serverConfig.GetString("ServiceConnectors", String.Empty);

            string[] conns = connList.Split(new char[] { ',', ' ' });

//            int i = 0;
            foreach (string c in conns)
            {
                if (c == String.Empty)
                {
                    continue;
                }

                string configName = String.Empty;
                string conn       = c;
                uint   port       = 0;

                string[] split1 = conn.Split(new char[] { '/' });
                if (split1.Length > 1)
                {
                    conn = split1[1];

                    string[] split2 = split1[0].Split(new char[] { '@' });
                    if (split2.Length > 1)
                    {
                        configName = split2[0];
                        port       = Convert.ToUInt32(split2[1]);
                    }
                    else
                    {
                        port = Convert.ToUInt32(split1[0]);
                    }
                }
                string[] parts        = conn.Split(new char[] { ':' });
                string   friendlyName = parts[0];
                if (parts.Length > 1)
                {
                    friendlyName = parts[1];
                }

                IHttpServer server = m_Server.HttpServer;
                if (port != 0)
                {
                    server = m_Server.GetHttpServer(port);
                }

                if (port != m_Server.DefaultPort && port != 0)
                {
                    m_log.InfoFormat("[SERVER]: Loading {0} on port {1}", friendlyName, port);
                }
                else
                {
                    m_log.InfoFormat("[SERVER]: Loading {0}", friendlyName);
                }

                IServiceConnector connector = null;

                Object[] modargs = new Object[] { m_Server.Config, server,
                                                  configName };
                connector = ServerUtils.LoadPlugin <IServiceConnector>(conn,
                                                                       modargs);
                if (connector == null)
                {
                    modargs   = new Object[] { m_Server.Config, server };
                    connector =
                        ServerUtils.LoadPlugin <IServiceConnector>(conn,
                                                                   modargs);
                }

                if (connector != null)
                {
                    m_ServiceConnectors.Add(connector);
                    m_log.InfoFormat("[SERVER]: {0} loaded successfully", friendlyName);
                }
                else
                {
                    m_log.InfoFormat("[SERVER]: Failed to load {0}", conn);
                }
            }
            int res = m_Server.Run();

            Environment.Exit(res);

            return(0);
        }
Пример #4
0
        public static int Main(string[] args)
        {
            Culture.SetCurrentCulture();
            Culture.SetDefaultCurrentCulture();

            ServicePointManager.DefaultConnectionLimit = 64;
            ServicePointManager.Expect100Continue      = false;
            ServicePointManager.UseNagleAlgorithm      = false;
            ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;

            m_Server = new HttpServerBase("R.O.B.U.S.T.", args);

            string registryLocation;

            IConfig serverConfig = m_Server.Config.Configs["Startup"];

            if (serverConfig == null)
            {
                System.Console.WriteLine("Startup config section missing in .ini file");
                throw new Exception("Configuration error");
            }

            int dnsTimeout = serverConfig.GetInt("DnsTimeout", 30000);

            try { ServicePointManager.DnsRefreshTimeout = dnsTimeout; } catch { }

            m_NoVerifyCertChain    = serverConfig.GetBoolean("NoVerifyCertChain", m_NoVerifyCertChain);
            m_NoVerifyCertHostname = serverConfig.GetBoolean("NoVerifyCertHostname", m_NoVerifyCertHostname);


            string connList = serverConfig.GetString("ServiceConnectors", String.Empty);

            registryLocation = serverConfig.GetString("RegistryLocation", ".");

            IConfig servicesConfig = m_Server.Config.Configs["ServiceList"];

            if (servicesConfig != null)
            {
                List <string> servicesList = new List <string>();
                if (connList != String.Empty)
                {
                    servicesList.Add(connList);
                }

                foreach (string k in servicesConfig.GetKeys())
                {
                    string v = servicesConfig.GetString(k);
                    if (v != String.Empty)
                    {
                        servicesList.Add(v);
                    }
                }

                connList = String.Join(",", servicesList.ToArray());
            }

            string[] conns = connList.Split(new char[] { ',', ' ', '\n', '\r', '\t' });

//            int i = 0;
            foreach (string c in conns)
            {
                if (c == String.Empty)
                {
                    continue;
                }

                string configName = String.Empty;
                string conn       = c;
                uint   port       = 0;

                string[] split1 = conn.Split(new char[] { '/' });
                if (split1.Length > 1)
                {
                    conn = split1[1];

                    string[] split2 = split1[0].Split(new char[] { '@' });
                    if (split2.Length > 1)
                    {
                        configName = split2[0];
                        port       = Convert.ToUInt32(split2[1]);
                    }
                    else
                    {
                        port = Convert.ToUInt32(split1[0]);
                    }
                }
                string[] parts        = conn.Split(new char[] { ':' });
                string   friendlyName = parts[0];
                if (parts.Length > 1)
                {
                    friendlyName = parts[1];
                }

                IHttpServer server;

                if (port != 0)
                {
                    server = MainServer.GetHttpServer(port);
                }
                else
                {
                    server = MainServer.Instance;
                }

                m_log.InfoFormat("[SERVER]: Loading {0} on port {1}", friendlyName, server.Port);

                IServiceConnector connector = null;

                Object[] modargs = new Object[] { m_Server.Config, server, configName };
                connector = ServerUtils.LoadPlugin <IServiceConnector>(conn, modargs);

                if (connector == null)
                {
                    modargs   = new Object[] { m_Server.Config, server };
                    connector = ServerUtils.LoadPlugin <IServiceConnector>(conn, modargs);
                }

                if (connector != null)
                {
                    m_ServiceConnectors.Add(connector);
                    m_log.InfoFormat("[SERVER]: {0} loaded successfully", friendlyName);
                }
                else
                {
                    m_log.ErrorFormat("[SERVER]: Failed to load {0}", conn);
                }
            }

            loader = new PluginLoader(m_Server.Config, registryLocation);

            int res = m_Server.Run();

            if (m_Server != null)
            {
                m_Server.Shutdown();
            }

            Util.StopThreadPool();

            Environment.Exit(res);

            return(0);
        }
Пример #5
0
        public static int Main(string[] args)
        {
            // Make sure we don't get outbound connections queueing
            ServicePointManager.DefaultConnectionLimit = 50;
            ServicePointManager.UseNagleAlgorithm      = false;

            m_Server = new HttpServerBase("R.O.B.U.S.T.", args);

            string registryLocation;

            IConfig serverConfig = m_Server.Config.Configs["Startup"];

            if (serverConfig == null)
            {
                System.Console.WriteLine("Startup config section missing in .ini file");
                throw new Exception("Configuration error");
            }

            string connList = serverConfig.GetString("ServiceConnectors", String.Empty);

            registryLocation = serverConfig.GetString("RegistryLocation", ".");

            IConfig servicesConfig = m_Server.Config.Configs["ServiceList"];

            if (servicesConfig != null)
            {
                List <string> servicesList = new List <string>();
                if (connList != String.Empty)
                {
                    servicesList.Add(connList);
                }

                foreach (string k in servicesConfig.GetKeys())
                {
                    string v = servicesConfig.GetString(k);
                    if (v != String.Empty)
                    {
                        servicesList.Add(v);
                    }
                }

                connList = String.Join(",", servicesList.ToArray());
            }

            string[] conns = connList.Split(new char[] { ',', ' ', '\n', '\r', '\t' });

//            int i = 0;
            foreach (string c in conns)
            {
                if (c == String.Empty)
                {
                    continue;
                }

                string configName = String.Empty;
                string conn       = c;
                uint   port       = 0;

                string[] split1 = conn.Split(new char[] { '/' });
                if (split1.Length > 1)
                {
                    conn = split1[1];

                    string[] split2 = split1[0].Split(new char[] { '@' });
                    if (split2.Length > 1)
                    {
                        configName = split2[0];
                        port       = Convert.ToUInt32(split2[1]);
                    }
                    else
                    {
                        port = Convert.ToUInt32(split1[0]);
                    }
                }
                string[] parts        = conn.Split(new char[] { ':' });
                string   friendlyName = parts[0];
                if (parts.Length > 1)
                {
                    friendlyName = parts[1];
                }

                IHttpServer server;

                if (port != 0)
                {
                    server = MainServer.GetHttpServer(port);
                }
                else
                {
                    server = MainServer.Instance;
                }

                m_log.InfoFormat("[SERVER]: Loading {0} on port {1}", friendlyName, server.Port);

                IServiceConnector connector = null;

                Object[] modargs = new Object[] { m_Server.Config, server, configName };
                connector = ServerUtils.LoadPlugin <IServiceConnector>(conn, modargs);

                if (connector == null)
                {
                    modargs   = new Object[] { m_Server.Config, server };
                    connector = ServerUtils.LoadPlugin <IServiceConnector>(conn, modargs);
                }

                if (connector != null)
                {
                    m_ServiceConnectors.Add(connector);
                    m_log.InfoFormat("[SERVER]: {0} loaded successfully", friendlyName);
                }
                else
                {
                    m_log.ErrorFormat("[SERVER]: Failed to load {0}", conn);
                }
            }

            loader = new PluginLoader(m_Server.Config, registryLocation);

            int res = m_Server.Run();

            Environment.Exit(res);

            return(0);
        }
Пример #6
0
 /// <summary>
 /// Method called on server stop click.
 /// </summary>
 /// <param name="sender">The sender of the event.</param>
 /// <param name="e">The routed event arguments.</param>
 private void OnServerStop_Click(object sender, RoutedEventArgs e)
 {
     HttpServerBase.Stop();
 }
Пример #7
0
 /// <summary>
 /// Method called on server start click.
 /// </summary>
 /// <param name="sender">The <see cref="object"/> sender of the event.</param>
 /// <param name="e">The routed event arguments <see cref="RoutedEventArgs"/>.</param>
 private void ServerStart_Click(object sender, RoutedEventArgs e)
 {
     HttpServerBase.Start();
 }
Пример #8
0
 /// <summary>
 /// Method called on remove server from firwall click.
 /// </summary>
 /// <param name="sender">The <see cref="object"/> sender of the event.</param>
 /// <param name="e">The routed event arguments <see cref="RoutedEventArgs"/>.</param>
 private void OnServerRemoveFromFirewall_Click(object sender, RoutedEventArgs e)
 => HttpServerBase.RemoveNetworkAcl();
Пример #9
0
 /// <summary>
 /// Method called on add server to firewall click.
 /// </summary>
 /// <param name="sender">The <see cref="object"/> sender of the event.</param>
 /// <param name="e">The routed event arguments <see cref="RoutedEventArgs"/>.</param>
 private void OnServerAddToFirewall_Click(object sender, RoutedEventArgs e)
 => HttpServerBase.AddNetworkAcl();