Add contrib/mactable

This commit is contained in:
Simon Kelley
2013-09-27 14:38:45 +01:00
parent a810559b24
commit 42b44a591b

30
contrib/mactable/macscript Executable file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
STATUS_FILE="/tmp/dnsmasq-ip-mac.status"
# Script for dnsmasq lease-change hook.
# Maintains the above file with a IP address/MAC address pairs,
# one lease per line. Works with IPv4 and IPv6 leases, file is
# atomically updated, so no races for users of the data.
action="$1"
mac="$2" # IPv4
ip="$3"
if [ -n "$DNSMASQ_IAID" ]; then
if [ -z "$DNSMASQ_MAC" -a "$action" = "old" ]; then
# MAC not known by dnsmasq, probably due to restart.
exit 0;
fi
mac="$DNSMASQ_MAC" # IPv6
fi
if [ "$action" = "add" -o "$action" = "old" -o "$action" = "del" ]; then
if [ -f "$STATUS_FILE" ]; then
sed "/^${ip//./\.} / d" "$STATUS_FILE" > "$STATUS_FILE".new
fi
if [ "$action" = "add" -o "$action" = "old" ]; then
echo "$ip $mac" >> "$STATUS_FILE".new
fi
mv "$STATUS_FILE".new "$STATUS_FILE" # atomic update.
fi