示例#1
0
        /// <summary>
        /// Se encarga de poblar el listbox correspondiente al WIN
        /// </summary>
        /// <returns></returns>
        private int PoblarTabla_WIN()
        {
            IPAddressCollection ipWINS;

            //WINS por el momento solo jala en IPv4
            //si aqui detectamos que la cosa murio tons
            // no hay que gastar mas recursos
            if (bVersionIP == bWorking_IPv4)
            {
                ipWINS = nInterfaz.getWINv4Address();
            }
            else if (bWINSv6)
            {
                ipWINS = nInterfaz.getWINSv6Address();
            }
            else
            {
                list_wins.Items.Add("No habilitado para IPv6");
                panel_wins.Enabled = false;
                return(1);
            }

            list_wins.BeginUpdate();

            list_wins.Items.Clear();
            //SI, SOLO SI   la lista no esta vacia!
            if (ipWINS == null)
            {
                list_wins.Items.Add("No hay informacion");
                //Es peligroso si el usuario intenta anexar info
                //ya que estamos ante un potecial riesgo de daño
                panel_wins.Enabled = false;
                return(1);
            }
            else
            {
                for (int iC = 0; iC < ipWINS.Count; iC++)
                {
                    //Este conjunto de dirreciones pueden estar mezcladas en distintos
                    //protoclos L3 (IPv4 e IPv6) solo queremos un tipo y solo ese tipo
                    //NOTA: En este caso, no existe (aun) un servidor WINS para IPv6
                    //if (bWINSv6 && !bVersionIP)
                    if (nInterfaz.ConfirmarTipoIP(ipWINS[iC], bVersionIP))
                    {
                        list_wins.Items.Add(ipWINS[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_wins.Enabled = true;
                }
                else
                {
                    panel_wins.Enabled = false;
                }
            }
            else if (!(nInterfaz.getisDHCPv6Enabled()) || bModificable_DHCP)
            {
                panel_wins.Enabled = true;
            }
            else
            {
                panel_wins.Enabled = false;
            }

            list_wins.Update();
            list_wins.ClearSelected();
            list_wins.EndUpdate();

            return(1);
        }