The goal of this change is to allow the dynamic creation
of an "--address" option for each host in the local network.

This opens up the possibility of fitting a common request among users
(particularly web-developers). That request is:to resolve DNS
request for wildcard subdomains for local domains.[2][3]
This plays nice with serving virtual hosts from different machines
on LAN, allowing to easily test on different devices . [3]

[1] dnsmasq: use host-record instead of address
https://dev.openwrt.org/changeset/36943

[2] dnsmasq + wildcard + address
https://www.google.com/search?q=dnsmasq+wildcard+address

[3] Feature request: dynamically add an "address=/hostname/ip" line
for each hostname (on generated /tmp/etc/dnsmasq.conf)
https://dev.openwrt.org/ticket/12722

Signed-off-by: Julián Landerreche <openwrt at julianlanderreche.com.ar>
---
 package/network/services/dnsmasq/files/dnsmasq.init |   19
+++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/package/network/services/dnsmasq/files/dnsmasq.init
b/package/network/services/dnsmasq/files/dnsmasq.init
index 630c07d..8c43e48 100644
--- a/package/network/services/dnsmasq/files/dnsmasq.init
+++ b/package/network/services/dnsmasq/files/dnsmasq.init
@@ -408,6 +408,24 @@ dhcp_domain_add() {
  xappend "--address=/$record/$ip"
 }

+dhcp_address_add() {
+ local cfg="$1"
+ local ip name names record
+
+ config_get names "$cfg" name "$2"
+ [ -n "$names" ] || return 0
+
+ config_get ip "$cfg" ip "$3"
+ [ -n "$ip" ] || return 0
+
+ for name in $names; do
+ fqdn="$name${DOMAIN:+.$DOMAIN}"
+ record="${record:+$record/}$name/$fqdn"
+ done
+
+ xappend "--address=/$record/$ip"
+}
+
 dhcp_srv_add() {
  local cfg="$1"

@@ -512,6 +530,7 @@ start() {
  config_foreach dhcp_subscrid_add subscrid
  config_foreach dhcp_domain_add domain
  config_foreach dhcp_hostrecord_add hostrecord
+ config_foreach dhcp_address_add host

  # add own hostname
  [ $ADD_LOCAL_HOSTNAME -eq 1 ] && [ -n "$lanaddr" ] && {
--
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to