NetworkManager/src/core
Íñigo Huguet 1cba0a3cca dns: make [global-dns] to overwrite configs from connections
According to the documentation, settings from [global-dns] (searches and
options) are always merged with those from connections. However this was
not happening if no [global-dns-domain-*] exists, in which case
connections were ignored. This happened because in the past both global
sections must de defined or undefined. When this was changed to allow
defining only [global-dns], allowing it in the function that generates
the resolv.conf file was forgotten. Fix that now.

Anyway, merging these configs doesn't make much sense. The searches and
options defined in connections probably make sense only for the nameservers
defined in that same connection.

Because of this, make the following change: if global nameservers are
defined, use searches and options from [global-dns] only, because those
defined in connections may not make sense for the global nameservers. If
[global-dns] is missing, assume an empty [global-dns] section.

Also, if no global nameservers are defined, but [global-dns] is, make
that it overwrites the searches and options defined in connections. This
is not ideal, but none of the alternatives is better and at least this
is easy to remember.

So, the resulting rules from above are:
- If [global-dns] is defined, it always overwrite searches and options
  from connections.
- If [global-dns-domain-*] is defined, it always overwrite nameservers
  from connections. It overwrites searches and options too.

Fixes: 1f0d1d78d2 ('dns-manager: always apply options from [global-dns]')
Fixes: f57a848da5 ('man: update documentation about global DNS configuration')
2025-09-11 10:25:36 +00:00
..
devices bond: remove lacp_active option from reapply subset 2025-09-11 09:54:52 +00:00
dhcp dhcp: fix typo in tcp_keepalive_interval option name 2025-07-10 09:12:02 +02:00
dns dns: make [global-dns] to overwrite configs from connections 2025-09-11 10:25:36 +00:00
dnsmasq core, libnm: support per-connection DNS URIs 2025-01-07 15:41:44 +01:00
ndisc ndisc: fix logic to limit the number of addresses 2025-07-10 09:12:06 +02:00
platform platform: fix compilation without LTO 2025-07-17 10:30:18 +02:00
ppp core: simplify nm_l3_config_data_add_nameserver_detail() 2025-01-07 15:41:43 +01:00
settings dns: return error from nm_dns_uri_parse() 2025-08-14 09:40:26 +02:00
supplicant supplicant: fix wrong check on "EAP" signal arguments 2025-07-10 09:12:01 +02:00
tests core: generalize IP reservation functions 2025-09-08 21:38:21 +02:00
vpn vpn: fix logging message 2025-03-31 13:39:07 +02:00
main-utils.c core: Fix unextractable translation string 2023-12-18 15:53:16 +01:00
main-utils.h core: move nm_main_utils_get_nm_[ug]id() to "nm-core-utils.h" 2022-01-18 18:10:55 +01:00
main.c build: remove autotools leftovers 2025-09-08 10:46:44 +00:00
meson.build dns: Add dnsconfd DNS plugin 2025-01-29 14:41:47 +01:00
NetworkManagerUtils.c platform: accept 0 as valid rto_min value 2025-04-14 16:41:39 +02:00
NetworkManagerUtils.h device: simplify the nm_utils_complete_generic() machinery 2025-01-20 06:13:59 +01:00
nm-act-request.c src: drop most master references from the code 2024-08-09 15:47:32 +02:00
nm-act-request.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-active-connection.c core: rename NM_DEVICE_MANAGED_TYPE_MANAGED to _TYPE_FULL 2024-08-28 15:35:56 +02:00
nm-active-connection.h src: drop most master references from the code 2024-08-09 15:47:32 +02:00
nm-audit-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-audit-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-auth-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-auth-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-auth-utils.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-auth-utils.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-bond-manager.c bond-slb: fix memory leak 2025-07-10 09:12:02 +02:00
nm-bond-manager.h bonding: send ARP announcement on bonding-slb link/carrier down 2024-12-18 14:45:54 +01:00
nm-checkpoint-manager.c core: use nm_dbus_manager_lookup_object_with_type() 2022-03-13 12:02:08 +01:00
nm-checkpoint-manager.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-checkpoint.c checkpoint: preserve in-memory state of connections 2024-05-02 16:49:23 +02:00
nm-checkpoint.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-config-data.c dns: make [global-dns] to overwrite configs from connections 2025-09-11 10:25:36 +00:00
nm-config-data.h dns: make [global-dns] to overwrite configs from connections 2025-09-11 10:25:36 +00:00
nm-config.c dns: Add resolve-mode and certification-authority keys to global-dns 2025-01-29 14:41:47 +01:00
nm-config.h connectivity: Add a timeout option to connectivity checks 2024-06-24 09:21:34 +00:00
nm-connectivity.c connectivity: fix compiler warning when building without concheck 2025-06-19 15:06:53 +02:00
nm-connectivity.h Updated code format 2024-04-08 06:35:20 +00:00
nm-core-utils.c core: fix Wi-Fi data rate tables 2025-07-10 09:12:03 +02:00
nm-core-utils.h Updated code format 2024-04-08 06:35:20 +00:00
nm-dbus-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-dbus-manager.h core/dbus: split RequestName D-Bus call out of initialization for NMDBusManager 2023-03-23 13:06:57 +01:00
nm-dbus-object.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-dbus-object.h format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-dbus-utils.c dbus: add helper macros for GDBusAnnotationInfo 2024-01-16 09:28:17 +01:00
nm-dbus-utils.h format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-dcb.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-dcb.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-default-daemon.h libnm: move nm-errors.h include away from nm-connection.h 2022-11-13 23:36:37 +01:00
nm-dhcp-config.c all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-dhcp-config.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-dispatcher.c dispatcher: fix serialization of DNS servers 2025-01-07 15:41:45 +01:00
nm-dispatcher.h dispatcher: read device-handler's stdout into a dictionary 2024-02-21 11:16:04 +01:00
nm-firewall-utils.c firewall/utils: replace ipv4 iptables macro with ipxtables macro 2025-04-01 08:08:52 +00:00
nm-firewall-utils.h firewall/wireguard: drop packets received to wrong interface 2025-04-01 08:08:52 +00:00
nm-firewalld-manager.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-firewalld-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-hostname-manager.c hostname: combine implementations of read_hostname() for Gentoo and Slackware 2023-02-08 09:51:25 +01:00
nm-hostname-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-ip-config.c ip-config: fix crash in DNS options evaluation 2025-05-16 09:41:03 +02:00
nm-ip-config.h core: rate-limit updates to IP addresses/routes on D-Bus API 2023-11-30 15:41:43 +01:00
nm-keep-alive.c doc: replace all (allow-none) annotations by (optional) and/or (nullable) 2023-03-27 11:49:43 +02:00
nm-keep-alive.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-l3-config-data.c dns: make [global-dns] to overwrite configs from connections 2025-09-11 10:25:36 +00:00
nm-l3-config-data.h dns: make [global-dns] to overwrite configs from connections 2025-09-11 10:25:36 +00:00
nm-l3-ipv4ll.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-l3-ipv4ll.h all: fix various "-Wcast-align=strict" warnings 2022-12-09 09:15:56 +01:00
nm-l3-ipv6ll.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-l3-ipv6ll.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-l3cfg.c dns: return error from nm_dns_uri_parse() 2025-08-14 09:40:26 +02:00
nm-l3cfg.h dns: Add dnsconfd DNS plugin 2025-01-29 14:41:47 +01:00
nm-manager.c manager: unrealize device again after failure 2025-09-02 10:16:58 +02:00
nm-manager.h checkpoint: Allow rollback on internal global DNS 2024-03-13 20:52:37 +08:00
nm-netns.c core: fix potential use after free 2025-09-11 09:47:17 +00:00
nm-netns.h core: generalize IP reservation functions 2025-09-08 21:38:21 +02:00
nm-pacrunner-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-pacrunner-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-policy.c core: support prefix-delegation.subnet-id 2025-04-02 11:21:59 +02:00
nm-policy.h core: expose and rename nm_policy_device_recheck_auto_activate_schedule() 2023-04-27 08:35:27 +02:00
nm-power-monitor.c power-monitor: fix "shutdown" signal definition 2024-04-04 11:12:18 +02:00
nm-power-monitor.h connection: add support to down-on-poweroff 2024-03-04 18:16:54 +00:00
nm-priv-helper-call.c nm-sudo: rename to nm-priv-helper 2022-01-11 21:46:55 +01:00
nm-priv-helper-call.h nm-sudo: rename to nm-priv-helper 2022-01-11 21:46:55 +01:00
nm-rfkill-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-rfkill-manager.h platform: remove CSME related code 2023-09-25 11:46:24 +00:00
nm-session-monitor.c all: prefer nm wrappers to automatically attach GSource to default context 2022-03-13 11:59:42 +01:00
nm-session-monitor.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-test-utils-core.h all: replace NMP_IFNAMSIZ with NM_IFNAMSIZ 2023-05-30 08:51:10 +02:00
nm-types.h src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
org.freedesktop.NetworkManager.conf all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
README.l3cfg.md core: rework IP configuration in NetworkManager using layer 3 configuration 2021-11-18 16:21:29 +01:00
README.md all: add some README.md files describing the purpose of our sources 2021-08-19 17:51:11 +02:00
README.next.ip-config.md core: rework IP configuration in NetworkManager using layer 3 configuration 2021-11-18 16:21:29 +01:00

core

The source code of the NetworkManager daemon.

NetworkManager is a daemon that provides a D-Bus API and a file-based API for configuring the network on a Linux host.

This is the daemon source code.