diff --git a/Cargo.lock b/Cargo.lock
index c7fe20e..92e659a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1142,6 +1142,17 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "hostname"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "windows 0.52.0",
+]
+
[[package]]
name = "humantime"
version = "2.1.0"
@@ -1241,6 +1252,7 @@ dependencies = [
"futures-core",
"glib-build-tools",
"gtk4",
+ "hostname 0.4.0",
"keycode",
"libadwaita",
"libc",
@@ -1259,7 +1271,7 @@ dependencies = [
"wayland-protocols",
"wayland-protocols-misc",
"wayland-protocols-wlr",
- "windows",
+ "windows 0.54.0",
"x11",
]
@@ -1733,7 +1745,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
dependencies = [
- "hostname",
+ "hostname 0.3.1",
"quick-error",
]
@@ -2331,13 +2343,32 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+[[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-targets 0.52.4",
+]
+
[[package]]
name = "windows"
version = "0.54.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
dependencies = [
- "windows-core",
+ "windows-core 0.54.0",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
"windows-targets 0.52.4",
]
diff --git a/Cargo.toml b/Cargo.toml
index 584fd98..f09c21c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -33,6 +33,7 @@ async-channel = { version = "2.1.1", optional = true }
keycode = "0.4.0"
once_cell = "1.19.0"
num_enum = "0.7.2"
+hostname = "0.4.0"
[target.'cfg(unix)'.dependencies]
libc = "0.2.148"
diff --git a/resources/client_row.ui b/resources/client_row.ui
index ecb44e6..2bdd726 100644
--- a/resources/client_row.ui
+++ b/resources/client_row.ui
@@ -11,6 +11,16 @@
enable
+
+
+
+
+
+
diff --git a/src/frontend/gtk.rs b/src/frontend/gtk.rs
index 2664c8c..a074aa4 100644
--- a/src/frontend/gtk.rs
+++ b/src/frontend/gtk.rs
@@ -12,8 +12,7 @@ use crate::frontend::gtk::window::Window;
use adw::Application;
use gtk::{
- gdk::Display, glib::clone, prelude::*, subclass::prelude::ObjectSubclassIsExt,
- IconTheme,
+ gdk::Display, glib::clone, prelude::*, subclass::prelude::ObjectSubclassIsExt, IconTheme,
};
use gtk::{gio, glib, prelude::ApplicationExt};
diff --git a/src/frontend/gtk/client_row/imp.rs b/src/frontend/gtk/client_row/imp.rs
index 35c0927..d6dead2 100644
--- a/src/frontend/gtk/client_row/imp.rs
+++ b/src/frontend/gtk/client_row/imp.rs
@@ -14,6 +14,8 @@ pub struct ClientRow {
#[template_child]
pub enable_switch: TemplateChild,
#[template_child]
+ pub dns_button: TemplateChild,
+ #[template_child]
pub hostname: TemplateChild,
#[template_child]
pub port: TemplateChild,
@@ -76,6 +78,11 @@ impl ClientRow {
true // dont run default handler
}
+ #[template_callback]
+ fn handle_request_dns(&self) -> bool {
+ false
+ }
+
#[template_callback]
fn handle_client_delete(&self, _button: &Button) {
log::debug!("delete button pressed -> requesting delete");
diff --git a/src/frontend/gtk/window/imp.rs b/src/frontend/gtk/window/imp.rs
index de3ecf5..74c0591 100644
--- a/src/frontend/gtk/window/imp.rs
+++ b/src/frontend/gtk/window/imp.rs
@@ -8,7 +8,8 @@ use std::os::unix::net::UnixStream;
use adw::subclass::prelude::*;
use adw::{prelude::*, ActionRow, ToastOverlay};
use glib::subclass::InitializingObject;
-use gtk::{gio, glib, Button, CompositeTemplate, Entry, ListBox};
+use gtk::glib::clone;
+use gtk::{gdk, gio, glib, Button, CompositeTemplate, Entry, Label, ListBox};
use crate::config::DEFAULT_PORT;
@@ -26,6 +27,8 @@ pub struct Window {
#[template_child]
pub port_entry: TemplateChild,
#[template_child]
+ pub hostname_label: TemplateChild