diff --git a/pwnagotchi/defaults.toml b/pwnagotchi/defaults.toml index 9bf2e5b7..c554968d 100644 --- a/pwnagotchi/defaults.toml +++ b/pwnagotchi/defaults.toml @@ -83,7 +83,7 @@ main.plugins.memtemp.scale = "celsius" main.plugins.memtemp.orientation = "horizontal" main.plugins.paw-gps.enabled = false -main.plugins.paw-gps.ip = "" +main.plugins.paw-gps.ip = "192.168.44.1:8080" main.plugins.ups_lite.enabled = false main.plugins.ups_lite.shutdown = 2 diff --git a/pwnagotchi/plugins/default/paw-gps.py b/pwnagotchi/plugins/default/paw-gps.py index 58d257e6..c4837b1c 100644 --- a/pwnagotchi/plugins/default/paw-gps.py +++ b/pwnagotchi/plugins/default/paw-gps.py @@ -10,25 +10,30 @@ GUIDE HERE: https://community.pwnagotchi.ai/t/setting-up-paw-gps-on-android class PawGPS(plugins.Plugin): __author__ = 'leont' - __version__ = '1.0.0' + __version__ = '1.0.1' __name__ = 'pawgps' __license__ = 'GPL3' - __description__ = 'Saves GPS coordinates whenever an handshake is captured. The GPS data is get from PAW on android ' + __description__ = 'Saves GPS coordinates whenever an handshake is captured. The GPS data is get from PAW on android.' def on_loaded(self): - logging.info("PAW-GPS loaded") - if 'ip' not in self.options or ('ip' in self.options and self.options['ip'] is None): - logging.info("PAW-GPS: No IP Address in the config file is defined, it uses the default (192.168.44.1:8080)") + logging.info("[paw-gps] plugin loaded") + if 'ip' not in self.options or ('ip' in self.options and self.options['ip'] is None) or (len('ip' in self.options and self.options['ip']) is 0): + logging.info("[paw-gps] no IP Address defined in the config file, will uses paw server default (192.168.44.1:8080)") def on_handshake(self, agent, filename, access_point, client_station): - if 'ip' not in self.options or ('ip' in self.options and self.options['ip'] is None): + if 'ip' not in self.options or ('ip' in self.options and self.options['ip'] is None or (len('ip' in self.options and self.options['ip']) is 0)): ip = "192.168.44.1:8080" else: ip = self.options['ip'] - gps = requests.get('http://' + ip + '/gps.xhtml') - gps_filename = filename.replace('.pcap', '.paw-gps.json') - - logging.info("saving GPS to %s (%s)" % (gps_filename, gps)) - with open(gps_filename, 'w+t') as f: - f.write(gps.text) + try: + gps = requests.get('http://' + ip + '/gps.xhtml') + try: + gps_filename = filename.replace('.pcap', '.paw-gps.json') + logging.info("[paw-gps] saving GPS data to %s" % (gps_filename)) + with open(gps_filename, 'w+t') as f: + f.write(gps.text) + except Exception as error: + logging.error(f"[paw-gps] encountered error while saving gps data: {error}") + except Exception as error: + logging.error(f"[paw-gps] encountered error while getting gps data: {error}")