NetworkManager/src
Thomas Haller 93d5efb486 dns: move ratelimiting and restart from NMDnsManager to NMDnsDnsmasq
Note that the only DNS plugin that actually emits the FAILED signal was
NMDnsDnsmasq. Let's not handle restart, retry and rate-limiting by
NMDnsManager but by NMDnsDnsmasq itself.

There are three goals here:

(1) we want that when dnsmasq (infrequently) crashes, that we always keep
  retrying. A random crash should be automatically resolved and
  eventually dnsmasq should be working again.
  Note that we anyway cannot fully detect whether something is wrong.
  OK, we detect crashes, but if dnsmasq just gets catatonic, it's just
  as broken. Point being: our ability to detect non-working dnsmasq is limited.

(2) when dnsmasq keeps crashing all the time, then rate limit the retry.
  Of course, at this point there is already something seriously wrong,
  but we shouldn't kill the system by respawning the process without rate
  limiting.

(3) previously, when NMDnsManager noticed that the pluging was broken
  (and rate-limiting kicked in), it would temporarily disable the plugin.
  Basically, that meant to write the real name servers to /etc/resolv.conf
  directly, instead of setting localhost. This partly conflicts with
  (1), because we want to retry and recover automatically. So what good
  is it to notice a problem, resort to plain /etc/resolv.conf for a
  short time, and then run into the issues again? If something is really
  broken, there is no way but to involve the user to investigate and
  fix the issue. Hence, we don't need to concern NMDnsManager with this either.
  The only thing that the manager notices is when the dnsmasq binary is not
  available. In that case, update() fails right away, and the manager falls back
  to configure the name servers in /etc/resolv.conf directly.

Also, change the backoff time from 5 minutes to 1 minute (twice the
burst interval). There is not particularly strong reason for either
choice, I think that if the ratelimit kicks in, then something is
already so wrong that it doesn't matter either way. Anyway, also 60
seconds is long enough to not kill the machine otherwise.
2019-09-26 08:18:58 +02:00
..
devices wifi/p2p: fix crash due to invalid signal handler supplicant_group_iface_group_finished_cb() 2019-09-23 13:22:53 +02:00
dhcp core: use G_DEFINE_ABSTRACT_TYPE() macro instead of G_DEFINE_TYPE_EXTENDED() 2019-09-26 08:18:58 +02:00
dns dns: move ratelimiting and restart from NMDnsManager to NMDnsDnsmasq 2019-09-26 08:18:58 +02:00
dnsmasq all: SPDX header conversion 2019-09-10 11:19:56 +02:00
initrd all: SPDX header conversion 2019-09-10 11:19:56 +02:00
ndisc all: SPDX header conversion 2019-09-10 11:19:56 +02:00
platform all: SPDX header conversion 2019-09-10 11:19:56 +02:00
ppp core: extend nm_shutdown_wait_obj_*() to support notification via a GCancellable 2019-09-22 16:05:50 +02:00
settings settings: drop redundant check from have_connection_for_device() 2019-09-23 13:13:23 +02:00
supplicant supplicant: fix rework condition in nm_supplicant_config_add_bgscan() 2019-09-25 17:29:50 +02:00
systemd systemd: merge branch systemd into master 2019-09-25 09:14:30 +02:00
tests all: SPDX header conversion 2019-09-10 11:19:56 +02:00
vpn all: SPDX header conversion 2019-09-10 11:19:56 +02:00
main-utils.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
main-utils.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
main.c libnm: export reload flags 2019-09-17 09:30:18 +02:00
meson.build build: fix meson warning about wrong custom target argument 2019-08-05 16:05:30 +02:00
NetworkManagerUtils.c core: extend nm_shutdown_wait_obj_*() to support waiting with explicit unregister 2019-09-26 08:18:58 +02:00
NetworkManagerUtils.h core: extend nm_shutdown_wait_obj_*() to support waiting with explicit unregister 2019-09-26 08:18:58 +02:00
nm-act-request.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-act-request.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-active-connection.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-active-connection.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-audit-manager.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-audit-manager.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-auth-manager.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-auth-manager.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-auth-subject.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-auth-subject.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-auth-utils.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-auth-utils.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-checkpoint-manager.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-checkpoint-manager.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-checkpoint.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-checkpoint.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-config-data.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-config-data.h libnm: export reload flags 2019-09-17 09:30:18 +02:00
nm-config.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-config.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-connectivity.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-connectivity.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-core-utils.c dns/dnsmasq: refactor tracking of dnsmasq process 2019-09-26 08:18:58 +02:00
nm-core-utils.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dbus-manager.c shared,all: add and use DBUS_INTERFACE_OBJECT_MANAGER define 2019-09-22 16:05:50 +02:00
nm-dbus-manager.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dbus-object.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dbus-object.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dbus-utils.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dbus-utils.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dcb.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dcb.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dhcp4-config.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dhcp4-config.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dhcp6-config.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dhcp6-config.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dispatcher.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-dispatcher.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-firewall-manager.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-firewall-manager.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-hostname-manager.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-hostname-manager.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-iface-helper.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-ip4-config.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-ip4-config.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-ip6-config.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-ip6-config.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-keep-alive.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-keep-alive.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-logging.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-logging.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-manager.c bluetooth: refactor BlueZ handling and let NMBluezManager cache ObjectManager data 2019-09-23 12:47:37 +02:00
nm-manager.h bluetooth: refactor BlueZ handling and let NMBluezManager cache ObjectManager data 2019-09-23 12:47:37 +02:00
nm-netns.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-netns.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-pacrunner-manager.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-pacrunner-manager.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-policy.c core: add and use NM_MANAGER_GET macro 2019-09-22 16:05:50 +02:00
nm-policy.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-proxy-config.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-proxy-config.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-rfkill-manager.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-rfkill-manager.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-session-monitor.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-session-monitor.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-sleep-monitor.c all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-sleep-monitor.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-test-utils-core.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
nm-types.h all: SPDX header conversion 2019-09-10 11:19:56 +02:00
org.freedesktop.NetworkManager.conf wifi-p2p: rename Wi-Fi P2P 2019-02-01 17:02:57 +01:00