[PATCH v3 14/14] fff-network: Migrate old settings
robert
rlanghammer at web.de
Mo Apr 22 23:41:48 CEST 2019
Nice!
Reviewed-by: Robert Langhammer <rlanghammer at web.de>
Am 22.04.19 um 23:01 schrieb Adrian Schmutzler:
> This patch will migrate the custom settings from network.config
> to the new configuration system.
>
> The uci-default script only writes to /etc/firstbootfff, as this
> is evaluated later in the uci-defaults run; it does not directly
> apply any settings.
> By writing to /etc/firstbootfff, the settings are still kept in
> an upgrade-safe way.
>
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>
> ---
>
> Changes in v3:
> - Added this patch
>
> This is now the correct version of this patch. Note that this is
> completely untested so far.
> ---
> .../files/etc/uci-defaults/25-migrate-network | 56 ++++++++++++++++++++++
> 1 file changed, 56 insertions(+)
> create mode 100644 src/packages/fff/fff-network/files/etc/uci-defaults/25-migrate-network
>
> diff --git a/src/packages/fff/fff-network/files/etc/uci-defaults/25-migrate-network b/src/packages/fff/fff-network/files/etc/uci-defaults/25-migrate-network
> new file mode 100644
> index 00000000..2c0309e5
> --- /dev/null
> +++ b/src/packages/fff/fff-network/files/etc/uci-defaults/25-migrate-network
> @@ -0,0 +1,56 @@
> +#!/bin/sh
> +# License GPLv3
> +
> +setupPorts() {
> + # Add a single port to the *_PORTS config
> + # Usage: setupPorts <port id> <port mode>
> +
> + local port=$1
> + local mode=$2
> +
> + #default: BATMAN
> + if [ "$mode" = "WAN" ] ; then
> + WAN_PORTS="$WAN_PORTS $port"
> + elif [ "$mode" = "CLIENT" ] ; then
> + CLIENT_PORTS="$CLIENT_PORTS $port"
> + else
> + BATMAN_PORTS="$BATMAN_PORTS $port"
> + fi
> +}
> +
> +if [ -s /etc/network.config ]; then
> + . /etc/network.config
> +
> + if [ -n "$ETHMODE" ] && ! [ "$(uci get board.model.name)" = "gl-ar150" ] ; then
> + # real one-port
> + echo "# Migrated network config" >> "$firstbootscript"
> + echo ". /lib/functions/fff/networksetup" >> "$firstbootscript"
> + echo "setupOnePort 'eth0' '$ETHMODE'" >> "$firstbootscript"
> + else
> + # anything else will be switch-based
> + CLIENT_UCI="$(uci -q get network.vlan1.ports)"
> + BATMAN_UCI="$(uci -q get network.vlan3.ports)"
> +
> + # GL-AR150
> + if [ -n "$ETHMODE" ]; then
> + setupPorts "1" "$ETHMODE"
> + WAN_PORTS=""
> + fi
> +
> + # CPE210/510 v1
> + [ -n "$LAN0MODE" ] && setupPorts "5" "$LAN0MODE"
> + [ -n "$LAN1MODE" ] && setupPorts "4" "$LAN1MODE"
> +
> + # Only create entry if setting actually differs
> + # But: if entries are created, create entries for all VLANs
> + if [ ! "$CLIENT_UCI" = "$CLIENT_PORTS" ] || [ ! "$BATMAN_UCI" = "$BATMAN_PORTS" ]; then
> + echo "# Migrated network config" >> "$firstbootscript"
> + echo "uci set network.vlan1.ports='$CLIENT_PORTS'" >> "$firstbootscript"
> + echo "uci set network.vlan3.ports='$BATMAN_PORTS'" >> "$firstbootscript"
> + [ -n "$WAN_PORTS" ] && echo "uci set network.vlan2.ports='$WAN_PORTS'" >> "$firstbootscript"
> + echo "uci commit network" >> "$firstbootscript"
> + fi
> + fi
> +
> + rm /etc/network.config
> +fi
Mehr Informationen über die Mailingliste franken-dev