On Tue, Nov 19, 2019 at 4:12 PM Kevin Darbyshire-Bryant <l...@darbyshire-bryant.me.uk> wrote: > > Change dhcp no/release on shutdown to 'norelease' uci option to match > existing proto dhcpv6 usage. > > Signed-off-by: Kevin Darbyshire-Bryant <l...@darbyshire-bryant.me.uk> Acked-by: Hans Dedecker <dedec...@gmail.com> > --- > v2 - store the migrate script under netifd structure instead of as part > of base-files > > package/network/config/netifd/Makefile | 2 +- > .../etc/uci-defaults/14_migrate-dhcp-release | 23 +++++++++++++++++++ > .../netifd/files/lib/netifd/proto/dhcp.sh | 10 ++++---- > 3 files changed, 29 insertions(+), 6 deletions(-) > create mode 100644 > package/network/config/netifd/files/etc/uci-defaults/14_migrate-dhcp-release > > diff --git a/package/network/config/netifd/Makefile > b/package/network/config/netifd/Makefile > index 875628f66a..e24ebaba30 100644 > --- a/package/network/config/netifd/Makefile > +++ b/package/network/config/netifd/Makefile > @@ -1,7 +1,7 @@ > include $(TOPDIR)/rules.mk > > PKG_NAME:=netifd > -PKG_RELEASE:=1 > +PKG_RELEASE:=2 > > PKG_SOURCE_PROTO:=git > PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git > diff --git > a/package/network/config/netifd/files/etc/uci-defaults/14_migrate-dhcp-release > > b/package/network/config/netifd/files/etc/uci-defaults/14_migrate-dhcp-release > new file mode 100644 > index 0000000000..651c437cb2 > --- /dev/null > +++ > b/package/network/config/netifd/files/etc/uci-defaults/14_migrate-dhcp-release > @@ -0,0 +1,23 @@ > +. /lib/functions.sh > + > +migrate_release() { > + local config="$1" > + local proto > + local release > + > + config_get proto "$config" proto > + config_get release "$config" release > + > + [ "$proto" = "dhcp" ] && [ -n "$release" ] && { > + norelease="$((!$release))" > + uci_set network "$config" norelease "$norelease" > + uci_remove network "$config" release > + } > + > +} > + > +config_load network > +config_foreach migrate_release interface > +commit network > + > +exit 0 > diff --git a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh > b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh > index 0d06eba06e..3034b2ba68 100755 > --- a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh > +++ b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh > @@ -14,7 +14,7 @@ proto_dhcp_init_config() { > proto_config_add_string clientid > proto_config_add_string vendorid > proto_config_add_boolean 'broadcast:bool' > - proto_config_add_boolean 'release:bool' > + proto_config_add_boolean 'norelease:bool' > proto_config_add_string 'reqopts:list(string)' > proto_config_add_boolean 'defaultreqopts:bool' > proto_config_add_string iface6rd > @@ -35,8 +35,8 @@ proto_dhcp_setup() { > local config="$1" > local iface="$2" > > - local ipaddr hostname clientid vendorid broadcast release reqopts > defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes > classlessroute > - json_get_vars ipaddr hostname clientid vendorid broadcast release > reqopts defaultreqopts iface6rd delegate zone6rd zone mtu6rd customroutes > classlessroute > + local ipaddr hostname clientid vendorid broadcast norelease reqopts > defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes > classlessroute > + json_get_vars ipaddr hostname clientid vendorid broadcast norelease > reqopts defaultreqopts iface6rd delegate zone6rd zone mtu6rd customroutes > classlessroute > > local opt dhcpopts > for opt in $reqopts; do > @@ -50,7 +50,7 @@ proto_dhcp_setup() { > > [ "$defaultreqopts" = 0 ] && defaultreqopts="-o" || defaultreqopts= > [ "$broadcast" = 1 ] && broadcast="-B" || broadcast= > - [ "$release" = 1 ] && release="-R" || release= > + [ "$norelease" = 1 ] && norelease="" || norelease="-R" > [ -n "$clientid" ] && clientid="-x 0x3d:${clientid//:/}" || > clientid="-C" > [ -n "$iface6rd" ] && proto_export "IFACE6RD=$iface6rd" > [ "$iface6rd" != 0 -a -f /lib/netifd/proto/6rd.sh ] && append > dhcpopts "-O 212" > @@ -70,7 +70,7 @@ proto_dhcp_setup() { > ${ipaddr:+-r $ipaddr} \ > ${hostname:+-x "hostname:$hostname"} \ > ${vendorid:+-V "$vendorid"} \ > - $clientid $defaultreqopts $broadcast $release $dhcpopts > + $clientid $defaultreqopts $broadcast $norelease $dhcpopts > } > > proto_dhcp_renew() { > -- > 2.21.0 (Apple Git-122.2) > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel