From 322b14a608b2497b65f99730d7b90ef744cee1d3 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Sat, 22 Aug 2015 14:23:50 -0700 Subject: [PATCH] Fixed glitch with finding best wireless --- EduNetworkBuilder/Network.cs | 4 +++- EduNetworkBuilder/NetworkDevice.cs | 15 ++++++++++++++- EduNetworkBuilder/NetworkLink.cs | 5 ++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/EduNetworkBuilder/Network.cs b/EduNetworkBuilder/Network.cs index c39bcb6..e3149e3 100644 --- a/EduNetworkBuilder/Network.cs +++ b/EduNetworkBuilder/Network.cs @@ -177,6 +177,8 @@ namespace EduNetworkBuilder break; } } + DoAllVerifyLinks(); + DoAllAutoJoin(); } if (NetMessage.GetText() != "" && !AlreadyDisplayedMessage) { @@ -1134,7 +1136,7 @@ namespace EduNetworkBuilder if(answer != null) { double tdist = distance(starting, checking); - if(tdist < l_distance) + if(tdist < l_distance && tdist < NB.WirelessMaxUnsuccessfulLink) { l_distance = tdist; found = answer; diff --git a/EduNetworkBuilder/NetworkDevice.cs b/EduNetworkBuilder/NetworkDevice.cs index 6a87021..44c587d 100644 --- a/EduNetworkBuilder/NetworkDevice.cs +++ b/EduNetworkBuilder/NetworkDevice.cs @@ -676,7 +676,8 @@ namespace EduNetworkBuilder tryit = false; if (nic.GetNicType != NicType.wlan) continue; if (nic.SSID == "") continue; - if (!nic.isConnected(false)) tryit = true; + if (!nic.isConnected(false)) + tryit = true; if(!tryit) { //Check distance @@ -692,11 +693,23 @@ namespace EduNetworkBuilder //Tryit tells us if we should try to reconnect. if (tryit) { + if(nic.isConnected(false)) + { + //remove old connection + NetworkLink oNL = myNet.GetLinkFromID(nic.ConnectedLink); + if(oNL != null) + { + myNet.RemoveComponent(oNL); + oNL.Destroy(); + } + } //We want to find the closest device with an open wport that matches ssid/key and connect to it. NetworkCard Closest = myNet.BestWirelessLinkForDevice(nic); if(Closest != null) { NetworkLink newLink = new NetworkLink(nic.myID, Closest.myID, LinkType.wireless); + nic.ConnectedLink = newLink.GetUniqueIdentifier; + Closest.ConnectedLink = newLink.GetUniqueIdentifier; myNet.AddItem(newLink); didsomething = true; } diff --git a/EduNetworkBuilder/NetworkLink.cs b/EduNetworkBuilder/NetworkLink.cs index f1b32fc..100bba0 100644 --- a/EduNetworkBuilder/NetworkLink.cs +++ b/EduNetworkBuilder/NetworkLink.cs @@ -117,13 +117,12 @@ namespace EduNetworkBuilder public override void Save(XmlWriter writer) { writer.WriteStartElement("link"); - SrcNic.Save(writer,"SrcNic"); - DstNic.Save(writer,"DstNic"); + SrcNic.Save(writer, "SrcNic"); + DstNic.Save(writer, "DstNic"); writer.WriteElementString("hostname", hostname); writer.WriteElementString("linktype", theLinkType.ToString()); writer.WriteElementString("uniqueidentifier", UniqueIdentifier.ToString()); writer.WriteEndElement(); - }