Merge remote-tracking branch 'origin/pwnagotchi-torch' into pwnagotchi-torch

This commit is contained in:
Jeroen Oudshoorn
2023-08-31 17:11:31 +02:00
3 changed files with 8 additions and 12 deletions

View File

@ -37,7 +37,9 @@ reload_brcm() {
# starts mon0 # starts mon0
start_monitor_interface() { start_monitor_interface() {
rfkill unblock all rfkill unblock all
airmon-ng start wlan0 ifconfig wlan0 up
iw phy `iw dev wlan0 info | gawk '/wiphy/ {printf "phy" $2}'` interface add wlan0mon type monitor
ifconfig wlan0 down && ifconfig wlan0mon up
} }
# stops mon0 # stops mon0

View File

@ -288,7 +288,6 @@
block: | block: |
export GOPATH=$HOME/go export GOPATH=$HOME/go
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
insertafter: EOF
when: golang.changed when: golang.changed
- name: Install bettercap v2.32.1 - name: Install bettercap v2.32.1

View File

@ -1,15 +1,17 @@
import os import os
import glob import glob
import _thread
import threading import threading
import importlib, importlib.util import importlib, importlib.util
import logging import logging
from concurrent.futures import ThreadPoolExecutor
default_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "default") default_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "default")
loaded = {} loaded = {}
database = {} database = {}
locks = {} locks = {}
THREAD_POOL_SIZE = 10
executor = ThreadPoolExecutor(max_workers=THREAD_POOL_SIZE)
class Plugin: class Plugin:
@classmethod @classmethod
@ -28,7 +30,6 @@ class Plugin:
if cb is not None and callable(cb): if cb is not None and callable(cb):
locks["%s::%s" % (plugin_name, attr_name)] = threading.Lock() locks["%s::%s" % (plugin_name, attr_name)] = threading.Lock()
def toggle_plugin(name, enable=True): def toggle_plugin(name, enable=True):
""" """
Load or unload a plugin Load or unload a plugin
@ -67,12 +68,10 @@ def toggle_plugin(name, enable=True):
return False return False
def on(event_name, *args, **kwargs): def on(event_name, *args, **kwargs):
for plugin_name in loaded.keys(): for plugin_name in loaded.keys():
one(plugin_name, event_name, *args, **kwargs) one(plugin_name, event_name, *args, **kwargs)
def locked_cb(lock_name, cb, *args, **kwargs): def locked_cb(lock_name, cb, *args, **kwargs):
global locks global locks
@ -82,7 +81,6 @@ def locked_cb(lock_name, cb, *args, **kwargs):
with locks[lock_name]: with locks[lock_name]:
cb(*args, *kwargs) cb(*args, *kwargs)
def one(plugin_name, event_name, *args, **kwargs): def one(plugin_name, event_name, *args, **kwargs):
global loaded global loaded
@ -94,12 +92,11 @@ def one(plugin_name, event_name, *args, **kwargs):
try: try:
lock_name = "%s::%s" % (plugin_name, cb_name) lock_name = "%s::%s" % (plugin_name, cb_name)
locked_cb_args = (lock_name, callback, *args, *kwargs) locked_cb_args = (lock_name, callback, *args, *kwargs)
_thread.start_new_thread(locked_cb, locked_cb_args) executor.submit(locked_cb, *locked_cb_args)
except Exception as e: except Exception as e:
logging.error("error while running %s.%s : %s" % (plugin_name, cb_name, e)) logging.error("error while running %s.%s : %s" % (plugin_name, cb_name, e))
logging.error(e, exc_info=True) logging.error(e, exc_info=True)
def load_from_file(filename): def load_from_file(filename):
logging.debug("loading %s" % filename) logging.debug("loading %s" % filename)
plugin_name = os.path.basename(filename.replace(".py", "")) plugin_name = os.path.basename(filename.replace(".py", ""))
@ -108,7 +105,6 @@ def load_from_file(filename):
spec.loader.exec_module(instance) spec.loader.exec_module(instance)
return plugin_name, instance return plugin_name, instance
def load_from_path(path, enabled=()): def load_from_path(path, enabled=()):
global loaded, database global loaded, database
logging.debug("loading plugins from %s - enabled: %s" % (path, enabled)) logging.debug("loading plugins from %s - enabled: %s" % (path, enabled))
@ -124,7 +120,6 @@ def load_from_path(path, enabled=()):
return loaded return loaded
def load(config): def load(config):
enabled = [name for name, options in config['main']['plugins'].items() if enabled = [name for name, options in config['main']['plugins'].items() if
'enabled' in options and options['enabled']] 'enabled' in options and options['enabled']]