On Sep 27, 2013, at 6:51 AM, Simon Kelley wrote:
> 
> There's one change which needs to be made to the script. When dnsmasq is 
> restarted, it won't know the MAC addresses for DHCPv6 (because they're not in 
> the leasefile). So at start-up it  will execute "old" script runs on each 
> lease without the DNSMASQ_MAC environment variable set. The script needs to 
> detect when called with "old" and no DNSMASQ_MAC and not delete the relevant 
> line from its file.

Hi Simon,

Does this do what you want ?

=============================
#!/bin/bash

action="$1"
mac="$2"   # IPv4
ip="$3"

STATUS_FILE="/tmp/dnsmasq-ip-mac.status"

if [ -n "$DNSMASQ_IAID" ]; then
  mac="$DNSMASQ_MAC"   # IPv6
fi

if [ "$action" = "add" -o "$action" = "old" -o "$action" = "del" ]; then
  if [ -n "$ip" ]; then
    if [ -n "$mac" -o "$action" = "del" ]; then
      if [ -f "$STATUS_FILE" ]; then
        sed -i "/^${ip//./\.} / d" "$STATUS_FILE"
      fi
      if [ "$action" = "add" -o "$action" = "old" ]; then
        echo "$ip $mac" >> "$STATUS_FILE"
      fi
    fi
  fi
fi
=============================

Lonnie


_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

Reply via email to