Please ignore the patch. Just woken in middle of night and realised I've done something mind numbingly stupid. Will fix tomorrow!
-- Cheers, [email protected] Sent from my phone, apologies for brevity, spelling & top posting > On 1 Sep 2015, at 21:03, Kevin Darbyshire-Bryant > <[email protected]> wrote: > > Add support for hostid dhcp config entry to dnsmasq. This allows > specification of dhcpv6 hostid suffix and works in the same way as > odhcpd. > > Entries in auto generated dnsmasq.conf should conform to: > > dhcp-host=mm:mm:mm:mm:mm:mm,IPv4addr,[::V6:su:ff:ix],hostname > > example based on sample config/dhcp entry: > > config host > option name 'Kermit' > option mac 'E0:3F:49:A1:D4:AA' > option ip '192.168.235.4' > option hostid '4' > > dhcp-host=E0:3F:49:A1:D4:AA,192.168.235.4,[::00:00:00:04],Kermit > > Signed-off-by: Kevin Darbyshire-Bryant <[email protected]> > --- > Proper thanks to jow_laptop for lots of help with this > > .../network/services/dnsmasq/files/dnsmasq.init | 29 +++++++++++++++++++++- > 1 file changed, 28 insertions(+), 1 deletion(-) > > diff --git a/package/network/services/dnsmasq/files/dnsmasq.init > b/package/network/services/dnsmasq/files/dnsmasq.init > index ab64e88..58c301f 100644 > --- a/package/network/services/dnsmasq/files/dnsmasq.init > +++ b/package/network/services/dnsmasq/files/dnsmasq.init > @@ -23,6 +23,27 @@ xappend() { > echo "${value#--}" >> $CONFIGFILE > } > > +hex_to_hostid() { > + local var="$1" > + local hex="${2#0x}" # strip optional "0x" prefix > + > + if [ -n "${hex//[0-9a-fA-F]/}" ]; then > + # is invalid hex literal > + return 1 > + fi > + > + # convert into host id > + export "$var=$( > + printf "%02x:%02x:%02x:%02x\n" \ > + $(((0x$hex >> 24) % 256)) \ > + $(((0x$hex >> 16) % 256)) \ > + $(((0x$hex >> 8) % 256)) \ > + $(( 0x$hex % 256)) > + )" > + > + return 0 > +} > + > dhcp_calc() { > local ip="$1" > local res=0 > @@ -329,10 +350,16 @@ dhcp_host_add() { > > config_get tag "$cfg" tag > > + config_get hostid "$cfg" hostid > + > + if [ -n "$hostid" ]; then > + hex_to_hostid hostid "$hostid" > + fi > + > config_get_bool broadcast "$cfg" broadcast 0 > [ "$broadcast" = "0" ] && broadcast= > > - xappend > "--dhcp-host=$macs${networkid:+,net:$networkid}${broadcast:+,set:needs-broadcast}${tag:+,set:$tag}${ip:+,$ip}${name:+,$name}" > + xappend > "--dhcp-host=$macs${networkid:+,net:$networkid}${broadcast:+,set:needs-broadcast}${tag:+,set:$tag}${ip:+,$ip${hostid:+,[::$hostid]}}${name:+,$name}" > } > > dhcp_tag_add() { > -- > 1.9.1 >
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
