29 lines
743 B
Bash
Executable File
29 lines
743 B
Bash
Executable File
#!/bin/sh
|
|
. /etc/functions.sh
|
|
|
|
# interface to use for DHCP
|
|
iface=lan
|
|
|
|
ifname=$(nvram get ${iface}_ifname)
|
|
ipaddr=$(nvram get ${iface}_ipaddr)
|
|
netmask=$(nvram get ${iface}_netmask)
|
|
|
|
# check for existing DHCP server
|
|
udhcpc -n -q -R -s /bin/true -i $ifname >&- || {
|
|
|
|
ipaddr=$(ip2int $ipaddr)
|
|
netmask=$(ip2int ${netmask:-255.255.255.0})
|
|
network=$((ipaddr&netmask))
|
|
|
|
start=$(nvram get dhcp_start)
|
|
start=$((network+${start:-100}))
|
|
end=$(nvram get dhcp_num)
|
|
end=$((start+${end:-150}))
|
|
|
|
wanproto=$(nvram get wan_proto)
|
|
[ -z "$wanproto" -o "$wanproto" = "none" ] || wanif=$(nvram get wan_ifname)
|
|
|
|
args="-l /tmp/dhcp.leases -K -F $(int2ip $start),$(int2ip $end),$(int2ip $netmask),12h ${wanif:+-I ${wanif} }"
|
|
}
|
|
dnsmasq ${args}
|