Example #1
0
        public byte[] GetBytes()
        {
            List <byte> list = new List <byte>();

            list.Add((byte)ObjType);
            list.AddRange(RemoteIP.GetAddressBytes());
            list.AddRange(BitConverter.GetBytes(RemotePort));
            list.AddRange(Encoding.Unicode.GetBytes(RemoteName + SplitChar));
            list.AddRange(Encoding.Unicode.GetBytes(Message));//should contain a '\0' in the end
            return(list.ToArray());
        }
Example #2
0
        public void SetRule()
        {
            txtName.Text        = NameRule;
            txtDescription.Text = Description;
            if (State == "Yes")
            {
                ckState.Checked = true;
            }
            else
            {
                ckState.Checked = false;
            }
            if (Action == "Allow")
            {
                rbAllow.Checked = true;
            }
            else
            {
                rbBlock.Checked = true;
            }
            if (Program == "Any")
            {
                rbAllProgram.Checked = true;
                txtProgram.Enabled   = false;
                btnBrowes.Enabled    = false;
            }
            else
            {
                rbThisProgram.Checked = true;
                txtProgram.Text       = Program;
                btnBrowes.Enabled     = true;
            }
            switch (Profile)
            {
            case "Domain":
            {
                cbDomain.Checked  = true;
                cbPrivate.Checked = false;
                cbPublic.Checked  = false;
                break;
            }

            case "Domain, Private":
            {
                cbDomain.Checked  = true;
                cbPrivate.Checked = true;
                cbPublic.Checked  = false;
                break;
            }

            case "Domain, Private, Public":
            {
                cbDomain.Checked  = true;
                cbPrivate.Checked = true;
                cbPublic.Checked  = true;
                break;
            }

            case "Domain, Public":
            {
                cbDomain.Checked  = true;
                cbPrivate.Checked = false;
                cbPublic.Checked  = true;
                break;
            }

            case "Private":
            {
                cbDomain.Checked  = false;
                cbPrivate.Checked = true;
                cbPublic.Checked  = false;
                break;
            }

            case "Private, Public":
            {
                cbDomain.Checked  = false;
                cbPrivate.Checked = true;
                cbPublic.Checked  = true;
                break;
            }

            case "Public":
            {
                cbDomain.Checked  = false;
                cbPrivate.Checked = false;
                cbPublic.Checked  = true;
                break;
            }
            }
            cbProtocol.Text = Protocol;
            if (LocalPort == "Any")
            {
                cbLocalport.SelectedIndex = 0;
                txtLocalport.Enabled      = false;
            }
            else
            {
                cbLocalport.SelectedIndex = 1;
                txtLocalport.Enabled      = true;
                txtLocalport.Text         = LocalPort;
            }
            if (RemotePort == "Any")
            {
                cbRemoteport.SelectedIndex = 0;
                txtRemoteport.Enabled      = false;
            }
            else
            {
                cbRemoteport.SelectedIndex = 1;
                txtRemoteport.Enabled      = true;
                txtRemoteport.Text         = RemotePort;
            }
            if (LocalIP == "Any")
            {
                rbAllLocal.Checked   = true;
                btnAddLocal.Enabled  = false;
                btnEditLocal.Enabled = false;
                btnDelLocal.Enabled  = false;
            }
            else
            {
                rbIPLocal.Checked    = true;
                btnAddLocal.Enabled  = true;
                btnEditLocal.Enabled = false;
                btnDelLocal.Enabled  = false;
                string[] s = LocalIP.Split(',');
                for (int i = 0; i < s.Length; i++)
                {
                    listView1.Items.Add(s[i]);
                }
            }
            if (RemoteIP == "Any")
            {
                rbAllRemote.Checked   = true;
                btnAddRemote.Enabled  = false;
                btnEditRemote.Enabled = false;
                btnDelRemote.Enabled  = false;
            }
            else
            {
                rbIPLocal.Checked     = true;
                btnAddRemote.Enabled  = true;
                btnEditRemote.Enabled = false;
                btnDelRemote.Enabled  = false;
                string[] s = RemoteIP.Split(',');
                for (int i = 0; i < s.Length; i++)
                {
                    listView2.Items.Add(s[i]);
                }
            }
            var firewallRule = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));

            foreach (INetFwRule rule in firewallRule.Rules)
            {
                if (NameRule == rule.Name)
                {
                    string s = rule.Grouping;
                    if (s != null)
                    {
                        txtName.ReadOnly        = true;
                        txtDescription.ReadOnly = true;
                        rbAllProgram.Enabled    = false;
                        rbThisProgram.Enabled   = false;
                        txtProgram.ReadOnly     = true;
                        btnBrowes.Enabled       = false;
                        cbProtocol.Enabled      = false;
                        cbLocalport.Enabled     = false;
                        cbRemoteport.Enabled    = false;
                        txtLocalport.Enabled    = false;
                        txtRemoteport.Enabled   = false;
                    }
                    else
                    {
                        txtName.ReadOnly        = false;
                        txtDescription.ReadOnly = false;
                        rbAllProgram.Enabled    = true;
                        rbThisProgram.Enabled   = true;
                        txtProgram.ReadOnly     = false;
                        if (rbThisProgram.Checked == true)
                        {
                            btnBrowes.Enabled = true;
                        }
                    }
                }
            }
        }