/// <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); }