mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 23:42:43 +00:00
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>
This commit is contained in:
parent
794291bbdf
commit
36f309af05
@ -8,6 +8,15 @@ json_init
|
|||||||
json_add_array env
|
json_add_array env
|
||||||
hotplugobj=""
|
hotplugobj=""
|
||||||
|
|
||||||
|
oldIFS=$IFS
|
||||||
|
IFS=$'\n'
|
||||||
|
for var in $(env); do
|
||||||
|
if [ "${var}" != "${var#DNSMASQ_}" ]; then
|
||||||
|
json_add_string "" "${var%%=*}=${var#*=}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS=$oldIFS
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
add | del | old | arp-add | arp-del)
|
add | del | old | arp-add | arp-del)
|
||||||
json_add_string "" "MACADDR=$2"
|
json_add_string "" "MACADDR=$2"
|
||||||
|
@ -20,7 +20,7 @@ BASEDHCPSTAMPFILE="/var/run/dnsmasq"
|
|||||||
DHCPBOGUSHOSTNAMEFILE="/usr/share/dnsmasq/dhcpbogushostname.conf"
|
DHCPBOGUSHOSTNAMEFILE="/usr/share/dnsmasq/dhcpbogushostname.conf"
|
||||||
RFC6761FILE="/usr/share/dnsmasq/rfc6761.conf"
|
RFC6761FILE="/usr/share/dnsmasq/rfc6761.conf"
|
||||||
DHCPSCRIPT="/usr/lib/dnsmasq/dhcp-script.sh"
|
DHCPSCRIPT="/usr/lib/dnsmasq/dhcp-script.sh"
|
||||||
DHCPSCRIPT_DEPENDS="/usr/share/libubox/jshn.sh /usr/bin/jshn /bin/ubus"
|
DHCPSCRIPT_DEPENDS="/usr/share/libubox/jshn.sh /usr/bin/jshn /bin/ubus /usr/bin/env"
|
||||||
|
|
||||||
DNSMASQ_DHCP_VER=4
|
DNSMASQ_DHCP_VER=4
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user