To help prevent DHCP starvation DoS attacks (not fool-proof though if you can fake ARP replies back)
rm /tmp/arp.*
cat /tmp/dhcp.leases | awk '{ print $3 }' | while read a ; do
( arping -f -q -c 1 -w 1 -I br-lan "$a" ; if [ $? -ne 0 ] ; then echo "$a" > /tmp/arp.host."$a" ; fi ) &
done
sleep 3
cat /tmp/arp.host.* | while read a ; do
sed "/^.*$a.*$/d" -i /tmp/dhcp.leases
touch /tmp/arp.run
done
if [ -f /tmp/arp.run ] ; then
kill `ps | grep -i 'dnsmasq' | grep -iv 'grep' | awk '{ print $1 }'`
/usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf -k -x /var/run/dnsmasq/dnsmasq.pid &
fi
rm /tmp/arp.*