gluon-core: fixup ipaddr

This commit is contained in:
Maciej Krüger 2022-05-16 12:31:50 +02:00 committed by Alexander List
parent e74eb3fd90
commit d6244c990d

View File

@ -15,8 +15,8 @@ proto_gluon_mesh_setup() {
export CONFIG="$1" export CONFIG="$1"
export IFNAME="$2" export IFNAME="$2"
local fixed_mtu transitive local fixed_mtu transitive ipaddr ip6addr
json_get_vars fixed_mtu transitive json_get_vars fixed_mtu transitive ipaddr ip6addr
export FIXED_MTU="${fixed_mtu:-0}" export FIXED_MTU="${fixed_mtu:-0}"
export TRANSITIVE="${transitive:-0}" export TRANSITIVE="${transitive:-0}"
@ -30,18 +30,23 @@ proto_gluon_mesh_setup() {
proto_add_data proto_add_data
json_add_boolean fixed_mtu "$FIXED_MTU" json_add_boolean fixed_mtu "$FIXED_MTU"
json_add_boolean transitive "$TRANSITIVE" json_add_boolean transitive "$TRANSITIVE"
if [ ! -n "$ipaddr" ]; then if [ ! -z "$ipaddr" ]; then
json_add_string ipaddr "$ipaddr" json_add_string ipaddr "$ipaddr"
ip addr add "$ipaddr" dev "$IFNAME"
fi fi
if [ ! -n "$ip6addr" ]; then if [ ! -z "$ip6addr" ]; then
json_add_string ip6addr "$ip6addr" json_add_string ip6addr "$ip6addr"
ip addr add "$ip6addr" dev "$IFNAME"
fi fi
[ "$IFNAME" != 'br-wan' ] && json_add_string zone 'mesh' [ "$IFNAME" != 'br-wan' ] && json_add_string zone 'mesh'
proto_close_data proto_close_data
proto_send_update "$CONFIG" proto_send_update "$CONFIG"
if [ ! -z "$ipaddr" ]; then
ip addr add "$ipaddr" dev "$IFNAME"
fi
if [ ! -z "$ip6addr" ]; then
ip addr add "$ip6addr" dev "$IFNAME"
fi
for script in /lib/gluon/core/mesh/post-setup.d/*; do for script in /lib/gluon/core/mesh/post-setup.d/*; do
[ ! -x "$script" ] || "$script" [ ! -x "$script" ] || "$script"
done done
@ -51,6 +56,16 @@ proto_gluon_mesh_teardown() {
export CONFIG="$1" export CONFIG="$1"
export IFNAME="$2" export IFNAME="$2"
local ipaddr ip6addr
json_get_vars ipaddr ip6addr
if [ ! -z "$ipaddr" ]; then
ip addr del "$ipaddr" dev "$IFNAME"
fi
if [ ! -z "$ip6addr" ]; then
ip addr del "$ip6addr" dev "$IFNAME"
fi
for script in /lib/gluon/core/mesh/teardown.d/*; do for script in /lib/gluon/core/mesh/teardown.d/*; do
[ ! -x "$script" ] || "$script" [ ! -x "$script" ] || "$script"
done done