-
Beniamino Galvani authored
When the dnsmasq process dies, two events are generated: (1) a NM_DNS_PLUGIN_FAILED signal in nm-dns-dnsmasq.c:name_owner_changed() (2) a NM_DNS_PLUGIN_CHILD_QUIT signal in nm-dns-plugin.c:from watch_cb() Event (1) is handled by updating resolv.conf with upstream servers, (2) by restarting the child process. The order in which the two signals are received is not deterministic, so when (1) comes after (2) the manager leaves upstream servers in resolv.conf even if a dnsmasq instance is running. When dnsmasq disappears from D-Bus and we know that the process is not running, we should not emit a FAILED signal because the disappearing is caused by the process termination, and that event is already handled by the manager. #105
f2a20127