Пример #1
0
        protected override async void OnStartup(object sender, StartupEventArgs e)
        {
            base.OnStartup(sender, e);

            UnhandledExceptionLogging logging = Resolve <UnhandledExceptionLogging>();

            logging.CaptureUnhandledExceptions();
            logging.CaptureTaskExceptions();

            Resolve <ServicePointConfiguration>().Apply();

            AppConfig appConfig = Resolve <AppConfig>();

            Resolve <ILogger>().Info($"= Booting ProtonVPN version: {appConfig.AppVersion} os: {Environment.OSVersion.VersionString} {appConfig.OsBits} bit =");
            Resolve <LogCleaner>().Clean(appConfig.AppLogFolder, 30);
            LoadServersFromCache();

            RegisterMigrations(Resolve <AppSettingsStorage>(), Resolve <IEnumerable <IAppSettingsMigration> >());
            RegisterMigrations(Resolve <UserSettings>(), Resolve <IEnumerable <IUserSettingsMigration> >());
            Resolve <SyncedAutoStartup>().Sync();

            IncreaseAppStartCount();
            RegisterEvents();
            Resolve <Language>().Initialize(_args);
            await ShowInitialWindow();

            if (Resolve <IUserStorage>().User().Empty() || !await IsUserValid() || await SessionExpired())
            {
                ShowLoginForm();
                return;
            }

            Resolve <UserAuth>().InvokeAutoLoginEvent();
        }
Пример #2
0
 public WireGuardConnection(
     ILogger logger,
     ProtonVPN.Common.Configuration.Config config,
     IService wireGuardService,
     TrafficManager trafficManager,
     StatusManager statusManager,
     IX25519KeyGenerator x25519KeyGenerator)
 {
     _logger                      = logger;
     _config                      = config;
     _wireGuardService            = wireGuardService;
     _trafficManager              = trafficManager;
     _statusManager               = statusManager;
     _x25519KeyGenerator          = x25519KeyGenerator;
     _trafficManager.TrafficSent += OnTrafficSent;
     _statusManager.StateChanged += OnStateChanged;
     _connectAction               = new SingleAction(ConnectAction);
     _connectAction.Completed    += OnConnectActionCompleted;
     _disconnectAction            = new SingleAction(DisconnectAction);
     _disconnectAction.Completed += OnDisconnectActionCompleted;
 }
Пример #3
0
        private async Task StartService(IConcurrentService service)
        {
            Result result = await service.StartAsync();

            if (result.Failure)
            {
                ReportException(result.Exception);

                AppConfig config   = Resolve <AppConfig>();
                string    filename = config.ErrorMessageExePath;
                string    error    = GetServiceErrorMessage(service.Name, result.Exception);
                try
                {
                    Resolve <IOsProcesses>().Process(filename, error).Start();
                }
                catch (Exception e)
                {
                    string serviceName = Path.GetFileNameWithoutExtension(filename);
                    Resolve <ILogger>().Error($"Failed to start {serviceName} process: {e.CombinedMessage()}");
                    ReportException(e);
                }
            }
        }
Пример #4
0
 public WireGuardService(ILogger logger, ProtonVPN.Common.Configuration.Config config, IService origin)
 {
     _logger = logger;
     _config = config;
     _origin = origin;
 }