diff --git a/windows/WinUI/APIHandler.cs b/windows/WinUI/APIHandler.cs
index 6a944f0f0..7192f3f2f 100644
--- a/windows/WinUI/APIHandler.cs
+++ b/windows/WinUI/APIHandler.cs
@@ -272,7 +272,7 @@ namespace WinUI
}
}
- public void JoinNetwork(Dispatcher d, string nwid, bool allowManaged = true, bool allowGlobal = false, bool allowDefault = false)
+ public void JoinNetwork(Dispatcher d, string nwid, bool allowManaged = true, bool allowGlobal = false, bool allowDefault = false, bool allowDNS = false)
{
Task.Factory.StartNew(() =>
{
@@ -291,7 +291,8 @@ namespace WinUI
{
string json = "{\"allowManaged\":" + (allowManaged ? "true" : "false") + "," +
"\"allowGlobal\":" + (allowGlobal ? "true" : "false") + "," +
- "\"allowDefault\":" + (allowDefault ? "true" : "false") + "}";
+ "\"allowDefault\":" + (allowDefault ? "true" : "false") + "," +
+ "\"allowDNS\":" + (allowDNS ? "true" : "false") + "}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
diff --git a/windows/WinUI/JoinNetworkView.xaml b/windows/WinUI/JoinNetworkView.xaml
index 1cd1e98d8..9898f020a 100644
--- a/windows/WinUI/JoinNetworkView.xaml
+++ b/windows/WinUI/JoinNetworkView.xaml
@@ -10,7 +10,8 @@
-
+
+
diff --git a/windows/WinUI/JoinNetworkView.xaml.cs b/windows/WinUI/JoinNetworkView.xaml.cs
index 0b4ac3245..9a0d4d350 100644
--- a/windows/WinUI/JoinNetworkView.xaml.cs
+++ b/windows/WinUI/JoinNetworkView.xaml.cs
@@ -117,8 +117,9 @@ namespace WinUI
bool allowDefault = allowDefaultCheckbox.IsChecked.Value;
bool allowGlobal = allowGlobalCheckbox.IsChecked.Value;
bool allowManaged = allowManagedCheckbox.IsChecked.Value;
+ bool allowDNS = allowDNSCheckbox.IsChecked.Value;
- APIHandler.Instance.JoinNetwork(this.Dispatcher, joinNetworkBox.Text, allowManaged, allowGlobal, allowDefault);
+ APIHandler.Instance.JoinNetwork(this.Dispatcher, joinNetworkBox.Text, allowManaged, allowGlobal, allowDefault, allowDNS);
Close();
}
diff --git a/windows/WinUI/NetworkInfoView.xaml b/windows/WinUI/NetworkInfoView.xaml
index 6b32569e7..617c3893e 100644
--- a/windows/WinUI/NetworkInfoView.xaml
+++ b/windows/WinUI/NetworkInfoView.xaml
@@ -29,6 +29,7 @@
+
@@ -54,8 +55,9 @@
-
-
+
+
+
@@ -68,10 +70,11 @@
+
+
+
-
-
-
+
diff --git a/windows/WinUI/NetworkInfoView.xaml.cs b/windows/WinUI/NetworkInfoView.xaml.cs
index 51f767530..1a06f81c0 100644
--- a/windows/WinUI/NetworkInfoView.xaml.cs
+++ b/windows/WinUI/NetworkInfoView.xaml.cs
@@ -36,6 +36,8 @@ namespace WinUI
allowGlobal.Unchecked += AllowGlobal_CheckStateChanged;
allowManaged.Checked += AllowManaged_CheckStateChanged;
allowManaged.Unchecked += AllowManaged_CheckStateChanged;
+ allowDNS.Checked += AllowDNS_CheckStateChanged;
+ allowDNS.Unchecked += AllowDNS_CheckStateChanged;
}
private void UpdateNetworkData()
@@ -79,6 +81,7 @@ namespace WinUI
this.allowDefault.IsChecked = network.AllowDefault;
this.allowGlobal.IsChecked = network.AllowGlobal;
this.allowManaged.IsChecked = network.AllowManaged;
+ this.allowDNS.IsChecked = network.AllowDNS;
this.connectedCheckBox.Checked -= connectedCheckBox_Checked;
this.connectedCheckBox.Unchecked -= connectedCheckbox_Unchecked;
@@ -116,7 +119,8 @@ namespace WinUI
APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId,
allowManaged.IsChecked ?? false,
allowGlobal.IsChecked ?? false,
- allowDefault.IsChecked ?? false);
+ allowDefault.IsChecked ?? false,
+ allowDNS.IsChecked ?? false);
}
private void AllowGlobal_CheckStateChanged(object sender, RoutedEventArgs e)
@@ -125,7 +129,8 @@ namespace WinUI
APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId,
allowManaged.IsChecked ?? false,
allowGlobal.IsChecked ?? false,
- allowDefault.IsChecked ?? false);
+ allowDefault.IsChecked ?? false,
+ allowDNS.IsChecked ?? false);
}
private void AllowDefault_CheckStateChanged(object sender, RoutedEventArgs e)
@@ -134,7 +139,18 @@ namespace WinUI
APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId,
allowManaged.IsChecked ?? false,
allowGlobal.IsChecked ?? false,
- allowDefault.IsChecked ?? false);
+ allowDefault.IsChecked ?? false,
+ allowDNS.IsChecked ?? false);
+ }
+
+ private void AllowDNS_CheckStateChanged(object sender, RoutedEventArgs e)
+ {
+ CheckBox cb = sender as CheckBox;
+ APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId,
+ allowManaged.IsChecked ?? false,
+ allowGlobal.IsChecked ?? false,
+ allowDefault.IsChecked ?? false,
+ allowDNS.IsChecked ?? false);
}
private void connectedCheckBox_Checked(object sender, RoutedEventArgs e)
@@ -154,8 +170,9 @@ namespace WinUI
bool global = allowGlobal.IsChecked.Value;
bool managed = allowManaged.IsChecked.Value;
bool defRoute = allowDefault.IsChecked.Value;
+ bool dns = allowDNS.IsChecked.Value;
- APIHandler.Instance.JoinNetwork(this.Dispatcher, networkId.Text, managed, global, defRoute);
+ APIHandler.Instance.JoinNetwork(this.Dispatcher, networkId.Text, managed, global, defRoute, dns);
}
else
{
diff --git a/windows/WinUI/ZeroTierNetwork.cs b/windows/WinUI/ZeroTierNetwork.cs
index d6802385d..950d4ffad 100644
--- a/windows/WinUI/ZeroTierNetwork.cs
+++ b/windows/WinUI/ZeroTierNetwork.cs
@@ -30,6 +30,7 @@ namespace WinUI
private bool allowManaged;
private bool allowGlobal;
private bool allowDefault;
+ private bool allowDNS;
private bool isConnected;
protected ZeroTierNetwork(SerializationInfo info, StreamingContext ctx)
@@ -53,6 +54,7 @@ namespace WinUI
AllowManaged = info.GetBoolean("allowManaged");
AllowGlobal = info.GetBoolean("allowGlobal");
AllowDefault = info.GetBoolean("allowDefault");
+ AllowDNS = info.GetBoolean("allowDNS");
}
catch { }
IsConnected = false;
@@ -79,6 +81,7 @@ namespace WinUI
info.AddValue("allowManaged", AllowManaged);
info.AddValue("allowGlobal", AllowGlobal);
info.AddValue("allowDefault", AllowDefault);
+ info.AddValue("allowDNS", AllowDNS);
}
public void UpdateNetwork(ZeroTierNetwork network)
@@ -165,6 +168,11 @@ namespace WinUI
AllowDefault = network.AllowDefault;
}
+ if (AllowDNS != network.AllowDNS)
+ {
+ AllowDNS = network.AllowDNS;
+ }
+
if (IsConnected != network.IsConnected)
{
IsConnected = network.IsConnected;
@@ -413,6 +421,20 @@ namespace WinUI
NotifyPropertyChanged();
}
}
+
+ [JsonProperty("allowDNS")]
+ public bool AllowDNS
+ {
+ get
+ {
+ return allowDNS;
+ }
+ set
+ {
+ allowDNS = value;
+ NotifyPropertyChanged();
+ }
+ }
public bool IsConnected
{