[PATCH 2/2] fff-babeld: Add prefix to configuration name
robert
rlanghammer at web.de
Di Jun 25 14:26:02 CEST 2019
Hallo Fabian,
das ist eine nette Lösung , und das unschöne grep ist auch weg. Find ich
gut. Die exit 1 kommen sicher auch noch weg wie im 1/1
Reviewed-by: Robert Langhammer <rlanghammer at web.de>
Am 22.06.19 um 21:51 schrieb Fabian Bläse:
> When the user removes a peer from /etc/config/gateway,
> the script has to be able to find any leftover configurations
> that have been created for it.
>
> This can be made very easy by prepending a prefix to every
> automatically generated configuration.
>
> This also allows to remove the nasty check for the babeld default interface.
> Therefore the naming check for cfg* also can be removed.
>
> As a side effect all manually created configuration blocks that do not match a
> prefix will not be touched by configuregateway.
>
> Signed-off-by: Fabian Bläse <fabian at blaese.de>
> ---
> Using --word-diff might be very handy for reviewing this patch. :-)
> ---
> .../fff-babeld/files/etc/gateway.d/40-babel | 47 +++++++++----------
> 1 file changed, 23 insertions(+), 24 deletions(-)
>
> diff --git a/src/packages/fff/fff-babeld/files/etc/gateway.d/40-babel b/src/packages/fff/fff-babeld/files/etc/gateway.d/40-babel
> index 4c94a12..e71f597 100644
> --- a/src/packages/fff/fff-babeld/files/etc/gateway.d/40-babel
> +++ b/src/packages/fff/fff-babeld/files/etc/gateway.d/40-babel
> @@ -10,15 +10,19 @@ configure() {
> # remove peers missing in gateway config
> remove_babelpeer() {
> local name="$1"
> - if ! echo $name | grep cfg > /dev/null; then # do not delete default interface
> - if ! uci -q get gateway.$name > /dev/null; then
> - # remove interface
> - uci -q del network.$name
> - # remove iif-rules
> - babel_delete_iifrules "$name" || exit 1
> - # remove babel interface
> - babel_delete_interface "$name" || exit 1
> - fi
> +
> + # check prefix
> + if [ "$name" = "${name#babelpeer_}" ]; then
> + return
> + fi
> +
> + if ! uci -q get gateway.$name > /dev/null; then
> + # remove interface
> + uci -q del network.$name
> + # remove iif-rules
> + babel_delete_iifrules "$name" || exit 1
> + # remove babel interface
> + babel_delete_interface "$name" || exit 1
> fi
> }
>
> @@ -28,15 +32,10 @@ configure() {
> #add new peers
> add_babelpeer() {
> local name="$1"
> + local prefixname="babelpeer_$name"
> local vlan
> local type
>
> - # prohibit cfg* as name
> - if echo $name | grep cfg > /dev/null; then
> - echo "ERROR: name $name is invalid for babelpeer!"
> - exit 1
> - fi
> -
> # get iface
> if vlan=$(uci -q get gateway.$name.vlan); then
> iface="${SWITCHDEV}.$vlan"
> @@ -62,21 +61,21 @@ configure() {
> fi
>
> # add interface
> - uci set network.$name=interface
> - uci set network.$name.proto=static
> - uci set network.$name.ifname=$iface
> + uci set network.$prefixname=interface
> + uci set network.$prefixname.proto=static
> + uci set network.$prefixname.ifname=$iface
>
> # add iif-rules
> - babel_add_iifrules "$name" || exit 1
> + babel_add_iifrules "$prefixname" || exit 1
>
> # peer_ip
> - uci -q delete "network.$name.ipaddr"
> - uci -q delete "network.$name.ip6addr"
> - babel_add_peeraddr "network.$name.ipaddr" || exit 1
> - babel_add_peer6addr "network.$name.ip6addr" || exit 1
> + uci -q delete "network.$prefixname.ipaddr"
> + uci -q delete "network.$prefixname.ip6addr"
> + babel_add_peeraddr "network.$prefixname.ipaddr" || exit 1
> + babel_add_peer6addr "network.$prefixname.ip6addr" || exit 1
>
> # add babel interface
> - babel_add_interface "$name" "$iface" "$type" "$rxcost" || exit 1
> + babel_add_interface "$prefixname" "$iface" "$type" "$rxcost" || exit 1
> }
>
> config_load gateway
Mehr Informationen über die Mailingliste franken-dev