mirror of
https://github.com/bettercap/bettercap
synced 2025-08-20 21:43:18 -07:00
fix: fixed a lock issue on the wifi modules (fixes #535)
This commit is contained in:
parent
6e90b3d26c
commit
28063ff7c0
1 changed files with 9 additions and 5 deletions
|
@ -23,10 +23,7 @@ func (mod *WiFiModule) isInterfaceConnected() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (mod *WiFiModule) hop(channel int) (mustStop bool) {
|
func (mod *WiFiModule) hopUnlocked(channel int) (mustStop bool) {
|
||||||
mod.chanLock.Lock()
|
|
||||||
defer mod.chanLock.Unlock()
|
|
||||||
|
|
||||||
mod.Debug("hopping on channel %d", channel)
|
mod.Debug("hopping on channel %d", channel)
|
||||||
|
|
||||||
if err := network.SetInterfaceChannel(mod.iface.Name(), channel); err != nil {
|
if err := network.SetInterfaceChannel(mod.iface.Name(), channel); err != nil {
|
||||||
|
@ -42,6 +39,13 @@ func (mod *WiFiModule) hop(channel int) (mustStop bool) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (mod *WiFiModule) hop(channel int) (mustStop bool) {
|
||||||
|
mod.chanLock.Lock()
|
||||||
|
defer mod.chanLock.Unlock()
|
||||||
|
|
||||||
|
return mod.hopUnlocked(channel)
|
||||||
|
}
|
||||||
|
|
||||||
func (mod *WiFiModule) onChannel(channel int, cb func()) {
|
func (mod *WiFiModule) onChannel(channel int, cb func()) {
|
||||||
mod.chanLock.Lock()
|
mod.chanLock.Lock()
|
||||||
defer mod.chanLock.Unlock()
|
defer mod.chanLock.Unlock()
|
||||||
|
@ -49,7 +53,7 @@ func (mod *WiFiModule) onChannel(channel int, cb func()) {
|
||||||
prev := mod.stickChan
|
prev := mod.stickChan
|
||||||
mod.stickChan = channel
|
mod.stickChan = channel
|
||||||
|
|
||||||
mod.hop(channel)
|
mod.hopUnlocked(channel)
|
||||||
|
|
||||||
cb()
|
cb()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue