summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-09-19 22:18:19 +0200
committerChristian Poessinger <christian@poessinger.com>2020-09-19 22:18:19 +0200
commit670536709b693f9b312a1f3da354d85eaf8a13b3 (patch)
treeec0cabe986dc123035eaaa97e3d7e7115aeb2b13
parent31f6afc34ce95220963f0abcff3744d8a3291a80 (diff)
downloadvyos-1x-670536709b693f9b312a1f3da354d85eaf8a13b3.tar.gz
vyos-1x-670536709b693f9b312a1f3da354d85eaf8a13b3.zip
wifi: ifconfig: T2875: add_to_bridge() must be called after starting services
hostapd/wpa_supplicant will control the admin state of an interface, thus we should re-add it to a bridge after we have launched those services.
-rw-r--r--python/vyos/ifconfig/wireless.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/python/vyos/ifconfig/wireless.py b/python/vyos/ifconfig/wireless.py
index 053566a1e..346577119 100644
--- a/python/vyos/ifconfig/wireless.py
+++ b/python/vyos/ifconfig/wireless.py
@@ -72,9 +72,22 @@ class WiFiIf(Interface):
interface setup code and provide a single point of entry when workin
on any interface. """
+ # We can not call add_to_bridge() until wpa_supplicant is running, thus
+ # we will remove the key from the config dict and react to this specal
+ # case in thie derived class.
+ # re-add ourselves to any bridge we might have fallen out of
+ bridge_member = ''
+ if 'is_bridge_member' in config:
+ bridge_member = config['is_bridge_member']
+ del config['is_bridge_member']
+
# call base class first
super().update(config)
+ # re-add ourselves to any bridge we might have fallen out of
+ if bridge_member:
+ self.add_to_bridge(bridge_member)
+
# Enable/Disable of an interface must always be done at the end of the
# derived class to make use of the ref-counting set_admin_state()
# function. We will only enable the interface if 'up' was called as