[RFC] netconfig: Global option to send hostname with dhcp request for all networks
Bryce Johnson <[email protected]>
| Newsgroups | dev.linux.lists.iwd |
|---|---|
| Message-ID | <CADXxVS+UQfrbWFfsDnW1QvkpvmEnkxMdv+OPBy=XpPXEFdcU8Q@mail.gmail.com> |
Add global option to send hostname with dhcp always with
[IPv4].SendHostnameAlways so the first DHCP request will include the
hostname on first connection and don't need to modify the .psk files
to add SendHostname after they are created.
---
diff --git a/src/iwd.config.rst b/src/iwd.config.rst
index 4ba7b4e7..4f473e07 100644
--- a/src/iwd.config.rst
+++ b/src/iwd.config.rst
@@ -429,6 +429,11 @@ The group ``[IPv4]`` contains settings related to
IPv4 network configuration.
will limit the number of access points that can be running
simultaneously on different interfaces.
+ * - SendHostnameAlways
+ - Values: true, **false**
+
+ Always send the hostname in the DHCP request for all networks.
+
DriverQuirks
------------
diff --git a/src/netconfig.c b/src/netconfig.c
index cd19217c..5959a5ac 100644
--- a/src/netconfig.c
+++ b/src/netconfig.c
@@ -375,7 +375,9 @@ gateway:
}
send_hostname:
- if (l_settings_has_key(active_settings, "IPv4", "SendHostname") &&
+ l_settings_get_bool(iwd_get_config(), "IPv4",
"SendHostnameAlways", &send_hostname);
+
+ if (!send_hostname && l_settings_has_key(active_settings, "IPv4",
"SendHostname") &&
!l_settings_get_bool(active_settings, "IPv4",
"SendHostname",
&send_hostname)) {
@@ -391,13 +393,20 @@ send_hostname:
goto mdns;
}
- if (send_hostname &&
- !l_netconfig_set_hostname(netconfig->nc, hostname)) {
- l_error("netconfig: l_netconfig_set_hostname() failed");
- success = false;
- goto mdns;
+ if (send_hostname) {
+ if (!l_netconfig_set_hostname(netconfig->nc, hostname)) {
+ l_error("netconfig: l_netconfig_set_hostname() failed");
+ success = false;
+ } else {
+ l_debug("netconfig: Hostname '%s' will be sent in DHCP
requests", hostname);
+ }
+ } else {
+ l_debug("netconfig: No hostname will be sent in DHCP requests");
}
+ goto mdns;
+
+
mdns:
/* If the networks has this set take that over the global */
if (l_settings_has_key(active_settings, "Network", "MulticastDNS")) {