fixed thread execution channel hopper

This commit is contained in:
anoduck 2024-01-26 13:31:32 -05:00
parent 5716d1c438
commit 9d710fa5cb

View file

@ -220,15 +220,16 @@ class Purge(object):
def __getitem__(self, pkt):
return pkt
def do_hop(self, mon_if, chans) -> None:
def do_hop(self, mon_if, chans, log) -> None:
thread = threading.current_thread()
log.debug(f'Do Hop: name={thread.name}, daemon={thread.daemon}')
ichan = choice(chans)
log.debug('Hopping on: {0}'.format(ichan))
os.system(f'iw dev {self.mon_if} set channel {str(ichan)}')
log.debug('Channel set to {0}'.format(ichan))
def channel_runner(self, mon_if, channels, lock) -> None:
self.mon_if = mon_if
self.channels = channels
def channel_runner(self, lock, log) -> None:
mon_if = self.mon_if
log.info('Channel Runner NG started.')
log.info('Preliminary channel list: {0}'.format(self.channels))
chanlist = self.channels.split(',')
@ -236,9 +237,10 @@ class Purge(object):
chans = [int(chan) for chan in chlist]
log.info('Channel list: {0}'.format(chlist))
thread = threading.current_thread()
print(f'name={thread.name}, daemon={thread.daemon}')
log.debug(
f'Channel Runner: name={thread.name}, daemon={thread.daemon}')
timer = threading.Timer(14.7, self.do_hop,
args=(mon_if, chans))
args=(mon_if, chans, log))
while True:
with lock:
timer.start()
@ -329,10 +331,7 @@ class Purge(object):
monitor=True)
cts_sniff.start()
lock = threading.Lock()
channel_thread = threading.Thread(target=self.channel_runner,
args=(self.mon_if,
self.channels, lock))
channel_thread.start()
self.channel_runner(lock, log)
log.info('Channel runner started.')
log.info('Probe sniffer started')
log.info('CTS sniffer started')