root@shiva:/etc$ less init.d/S60dnsmasq
#!/bin/sh
killall -q dnsmasq
pppoa_ifname="atm0" # hack for ppp over atm, which has no ${proto}_ifname
args2=""
#
# initialize any missing nvram variables and turn on dhcp
# for LAN by default.
#
if [ -z $(nvram get lan_dhcp_enabled) ]; then
nvram set lan_dhcp_enabled=1
fi
for ifname in lan wan wifi $(nvram get ifnames); do
if [ -z $(nvram get ${ifname}_dhcp_start) ]; then
# cut is in case someone set a full IP here instead of integer
nvram set ${ifname}_dhcp_start=$(nvram get dhcp_start | cut -d '.' -f 4)
fi
if [ -z $(nvram get ${ifname}_dhcp_num) ]; then
nvram set ${ifname}_dhcp_num=$(nvram get dhcp_num)
fi
if [ -z $(nvram get ${ifname}_dhcp_lease) ]; then
nvram set ${ifname}_dhcp_lease=$(nvram get dhcp_lease)
fi
done
for ifname in lan wan wifi $(nvram get ifnames); do
dhcp_enabled=$(nvram get ${ifname}_dhcp_enabled)
if [ "$dhcp_enabled" = 1 ]; then
dnsmasq_enabled=1
IFPROTO=$(nvram get ${ifname}_proto)
IFACE=$(nvram get ${ifname}_ifname)
IFACES=$(nvram get ${ifname}_ifnames)
ipaddr=$(nvram get ${ifname}_ipaddr)
netmask=$(nvram get ${ifname}_netmask)
start=$(nvram get ${ifname}_dhcp_start)
num=$(nvram get ${ifname}_dhcp_num)
if [ -f "/bin/ipcalc.sh" ]; then
eval $(ipcalc.sh $ipaddr $netmask ${start:-100} ${num:-150})
else
eval $(ipcalc $ipaddr $netmask ${start:-100} ${num:-150})
fi
lease=$(nvram get ${ifname}_dhcp_lease)
[ "$lease" = "0" ] && {
lease="12h"
nvram set "${ifname}_dhcp_lease=12h"
}
args2="$args2 -F $ifname,$START,$END,$NETMASK,${lease:-12h}"
fi
done
if [ "$dnsmasq_enabled" = 1 ]; then
cache_size=$(nvram get dhcp_cache_size) #-c
no_hosts=$(nvram get dhcp_no_hosts) #-h
no_regcache=$(nvram get dhcp_no_regcache) #-N
strict_order=$(nvram get dhcp_strict_order) #-o
port=$(nvram get dhcp_port) #-p
log_queries=$(nvram get dhcp_log_queries) #-q
no_resolv=$(nvram get dhcp_no_resolv) #-R
domain=$(nvram get dhcp_domain) #-s
dhcp_lease_max=$(nvram get dhcp_lease_max) #-X
read_ethers=$(nvram get dhcp_read_ethers) #-Z
args="-l /tmp/dhcp.leases -K $args2" # ${wanif:+-I ${wanif}}"
args="$args ${cache_size:+-c ${cache_size}} ${port:+-p ${port}} ${dhcp_lease_max:+-X ${dhcp_lease_max}}"
args="$args ${domain:+-s ${domain}} ${read_ethers:+-Z } ${no_resolv:+-R} ${log_queries:+-q} ${strict_order:+-o} ${no_regcache:+-N}"
args="$args ${no_hosts:+-h}"
dnsmasq ${args}
fi
root@shiva:/etc$