All pastes #437727 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-04-13 06:49 UTC
rendered paste body
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$