diff options
| author | Grant Limberg <grant.limberg@zerotier.com> | 2016-11-18 13:52:48 -0800 |
|---|---|---|
| committer | Grant Limberg <grant.limberg@zerotier.com> | 2016-11-18 13:52:48 -0800 |
| commit | e48d6880c92b87efb694798b43873dc07a570035 (patch) | |
| tree | 55e050bddd6ba6106902be4034d6fd70af023c27 /windows/WinUI/NetworkMonitor.cs | |
| parent | dbe1461886256bb5e9c1f7c6cb02525e57ee12c2 (diff) | |
| download | infinitytier-e48d6880c92b87efb694798b43873dc07a570035.tar.gz infinitytier-e48d6880c92b87efb694798b43873dc07a570035.zip | |
Wired up connected checkbox and delete button. just something not working with refresh.
Diffstat (limited to 'windows/WinUI/NetworkMonitor.cs')
| -rw-r--r-- | windows/WinUI/NetworkMonitor.cs | 58 |
1 files changed, 43 insertions, 15 deletions
diff --git a/windows/WinUI/NetworkMonitor.cs b/windows/WinUI/NetworkMonitor.cs index de5543f6..7743c5b9 100644 --- a/windows/WinUI/NetworkMonitor.cs +++ b/windows/WinUI/NetworkMonitor.cs @@ -68,9 +68,13 @@ namespace WinUI { var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); netList = (List<ZeroTierNetwork>)bformatter.Deserialize(stream); + stream.Close(); } - _knownNetworks = netList; + lock (_knownNetworks) + { + _knownNetworks = netList; + } } } @@ -86,28 +90,36 @@ namespace WinUI using (Stream stream = File.Open(dataFile, FileMode.OpenOrCreate)) { - var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); - bformatter.Serialize(stream, _knownNetworks); + lock (_knownNetworks) + { + var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); + bformatter.Serialize(stream, _knownNetworks); + stream.Flush(); + stream.Close(); + } } } private void apiNetworkCallback(List<ZeroTierNetwork> networks) { - _knownNetworks = _knownNetworks.Union(networks, new NetworkEqualityComparer()).ToList(); - - foreach (ZeroTierNetwork n in _knownNetworks) + lock (_knownNetworks) { - if (networks.Contains(n)) - { - n.IsConnected = true; - } - else + _knownNetworks = _knownNetworks.Union(networks, new NetworkEqualityComparer()).ToList(); + + foreach (ZeroTierNetwork n in _knownNetworks) { - n.IsConnected = false; + if (networks.Contains(n)) + { + n.IsConnected = true; + } + else + { + n.IsConnected = false; + } } - } - _nwCb(_knownNetworks); + _nwCb(_knownNetworks); + } writeNetworks(); } @@ -136,7 +148,7 @@ namespace WinUI } catch { - + Console.WriteLine("Monitor Thread Ended"); } } @@ -159,5 +171,21 @@ namespace WinUI { _nwCb -= cb; } + + public void RemoveNetwork(String networkID) + { + lock(_knownNetworks) + { + foreach (ZeroTierNetwork n in _knownNetworks) + { + if (n.NetworkId.Equals(networkID)) + { + _knownNetworks.Remove(n); + writeNetworks(); + break; + } + } + } + } } } |
