diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-09-19 22:18:19 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-09-19 22:18:19 +0200 |
commit | 670536709b693f9b312a1f3da354d85eaf8a13b3 (patch) | |
tree | ec0cabe986dc123035eaaa97e3d7e7115aeb2b13 | |
parent | 31f6afc34ce95220963f0abcff3744d8a3291a80 (diff) | |
download | vyos-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.py | 13 |
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 |