#!/bin/sh for octet in 1 2 3 4; do eval lan_netaddr$octet=$(( $(nvram get lan_ipaddr | cut -d . -f $octet) & \ $(nvram get lan_netmask | cut -d . -f $octet) )) done lan_netaddr=$lan_netaddr1.$lan_netaddr_2.$lan_netaddr3.$lan_netaddr4 dhcp_start=$(( $(nvram get lan_ipaddr | cut -d . -f 4) + 99 )) if [ $dhcp_start -gt 253 ]; then eval dhcp_start=$(( dhcp_start - 98 )); fi dhcp_end=$(( $dhcp_start + 150 )) if [ $dhcp_end -gt 254 ]; then eval dhcp_end=254; fi dhcp_base=$lan_netaddr1.$lan_netaddr2.$lan_netaddr3 dhcp_netmask=$(nvram get lan_netmask) template=$(cat /etc/dnsmasq.conf.template) if [ $dhcp_end -ge $dhcp_start ]; then # don't overwrite if invalid settings eval dhcp_start=$dhcp_base.$dhcp_start eval dhcp_end=$dhcp_base.$dhcp_end eval "echo \"$template\"" > /etc/dnsmasq.conf fi if [ "$(pidof dnsmasq)" ]; then killall dnsmasq; fi if [ "$(pidof dnsmasq)" ]; then killall -KILL dnsmasq; fi /usr/sbin/dnsmasq