diff --git a/EduNetworkBuilder/ActionClass.cs b/EduNetworkBuilder/ActionClass.cs index 0868196..25fc6e7 100644 --- a/EduNetworkBuilder/ActionClass.cs +++ b/EduNetworkBuilder/ActionClass.cs @@ -340,6 +340,12 @@ namespace EduNetworkBuilder if (NB.DebugActions) { Console.WriteLine("Powering on: " + source.hostname); } //We might see about exploding the device here. break; + case NBAction.reset: + source.ClearIPs(); //reset the device - IPs and VLANs + if (NB.DebugActions) { Console.WriteLine("Resetting: " + source.hostname); } + //We might see about exploding the device here. + break; + } } } diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs index 62008bf..86c5927 100644 --- a/EduNetworkBuilder/NB.cs +++ b/EduNetworkBuilder/NB.cs @@ -106,7 +106,7 @@ namespace EduNetworkBuilder StaticRouteCorrupt, VLANChange, VPNChangeEndpoint, VPNChangeKey, BreakDevice } public enum NBAction { none, newdevice, changelocation, changecomponent, deletecomponent, ping, traceroute, arp, cleararp, dhcp, - replaceUPS, replace, poweroff, poweron, + replaceUPS, replace, poweroff, poweron, reset, } [Serializable] @@ -1529,6 +1529,16 @@ namespace EduNetworkBuilder AC.DoAction(); } + public static void DoActionResetDevice(int HostID) + { + ActionClass AC = new ActionClass(); + AC.Action = NBAction.reset; + AC.SourceID = HostID; + + RegisterAction(AC); + + AC.DoAction(); + } public static void DoActionReplaceDeviceUPS(int HostID) { ActionClass AC = new ActionClass(); diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs index 25818ea..a3c4901 100644 --- a/EduNetworkBuilder/NetworkBuilder.cs +++ b/EduNetworkBuilder/NetworkBuilder.cs @@ -1350,7 +1350,8 @@ namespace EduNetworkBuilder private void pbNetworkView_Reset_Click(object sender, EventArgs e) { if (ItemClickedOn == null) return; - ItemClickedOn.ClearIPs(); //reset the device + //ItemClickedOn.ClearIPs(); //reset the device + NB.DoActionResetDevice(ItemClickedOn.GetUniqueIdentifier); UpdateVisuals(); } diff --git a/EduNetworkBuilder/NetworkCard.cs b/EduNetworkBuilder/NetworkCard.cs index b0ec504..e175f43 100644 --- a/EduNetworkBuilder/NetworkCard.cs +++ b/EduNetworkBuilder/NetworkCard.cs @@ -917,7 +917,8 @@ namespace EduNetworkBuilder { if (myNicType != NicType.lo) { - nf.myIP = new NB_IPAddress(NB.ZeroIPString); + if(myNicType != NicType.port) + nf.myIP = new NB_IPAddress(NB.ZeroIPString); //do not do this for ports (have no IP) nf.SetVLANTag(1, VLANTagType.Untagged); } } diff --git a/EduNetworkBuilder/NetworkDevice.cs b/EduNetworkBuilder/NetworkDevice.cs index bdce6da..97b304c 100644 --- a/EduNetworkBuilder/NetworkDevice.cs +++ b/EduNetworkBuilder/NetworkDevice.cs @@ -3138,7 +3138,7 @@ namespace EduNetworkBuilder } /// - /// Clear out all the IP addresses on the device + /// Clear out all the IP addresses and VLANs on the device /// public void ClearIPs() { @@ -3147,8 +3147,7 @@ namespace EduNetworkBuilder DefaultGW = new NB_IPAddress(NB.ZeroIPString); foreach(NetworkCard nic in NICs) { - if(nic.GetNicType != NicType.port) - nic.ClearIPs(); + nic.ClearIPs(); //Clear IPs and reset all vlans. } }