예제 #1
0
        /// <summary>
        /// Se encarga de poblar el listbox correspondiente al DNS
        /// </summary>
        /// <returns></returns>
        private int PoblarTabla_DNS()
        {
            IPAddressCollection ipDNS;

            if (bVersionIP == bWorking_IPv4)
            {
                ipDNS = nInterfaz.getDNSv4Address();
            }
            else
            {
                ipDNS = nInterfaz.getDNSv6Address();
            }

            list_dns.BeginUpdate();
            list_dns.Items.Clear();
            //SI, SOLO SI   la lista no esta vacia!
            if (ipDNS == null)
            {
                list_dns.Items.Add("No hay informacion");
                //Es peligroso si el usuario intenta anexar info
                //ya que estamos ante un potecial riesgo de daño
                panel_dns.Enabled = false;
                return(1);
            }
            else
            {
                for (int iC = 0; iC < ipDNS.Count; iC++)
                {
                    //Este conjunto de dirreciones pueden estar mezcladas en distintos
                    //protoclos L3 (IPv4 e IPv6) solo queremos un tipo y solo ese tipo
                    if (nInterfaz.ConfirmarTipoIP(ipDNS[iC], bVersionIP))
                    {
                        list_dns.Items.Add(ipDNS[iC].ToString());
                    }
                }
            }


            //Ahora, debemos decidir si el usuario puede o no editar esta informacion
            //regla basica: Si hay ip fija, el usuario puede editar
            if (bVersionIP == bWorking_IPv4)
            {
                if (!(nInterfaz.getisDHCPv4Enabled()) || bModificable_DHCP)
                {
                    panel_dns.Enabled = true;
                }
                else
                {
                    panel_dns.Enabled = false;
                }
            }
            else //IPv6
            if (!(nInterfaz.getisDHCPv6Enabled()) || bModificable_DHCP)
            {
                panel_dns.Enabled = true;
            }
            else
            {
                panel_dns.Enabled = false;
            }


            list_dns.Update();
            list_dns.ClearSelected();
            list_dns.EndUpdate();

            return(1);
        }