dnsmasq: pass environment variables to hotplug
authorChuck R <github@chuck.cloud>
Sun, 8 Sep 2024 19:28:06 +0000 (14:28 -0500)
committerJohn Crispin <john@phrozen.org>
Thu, 12 Dec 2024 10:00:38 +0000 (11:00 +0100)
commit36f309af05241f09b185c6297ef6361316719b50
tree0ef65f777e357648c7db241008cadc6aebe6ada1
parent794291bbdf26ad2be7581fc0c921e4d820937c79
dnsmasq: pass environment variables to hotplug

dnsmasq passes a limited amount of information via DHCP script arguments. Much
more information is available through environment variables starting with
DNSMASQ_, such as DNSMASQ_INTERFACE. However, when the dhcp-script builds its
JSON environment and passes it to hotplug, all of this information is discarded
since it is not copied to the JSON environment.

Personally, I have a custom-made set of DDNS scripts and rely on environment
variables such as DNSMASQ_INTERFACE in order to determine which DNS zones
to update. So, not being able to access these variables was detrimental to me.
I patched in a quick copy of all DNSMASQ_ variables to the JSON environment
so that they can be used in hotplug scripts. In order to do so I also copied
/usr/bin/env into dnsmasq's chroot jail.

Signed-off-by: Chuck R <github@chuck.cloud>
Link: https://github.com/openwrt/openwrt/pull/16354
Signed-off-by: John Crispin <john@phrozen.org>
package/network/services/dnsmasq/files/dhcp-script.sh
package/network/services/dnsmasq/files/dnsmasq.init