[LEDE-DEV] RFC [PATCH] odhcpd: don't enable server mode on dhcp lan

Hans Dedecker dedeckeh at gmail.com
Fri Sep 1 00:45:45 PDT 2017


On Thu, Aug 31, 2017 at 11:35 PM, Karl Palsson <karlp at tweak.net.au> wrote:
>
> Daniel Golle <daniel at makrotopia.org> wrote:
>> Hi Karl,
>>
>> On Thu, Aug 31, 2017 at 05:17:38PM +0000, Karl Palsson wrote:
>> > Instead of blindly enabling the odhcpd v6 server and RA server on the
>> > lan port, only do that if the lan port isn't set to DHCP.
>> >
>> > This prevents the unhelpful case of a device being a dhcpv4 client and
>> > v6 server on the same ethernet port.
>>
>> Generating UCI from presumingly already generated UCI has
>> proven to be a bad practise in the past. See inline for an
>> alternative approach.
>
> Cool with me, the json_load approach is..... kinda opaque still
> at the moment, but if that's the future and meant to be magically
> more stable, awesome. (This file was _already_ looking at "uci -q
> get dhcp.odhcpd" not using any json loading, so... I just
> followed the course)
>
> But the general concept? Is that ok? That's more interesting to
> me :)
I like the idea
I wonder if enabling DHCPv6 and RA as server on interfaces having a
non static protocol is usefull; so can we just check for the protocol
being static to enable DHCPv6 and RA as server ?

Hans
>
> Sincerely,
> Karl Palsson
>
>> >  uci -q get dhcp.odhcpd && exit 0
>> >  touch /etc/config/dhcp
>> >
>> > +LANPROTO=$(uci -q get network.lan.proto)
>>
>> Imho it'd be nicer to read this via
>> ```
>> . /usr/share/libubox/jshn.sh
>>
>> json_load "$(cat /etc/board.json)"
>> json_select network
>> json_select lan
>> json_get_vars protocol
>> json_select ..
>> json_select ..
>> ```
>>
>>
>> > +MODE=server
>> > +
>> > +case "$LANPROTO" in
>> > +"dhcp")
>> > +   echo "odhcpd: Not enabling server mode on a dhcp lan!" > /dev/kmsg
>> > +   MODE=disabled
>> > +   ;;
>> > +esac
>> > +
>> >  uci batch <<EOF
>> >  set dhcp.odhcpd=odhcpd
>> >  set dhcp.odhcpd.maindhcp=0
>> >  set dhcp.odhcpd.leasefile=/tmp/hosts/odhcpd
>> >  set dhcp.odhcpd.leasetrigger=/usr/sbin/odhcpd-update
>> >  set dhcp.odhcpd.loglevel=4
>> > -set dhcp.lan.dhcpv6=server
>> > -set dhcp.lan.ra=server
>> > +set dhcp.lan.dhcpv6=$MODE
>> > +set dhcp.lan.ra=$MODE
>> >  commit dhcp
>> >  EOF
>> > --
>> > 2.4.11
>> >
>> >
>> > _______________________________________________
>> > Lede-dev mailing list
>> > Lede-dev at lists.infradead.org
>> > http://lists.infradead.org/mailman/listinfo/lede-dev
>>
>> _______________________________________________
>> Lede-dev mailing list
>> Lede-dev at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/lede-dev
>
> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev
>



More information about the Lede-dev mailing list