mirror of
https://github.com/bettercap/bettercap
synced 2025-08-19 04:59:25 -07:00
fix: fixed a race condition while doing wifi channel hopping
This commit is contained in:
parent
fa403ad0ec
commit
7f905f4881
2 changed files with 8 additions and 1 deletions
|
@ -36,6 +36,7 @@ type WiFiModule struct {
|
|||
apConfig packets.Dot11ApConfig
|
||||
writes *sync.WaitGroup
|
||||
reads *sync.WaitGroup
|
||||
chanLock *sync.Mutex
|
||||
}
|
||||
|
||||
func NewWiFiModule(s *session.Session) *WiFiModule {
|
||||
|
@ -49,6 +50,7 @@ func NewWiFiModule(s *session.Session) *WiFiModule {
|
|||
apRunning: false,
|
||||
writes: &sync.WaitGroup{},
|
||||
reads: &sync.WaitGroup{},
|
||||
chanLock: &sync.Mutex{},
|
||||
}
|
||||
|
||||
w.AddHandler(session.NewModuleHandler("wifi.recon on", "",
|
||||
|
|
|
@ -8,6 +8,9 @@ import (
|
|||
)
|
||||
|
||||
func (w *WiFiModule) onChannel(channel int, cb func()) {
|
||||
w.chanLock.Lock()
|
||||
defer w.chanLock.Unlock()
|
||||
|
||||
prev := w.stickChan
|
||||
w.stickChan = channel
|
||||
|
||||
|
@ -46,11 +49,13 @@ func (w *WiFiModule) channelHopper() {
|
|||
channel = w.stickChan
|
||||
}
|
||||
|
||||
log.Debug("Hopping on channel %d", channel)
|
||||
log.Info("Hopping on channel %d", channel)
|
||||
|
||||
w.chanLock.Lock()
|
||||
if err := network.SetInterfaceChannel(w.Session.Interface.Name(), channel); err != nil {
|
||||
log.Warning("Error while hopping to channel %d: %s", channel, err)
|
||||
}
|
||||
w.chanLock.Unlock()
|
||||
|
||||
time.Sleep(delay)
|
||||
if !w.Running() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue