Beispiel #1
0
 public bool Save(Exception exception)
 {
     try
     {
         Save(FormatLogg(ToFriendlyError(exception)));
         return(true);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(false);
     }
     finally
     {
         OnNewLog?.Invoke(this, new CustomLoggArgs {
             Exception = exception
         });
     }
 }
Beispiel #2
0
 public bool Save(string message)
 {
     try
     {
         File.AppendAllText("Loggs.txt", message);
         return(true);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(false);
     }
     finally
     {
         OnNewLog?.Invoke(this, new CustomLoggArgs {
             Exception = new Exception(message)
         });
     }
 }
Beispiel #3
0
 public bool Save(Exception exception)
 {
     try
     {
         File.AppendAllText("Loggs.txt", FormatLogg(exception.ToFriendlyError()));
         return(true);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(false);
     }
     finally
     {
         OnNewLog?.Invoke(this, new CustomLoggArgs {
             Exception = exception
         });
     }
 }
        private void Setup()
        {
            Task.Run(async() =>
            {
                await Ping("Setup.1");
                Common.Logger.Info("Begin loading initial log data");
                Stopwatch stopwatch          = Stopwatch.StartNew();
                Task <List <Log> > cacheTask = GetCache();
                List <Log> cache             = cacheTask.GetAwaiter().GetResult();
                _data.Enqueue(cache);
                stopwatch.Stop();
                Common.Logger.Info("Initial log data loaded",
                                   new Fields {
                    { "Count", cache.Count }, { "Time (ms)", stopwatch.ElapsedMilliseconds }
                });
                OnNewLog?.Invoke(null);
            });

            OnConnected -= Setup;
        }
Beispiel #5
0
 private void RaiseNewLogEvent(Exception ex)
 {
     OnNewLog?.Invoke(this, new NewLogEventArgs(ex));
 }
Beispiel #6
0
 private void RaiseNewLogEvent(string log)
 {
     OnNewLog?.Invoke(this, new NewLogEventArgs(log));
 }
        private async void Read(string hostname)
        {
            while (true)
            {
                try
                {
                    _client = new TcpClient(hostname, 64417);
                    _stream = _client.GetStream();
                    _reader = new StreamReader(_stream);

                    if (!_connected)
                    {
                        OnConnected?.Invoke();
                    }
                    _connected = true;
                }
                catch (Exception e)
                {
                    Common.Logger.Warning("Failed to connect to server; retrying...", e: e,
                                          meta: new Fields {
                        { "Hostname", hostname }
                    });
                    Thread.Sleep(1000);

                    if (_connected)
                    {
                        OnDisconnected?.Invoke();
                    }
                    _connected = false;

                    continue;
                }

                try
                {
                    string line;
                    while ((line = (await _reader.ReadLineAsync()) !) != null)
                    {
                        string cmd = line.Contains(" ") ? line.Substring(0, line.IndexOf(" ", StringComparison.Ordinal)) : line;
                        string val = line.Substring(line.IndexOf(" ", StringComparison.Ordinal) + 1);

                        if (cmd != "query" && cmd != "gen_oui.gen_progress")
                        {
                            Common.Logger.Debug($"NetMgr <- {cmd}");
                        }

                        switch (cmd)
                        {
                        case "ping":
                            await Send("ping.pong");

                            break;

                        case "ping.pong":
                            _pongEvent.Release();
                            break;

                        case "get_cache.cache":
                            List <Log> logs = JsonConvert.DeserializeObject <List <Log> >(val);

                            await _cacheChannel.Writer.WriteAsync(logs);

                            break;

                        case "query":
                            Log log = JsonConvert.DeserializeObject <Log>(val);
                            Common.Logger.Debug($"Incoming: {log}");

                            _data.Enqueue(log);

                            OnNewLog?.Invoke(log);
                            break;

                        case "gen_rules.sources":
                        case "gen_rules.gen_progress":
                        case "gen_rules.save_progress":
                        case "gen_rules.saved_in":
                            OnGenRulesCallback?.Invoke(val);
                            break;

                        case "gen_rules.complete":
                            GeneratingRules = false;
                            OnGenRulesChange?.Invoke();
                            break;

                        case "gen_oui.gen_progress":
                            OnGenOUICallback?.Invoke(val);
                            break;

                        case "gen_oui.generated_in":
                            GeneratingOUI = false;
                            OnGenOUIChange?.Invoke();
                            break;

                        case "reload_config.complete":
                            _reloadConfigCompleteEvent.Release();
                            break;

                        case "reload_blacklist.reload_progress":
                        case "reload_blacklist.reloaded_in":
                            OnReloadBlacklistStatusCallback?.Invoke(val);
                            break;

                        case "reload_blacklist.contradb_offline":
                            ReloadingBlacklist = false;
                            OnReloadBlacklistErrorCallback?.Invoke(val);
                            OnReloadBlacklistChange?.Invoke();
                            break;

                        case "reload_blacklist.complete":
                            ReloadingBlacklist = false;
                            OnReloadBlacklistChange?.Invoke();
                            break;

                        case "reload_whitelist.complete":
                            ReloadingWhitelist = false;
                            OnReloadWhitelistChange?.Invoke();
                            break;

                        case "reload_whitelist.contradb_offline":
                        case "reload_whitelist.error":
                            ReloadingWhitelist = false;
                            OnReloadWhitelistErrorCallback?.Invoke(val);
                            OnReloadWhitelistChange?.Invoke();
                            break;

                        default:
                            Common.Logger.Error(
                                $"Unmatched command received from NetManagerClient: {cmd}",
                                new InvalidOperationException()
                                );
                            break;
                        }
                    }
                }
                catch (Exception e)
                {
                    Common.Logger.Warning("Failed to read from server; reconnecting...", e, new Fields {
                        { "Hostname", hostname }
                    });
                    Thread.Sleep(1000);

                    OnDisconnected?.Invoke();
                }
            }
        }