summaryrefslogtreecommitdiff
path: root/package/dnsmasq/files/S50dnsmasq
blob: e913b8be18a318e62599334cfaeb63d45118431c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/sh
. /etc/functions.sh
. /etc/network.overrides
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network

# 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}