Beispiel #1
0
        public static void Main(string[] args)
        {
            using (IWindsorContainer container = new WindsorContainer())
            {
                XmlConfigurator.Configure(new FileInfo(args.Length < 2 ? LogConfigurationFile : args[1]));

                AuthConfig config = new AuthConfig();
                config.Initialize(new ConfigurationFileConfigurationProvider <AuthConfig>()
                {
                    ConfigurationFile = args.Length < 1 ? ConfigurationFile : args[0], ConfigurationSection = ConfigurationSection
                });

                container.Register(Component.For <AuthConsole>());
                container.Register(Component.For <AuthServer>());
                container.Register(Component.For <AuthConfig>().Instance(config));
                container.Register(Component.For <IRandomSource>().ImplementedBy <SecureRandom>());
                container.Register(Component.For <IWhisperComposerFactory <AuthRequest> >().ImplementedBy <AuthComposerFactory>());
                container.Register(Component.For <IWhisperRequestFactory <AuthRequest, AuthRequestOpcode> >().ImplementedBy <AuthRequestFactory>());

                container.Register(Component.For <IWhisperDatasource>().ImplementedBy <Datasource>()
                                   .DependsOn(Dependency.OnValue("address", config.AuthDatabaseAddress))
                                   .DependsOn(Dependency.OnValue("port", config.AuthDatabasePort))
                                   .DependsOn(Dependency.OnValue("database", config.AuthDatabaseName))
                                   .DependsOn(Dependency.OnValue("username", config.AuthDatabaseUser))
                                   .DependsOn(Dependency.OnValue("password", config.AuthDatabasePassword))
                                   );

                AuthConsole console = container.Resolve <AuthConsole>();
                console.Server.Setup(config.AuthDaemonBindAddress, config.AuthDaemonBindPort);
                console.Server.Start();
                console.Run();
                console.Server.Stop();
            }
        }
Beispiel #2
0
        public override void Initialize()
        {
            try
            {
                base.Initialize();
                ConsoleInterface = new AuthConsole();
                ConsoleBase.SetTitle($"#Stump Authentification Server - {Version}");

                logger.Info("Initializing Database...");
                DBAccessor = new DatabaseAccessor(DatabaseConfiguration);
                DBAccessor.RegisterMappingAssembly(Assembly.GetExecutingAssembly());
                InitializationManager.Initialize(InitializationPass.Database);
                DBAccessor.Initialize();

                logger.Info("Opening Database...");
                DBAccessor.OpenConnection();
                DataManager.DefaultDatabase   = DBAccessor.Database;
                DataManagerAllocator.Assembly = Assembly.GetExecutingAssembly();

                logger.Info("Register Messages...");
                MessageReceiver.Initialize();
                ProtocolTypeManager.Initialize();

                logger.Info("Register Packets Handlers...");
                HandlerManager = AuthPacketHandler.Instance;
                HandlerManager.RegisterAll(Assembly.GetExecutingAssembly());

                logger.Info("Register Commands...");
                CommandManager.RegisterAll(Assembly.GetExecutingAssembly());

                logger.Info("Start World Servers Manager");
                WorldServerManager.Instance.Initialize();

                logger.Info("Initialize Account Manager");
                AccountManager.Instance.Initialize();

                logger.Info("Initialize IPC Server..");
                IpcHost = new IPCHost(IpcAddress, IpcPort);

                InitializationManager.InitializeAll();
                IsInitialized = true;

                if (Environment.GetCommandLineArgs().Contains("-maintenance"))
                {
                    m_maintenanceMode = true;
                }
            }
            catch (Exception ex)
            {
                HandleCrashException(ex);
                Shutdown();
            }
        }