From 68d7686a03d33be255bbe21bb0318a4341e62b9f Mon Sep 17 00:00:00 2001 From: Simone Margaritelli <evilsocket@gmail.com> Date: Wed, 23 Oct 2019 19:32:24 +0200 Subject: [PATCH] misc: small fix or general refactoring i did not bother commenting --- pwnagotchi/agent.py | 3 ++- pwnagotchi/automata.py | 2 ++ pwnagotchi/bettercap.py | 33 +++++++++++++++++---------------- pwnagotchi/mesh/utils.py | 4 ++-- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/pwnagotchi/agent.py b/pwnagotchi/agent.py index b3dd8cf..53aa803 100644 --- a/pwnagotchi/agent.py +++ b/pwnagotchi/agent.py @@ -284,12 +284,13 @@ class Agent(Client, Automata, AsyncAdvertiser, AsyncTrainer): self.run('events.clear') - logging.debug("event polling started ...") while True: time.sleep(1) new_shakes = 0 + logging.debug("polling events ...") + try: s = self.session() self._update_uptime(s) diff --git a/pwnagotchi/automata.py b/pwnagotchi/automata.py index b0ae92f..2d35392 100644 --- a/pwnagotchi/automata.py +++ b/pwnagotchi/automata.py @@ -89,6 +89,8 @@ class Automata(object): return self._epoch.any_activity def next_epoch(self): + logging.debug("agent.next_epoch()") + was_stale = self.is_stale() did_miss = self._epoch.num_missed diff --git a/pwnagotchi/bettercap.py b/pwnagotchi/bettercap.py index d55fc33..05213ae 100644 --- a/pwnagotchi/bettercap.py +++ b/pwnagotchi/bettercap.py @@ -3,6 +3,20 @@ import requests from requests.auth import HTTPBasicAuth +def decode(r, verbose_errors=True): + try: + return r.json() + except Exception as e: + if r.status_code == 200: + logging.error("error while decoding json: error='%s' resp='%s'" % (e, r.text)) + else: + err = "error %d: %s" % (r.status_code, r.text.strip()) + if verbose_errors: + logging.info(err) + raise Exception(err) + return r.text + + class Client(object): def __init__(self, hostname='localhost', scheme='http', port=8081, username='user', password='pass'): self.hostname = hostname @@ -13,27 +27,14 @@ class Client(object): self.url = "%s://%s:%d/api" % (scheme, hostname, port) self.auth = HTTPBasicAuth(username, password) - def _decode(self, r, verbose_errors=True): - try: - return r.json() - except Exception as e: - if r.status_code == 200: - logging.error("error while decoding json: error='%s' resp='%s'" % (e, r.text)) - else: - err = "error %d: %s" % (r.status_code, r.text.strip()) - if verbose_errors: - logging.info(err) - raise Exception(err) - return r.text - def session(self): r = requests.get("%s/session" % self.url, auth=self.auth) - return self._decode(r) + return decode(r) def events(self): r = requests.get("%s/events" % self.url, auth=self.auth) - return self._decode(r) + return decode(r) def run(self, command, verbose_errors=True): r = requests.post("%s/session" % self.url, auth=self.auth, json={'cmd': command}) - return self._decode(r, verbose_errors=verbose_errors) + return decode(r, verbose_errors=verbose_errors) diff --git a/pwnagotchi/mesh/utils.py b/pwnagotchi/mesh/utils.py index bb77eb5..7b5c92d 100644 --- a/pwnagotchi/mesh/utils.py +++ b/pwnagotchi/mesh/utils.py @@ -66,9 +66,9 @@ class AsyncAdvertiser(object): def _adv_poller(self): while True: - logging.debug("polling pwngrid-peer for peers ...") - try: + logging.debug("polling pwngrid-peer for peers ...") + grid_peers = grid.peers() new_peers = {}