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
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to