Ejemplo n.º 1
0
 /// <summary>
 /// Start generic ipban service with callbacks. The service implementation should have already been created before this method is called.
 /// </summary>
 /// <param name="args">Args</param>
 /// <param name="start">Start callback, start your implementation running here</param>
 /// <param name="stop">Stop callback, stop your implementation running here</param>
 /// <param name="requireAdministrator">Whether administrator access is required</param>
 /// <returns>Task</returns>
 public static async Task MainService(string[] args, Func <string[], Task> start, Action stop, bool requireAdministrator = true)
 {
     try
     {
         using IPBanServiceRunner runner = new IPBanServiceRunner(args, start, stop);
         await runner.RunAsync(requireAdministrator);
     }
     catch (Exception ex)
     {
         ExtensionMethods.FileWriteAllTextWithRetry(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "startup_fail.txt"), ex.ToString());
         Logger.Fatal("Fatal error starting service", ex);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Run service helper method
        /// </summary>
        /// <param name="args">Args</param>
        /// <param name="onStart">Start</param>
        /// <param name="onStop">Stop</param>
        /// <param name="cancelToken">Cancel token</param>
        /// <returns>Task</returns>
#pragma warning disable IDE0060 // Remove unused parameter
        public static async Task MainService(string[] args, Func <Task> onStart, Func <Task> onStop = null, CancellationToken cancelToken = default)
#pragma warning restore IDE0060 // Remove unused parameter
        {
            try
            {
                using IPBanServiceRunner runner = new IPBanServiceRunner(onStart, onStop);
                await runner.RunAsync(cancelToken);
            }
            catch (Exception ex)
            {
                ExtensionMethods.FileWriteAllTextWithRetry(System.IO.Path.Combine(AppContext.BaseDirectory, "service_error.txt"), ex.ToString());
                Logger.Fatal("Fatal error running service", ex);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Run service helper method
        /// </summary>
        /// <param name="args">Args</param>
        /// <param name="onRun">Run</param>
        /// <param name="onStop">Stop</param>
        /// <returns>Task</returns>
#pragma warning disable IDE0060 // Remove unused parameter
        public static async Task <int> MainService(string[] args, Func <CancellationToken, Task> onRun, Func <CancellationToken, Task> onStop = null)
#pragma warning restore IDE0060 // Remove unused parameter
        {
            try
            {
                using IPBanServiceRunner runner = new IPBanServiceRunner(onRun, onStop);
                await runner.RunAsync();
            }
            catch (OperationCanceledException)
            {
                // don't care
            }
            catch (Exception ex)
            {
                ExtensionMethods.FileWriteAllTextWithRetry(System.IO.Path.Combine(AppContext.BaseDirectory, "service_error.txt"), ex.ToString());
                Logger.Fatal("Fatal error running service", ex);
                return(ex.HResult);
            }
            return(0);
        }