From 42fe6c5a1565d40df76c6f330397f2e0029275c9 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Mon, 16 Aug 2021 09:04:50 -0700 Subject: [PATCH] auto-t: hostapd.py: remove _hostapd_restarted concept The destructor was trying to do more than the scope of a destructor by trying to handle this single case of hostapd being restarted. Instead we can simply pass a keyword argument 'reinit' to the constructor to tell it to reinitialize everything. And as for killing hostapd this can be done in ungraceful_restart itself rather than trying to handle it in the destructor. --- autotests/util/hostapd.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/autotests/util/hostapd.py b/autotests/util/hostapd.py index aabc997b..8b81d467 100644 --- a/autotests/util/hostapd.py +++ b/autotests/util/hostapd.py @@ -43,10 +43,10 @@ class HostapdCLI(object): return cls._instances[config] - def _init_hostapd(self, config): + def _init_hostapd(self, config, reinit=False): global ctrl_count - if self._initialized: + if self._initialized and not reinit: return self._initialized = True @@ -60,9 +60,6 @@ class HostapdCLI(object): hapd = ctx.hostapd[config] - if not hasattr(self, '_hostapd_restarted'): - self._hostapd_restarted = False - self.interface = hapd.intf self.config = hapd.config @@ -131,12 +128,6 @@ class HostapdCLI(object): except: pass - if self._hostapd_restarted: - ctx.stop_process(ctx.hostapd.process, force) - - self.interface.set_interface_state('down') - self.interface.set_interface_state('up') - def __del__(self): self._del_hostapd() @@ -215,8 +206,10 @@ class HostapdCLI(object): ''' Ungracefully kill and restart hostapd ''' - # set flag so hostapd can be killed after the test - self._hostapd_restarted = True + ctx.stop_process(ctx.hostapd.process, True) + + self.interface.set_interface_state('down') + self.interface.set_interface_state('up') self._del_hostapd(force=True) @@ -226,7 +219,7 @@ class HostapdCLI(object): time.sleep(1) # New hostapd process, so re-init - self._init_hostapd(config=self.config) + self._init_hostapd(config=self.config, reinit=True) def req_beacon(self, addr, request): '''