Able to change gateway if device has both DHCP and ethernet, but the ethernet is the one plugged in.

This commit is contained in:
Tim Young 2018-10-23 08:25:04 -05:00
parent 2b92fea4cb
commit facd5d1ea1
2 changed files with 17 additions and 4 deletions

View File

@ -487,7 +487,7 @@ namespace EduNetworkBuilder
if (NB.GetComponentType(ClonedItem) == GeneralComponentType.device) if (NB.GetComponentType(ClonedItem) == GeneralComponentType.device)
{ {
NetworkDevice nd = (NetworkDevice)ClonedItem; NetworkDevice nd = (NetworkDevice)ClonedItem;
if (nd.HasDHCPNic()) if (!nd.HasNonDHCPConnected() && nd.HasDHCPNic())
{ {
MessageBox.Show(NB.Translate("DC_CannotEditGateway_DHCP")); MessageBox.Show(NB.Translate("DC_CannotEditGateway_DHCP"));
} }

View File

@ -378,9 +378,8 @@ namespace EduNetworkBuilder
public NB_IPAddress GetGateway() public NB_IPAddress GetGateway()
{ {
if(CanUseDHCP) if(!HasNonDHCPConnected() && CanUseDHCP)
{ {
foreach(NetworkCard nic in NICs) foreach(NetworkCard nic in NICs)
{ {
if(nic.UsesDHCP) if(nic.UsesDHCP)
@ -3364,6 +3363,20 @@ namespace EduNetworkBuilder
return false; return false;
} }
/// <summary>
/// Return true if this device has at least one nic that can be configured from DHCP
/// </summary>
/// <returns>True if the device has a nic that can be configured with DHCP</returns>
public bool HasNonDHCPConnected()
{
foreach (NetworkCard card in NICs)
{
if (!card.UsesDHCP && card.ConnectedTo() != null)
return true;
}
return false;
}
public bool HasLocalNic(NB_IPAddress dest) public bool HasLocalNic(NB_IPAddress dest)
{ {
foreach(NetworkCard nic in NICs) foreach(NetworkCard nic in NICs)