[pve-devel] [PATCH container v2 1/2] fix #7156: setup: separate dns list with semicolons
Maximiliano Sandoval
m.sandoval at proxmox.com
Thu Dec 18 16:01:24 CET 2025
Network Manager uses GLib's key file format [1]. While the format allows
either comma or semicolon-separated lists, this choice is global for the
key file and Network Manager declares that their key file uses the
later. As per `man 5 nm-settings-keyfile`:
> lists are separated by character ;
Additionally, tables 6 and 7 from the manual contain examples for dns:
> Example: dns=1.2.3.4;8.8.8.8;8.8.4.4;
> Example: dns=2001:4860:4860::8888;2001:4860:4860::8844;
There are, however, a handful of lists mentioned in the man page which
use a different format:
> some lists of complex values (addresses, routes, routing-rules),
> instead of using a semicolon separated list, use one key-value pair
> per list element, with the key being the singular of the property name
> followed by the numeric index (i.e address1, address2, ...).
so care should be taken when revisiting lists in this context. For
example, routes are not lists per se (they are strings) but they
allow (cf. table 6):
> Example: route1=8.8.8.0/24,10.1.1.1,77
[1] https://docs.gtk.org/glib/struct.KeyFile.html
Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---
Differences from v1:
- Expanded commit message
- Added a tests
@thomas, when running `make test` on src/test I get:
```
# ...
TEST test-centos10-001 => OK
# ...
All tests successful.
Files=1, Tests=5, 0 wallclock secs ( 0.01 usr 0.00 sys + 0.19 cusr 0.02 csys = 0.22 CPU)
Result: PASS
```
but I am not sure if I am missing anything.
src/PVE/LXC/Setup/CentOS.pm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/PVE/LXC/Setup/CentOS.pm b/src/PVE/LXC/Setup/CentOS.pm
index 0826977..7bccca2 100644
--- a/src/PVE/LXC/Setup/CentOS.pm
+++ b/src/PVE/LXC/Setup/CentOS.pm
@@ -244,7 +244,7 @@ sub setup_network_with_networkmanager {
}
}
if (@name_servers_v4) {
- $data .= "dns=" . join(',', @name_servers_v4) . "\n";
+ $data .= "dns=" . join(';', @name_servers_v4) . "\n";
$data .= "dns-search=" . join(' ', PVE::Tools::split_list($searchdomains)) . "\n"
if $searchdomains;
}
@@ -270,7 +270,7 @@ sub setup_network_with_networkmanager {
}
}
if (@name_servers_v6) {
- $data .= "dns=" . join(',', @name_servers_v6) . "\n";
+ $data .= "dns=" . join(';', @name_servers_v6) . "\n";
$data .= "dns-search=" . join(' ', PVE::Tools::split_list($searchdomains)) . "\n"
if $searchdomains;
}
--
2.47.3
More information about the pve-devel
mailing list