Esempio n. 1
0
 public void NotifyActivity(Guid guid, Program.LogEntry entry, ProgramID progID, List <String> services = null, bool update = false)
 {
     Engine.FwEventArgs args = new Engine.FwEventArgs()
     {
         guid     = guid,
         entry    = entry,
         progID   = progID,
         services = services,
         update   = update
     };
     SendPushNotification("ActivityNotification", args);
 }
Esempio n. 2
0
        /*private bool TestEntry(ProgramSet prog, Program.LogEntry entry)
         * {
         *  switch (mConTypes)
         *  {
         *      case ConTypes.Allowed: if (entry.FwEvent.Action != FirewallRule.Actions.Allow) return false; break;
         *      case ConTypes.Blocked: if (entry.FwEvent.Action != FirewallRule.Actions.Block) return false; break;
         *  }
         *
         *  if (chkNoLocal.IsChecked == true && (NetFunc.IsLocalHost(entry.FwEvent.RemoteAddress) || NetFunc.IsMultiCast(entry.FwEvent.RemoteAddress)))
         *      return false;
         *
         *  if (chkNoLAN.IsChecked == true && FirewallRule.MatchAddress(entry.FwEvent.RemoteAddress, "LocalSubnet"))
         *      return false;
         *
         *  if (FirewallPage.DoFilter(mConFilter, prog.config.Name, new List<ProgramID>() { entry.ProgID }))
         *      return false;
         *
         *  return true;
         * }*/

        public void AddEntry(ProgramSet prog, Program program, Engine.FwEventArgs args)
        {
            //if (!TestEntry(prog, args.entry))
            //    return;

            if (args.update)
            {
                foreach (LogItem Item in LogList)
                {
                    if (Item.entry.guid.Equals(args.entry.guid))
                    {
                        Item.Update(args.entry);
                        return;
                    }
                }
            }

            LogList.Insert(0, new LogItem(args.entry, program != null ? program.Description : null));

            while (LogList.Count > logLimit)
            {
                LogList.RemoveAt(logLimit);
            }
        }
Esempio n. 3
0
        public void Add(ProgramSet progs, Engine.FwEventArgs args)
        {
            ProgramID id   = args.entry.ProgID;
            Program   prog = null;

            if (!progs.Programs.TryGetValue(id, out prog))
            {
                return;
            }

            Tuple <Program, List <Engine.FwEventArgs> > list;

            if (!mEvents.TryGetValue(id, out list))
            {
                if (args.update)
                {
                    return;
                }

                list = new Tuple <Program, List <Engine.FwEventArgs> >(prog, new List <Engine.FwEventArgs>());
                mEvents.Add(id, list);
                mEventList.Add(id);
            }

            if (args.update)
            {
                foreach (var oldEntry in list.Item2)
                {
                    if (oldEntry.entry.guid.Equals(args.entry.guid))
                    {
                        oldEntry.entry.Update(args.entry);
                        break;
                    }
                }
            }
            else
            {
                list.Item2.Add(args);
            }

            int oldIndex = curIndex;

            if (curIndex < 0)
            {
                curIndex = 0;
            }
            else if (curIndex >= mEventList.Count)
            {
                curIndex = mEventList.Count - 1;
            }

            UpdateIndex();

            // don't update if the event is for a different entry
            int index = mEventList.FindIndex((x) => { return(id.CompareTo(x) == 0); });

            if (curIndex != index)
            {
                return;
            }

            LoadCurrent(oldIndex == curIndex);
        }