Exemple #1
0
        private void btnApply_Click(object sender, RoutedEventArgs e)
        {
            ProgramList.ID id         = mEventList.ElementAt(curIndex);
            long           expiration = GetExpiration();

            Program.Config.AccessLevels NetAccess = (Program.Config.AccessLevels)(cmbAccess.SelectedItem as ComboBoxItem).Tag;

            if (NetAccess == Program.Config.AccessLevels.CustomConfig)
            {
                if (!MakeCustom(id, expiration))
                {
                    return;
                }
            }
            else if (NetAccess == Program.Config.AccessLevels.StopNotify)
            {
                Program prog = App.itf.GetProgram(id);

                if (expiration != 0)
                {
                    prog.config.SilenceUntill = expiration;
                }
                else
                {
                    prog.config.Notify = false;
                }
                App.itf.UpdateProgram(prog.guid, prog.config);
            }
            else
            {
                switch (NetAccess)
                {
                case Program.Config.AccessLevels.FullAccess:

                    // add and enable allow all rule
                    App.itf.UpdateRule(FirewallRule.MakeAllowRule(id, Firewall.Directions.Bidirectiona, expiration));
                    break;

                case Program.Config.AccessLevels.LocalOnly:

                    // create block rule only of we operate in blacklist mode
                    //if (App.itf.GetFilteringMode() == Firewall.FilteringModes.BlackList)
                    //{
                    //add and enable block rules for the internet
                    App.itf.UpdateRule(FirewallRule.MakeBlockInetRule(id, Firewall.Directions.Bidirectiona, expiration));
                    //}

                    //add and enable allow rules for the lan
                    App.itf.UpdateRule(FirewallRule.MakeAllowLanRule(id, Firewall.Directions.Bidirectiona, expiration));
                    break;

                case Program.Config.AccessLevels.BlockAccess:

                    // add and enable broad block rules
                    App.itf.UpdateRule(FirewallRule.MakeBlockRule(id, Firewall.Directions.Bidirectiona, expiration));
                    break;
                }
            }
            PopEntry();
        }
Exemple #2
0
        private void LoadCurrent(bool bUpdate = false)
        {
            if (!bUpdate)
            {
                Program.Config.AccessLevels NetAccess = Program.Config.AccessLevels.Unconfigured;

                cmbAccess.Background = ProgramControl.GetAccessColor(NetAccess);
                WpfFunc.CmbSelect(cmbAccess, NetAccess.ToString());
            }

            btnApply.IsEnabled = false;

            ProgramList.ID id = mEventList.ElementAt(curIndex);
            Tuple <Program, List <Program.LogEntry> > list = mEvents[id];

            int PID = list.Item2.Count > 0 ? list.Item2.First().PID : 0;

            imgIcon.Source = ImgFunc.GetIcon(list.Item1.GetIcon(), imgIcon.Width);
            //lblName.Text = id.GetDisplayName(false);
            grpBox.Header = id.GetDisplayName(false);
            lblPID.Text   = string.Format("{0} ({1})", System.IO.Path.GetFileName(id.Path), PID);
            switch (id.Type)
            {
            //case ProgramList.Types.Program: lblSubName.Text = ""; break;
            case ProgramList.Types.Service: lblSubName.Text = id.Name; break;

            case ProgramList.Types.App: lblSubName.Text = App.engine.appMgr.GetAppName(id.Name); break;

            default: lblSubName.Text = ""; break;
            }
            lblPath.Text = id.Path;

            /*lstEvents.Items.Clear();
             * foreach (Program.LogEntry entry in list.Item2)
             * {
             *  string info = "";
             *  info += NetFunc.Protocol2SStr(entry.Protocol) + "://";
             *
             *  switch (entry.Protocol)
             *  {
             *      case (int)FirewallRule.KnownProtocols.TCP:
             *      case (int)FirewallRule.KnownProtocols.UDP:
             *          info += entry.RemoteAddress + ":" + entry.RemotePort;
             *          break;
             *  }
             *
             *  lstEvents.Items.Add(new ListBoxItem() { Content = info});
             * }*/

            consGrid.Items.Clear();
            foreach (Program.LogEntry entry in list.Item2)
            {
                consGrid.Items.Insert(0, new ConEntry(entry));
            }
        }
Exemple #3
0
        //private Brush mBorderBrush;

        public static SolidColorBrush GetAccessColor(Program.Config.AccessLevels NetAccess)
        {
            switch (NetAccess)
            {
            case Program.Config.AccessLevels.FullAccess: return(new SolidColorBrush(Colors.LightGreen));

            case Program.Config.AccessLevels.CustomConfig: return(new SolidColorBrush(Colors.Gold));

            case Program.Config.AccessLevels.LocalOnly: return(new SolidColorBrush(Colors.LightSkyBlue));

            case Program.Config.AccessLevels.BlockAccess: return(new SolidColorBrush(Colors.LightPink));

            default: return(new SolidColorBrush(Colors.White));
            }
        }
Exemple #4
0
 private void cmbAccess_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     Program.Config.AccessLevels NetAccess = (Program.Config.AccessLevels)(cmbAccess.SelectedItem as ComboBoxItem).Tag;
     cmbAccess.Background = ProgramControl.GetAccessColor(NetAccess);
     btnApply.IsEnabled   = NetAccess != Program.Config.AccessLevels.Unconfigured;
 }