Define the upstream servers in /etc/dnsmasq.conf, instead of using uci.
I.e.
server=127.0.0.1#5053
server=127.0.0.1#5054
into /etc/dnsmasq.conf . Will be unchanged.
Define the upstream servers in /etc/dnsmasq.conf, instead of using uci.
I.e.
server=127.0.0.1#5053
server=127.0.0.1#5054
into /etc/dnsmasq.conf . Will be unchanged.
Actually, I blindly copied those 2 lines, which were generated by https-dns-proxy, thinking they would be used for some important functions:
list doh_server '::1#5053'
list doh_server '::1#5054'
In fact, they are used to remember what corresponding list server lines were inserted by https-dns-proxy so it can cleanup when the service stops. Removing those lines solve the problem, as https-dns-proxy no longer performs the cleanup.
Nontheless, why does https-dns-proxy try to mess with /etc/config/dhcp if I tell it not to? dnsmasq_config_update is set to '-' already.
Because:
If there are no doh*server entries created by/for https-dns-proxy, it does not modify dhcp config on stop.
Otherwise, in the scenario where user changes dnsmasq instances in Luci to none, previously added entries will not get removed from the config -- the package doesn't get two configs/config diff, it's restarted after the config has been changed and needs to act upon config condition at that time.
Sure, I can look into that. Do you have a suggestion on how to inject dnsmasq with pbr-generated nft sets so it will persist on dnsmasq restart and will not brick dnsmasq if the file doesn't exist yet (after reboot)?