diff --git a/onionr/api.py b/onionr/api.py index 903a35c1..a1f260ca 100755 --- a/onionr/api.py +++ b/onionr/api.py @@ -136,7 +136,7 @@ class API: if action == 'hello': resp = Response('Hello, World! ' + request.host) elif action == 'shutdown': - request.environ.get('werkzeug.server.shutdown')() + # request.environ.get('werkzeug.server.shutdown')() resp = Response('Goodbye') elif action == 'ping': resp = Response('pong') @@ -163,7 +163,7 @@ class API: time.sleep(self._privateDelayTime - elapsed) return resp - + @app.route('/') def banner(): self.mimeType = 'text/html' diff --git a/onionr/communicator.py b/onionr/communicator.py index 2bd49826..a5476507 100755 --- a/onionr/communicator.py +++ b/onionr/communicator.py @@ -114,8 +114,9 @@ class OnionrCommunicate: elif command[0] == 'runCheck': logger.info('Status check; looks good.') open('data/.runcheck', 'w+').close() - break + apiRunningCheckCount += 1 + # check if local API is up if apiRunningCheckCount > apiRunningCheckRate: if self._core._utils.localCommand('ping') != 'pong': @@ -131,6 +132,7 @@ class OnionrCommunicate: apiRunningCheckCount = 0 time.sleep(1) + self._netController.killTor() return diff --git a/onionr/onionrutils.py b/onionr/onionrutils.py index 3c4d0497..4fbb30e8 100644 --- a/onionr/onionrutils.py +++ b/onionr/onionrutils.py @@ -400,21 +400,24 @@ class OnionrUtils: retData = row[0] return retData - def isCommunicatorRunning(timeout = 5, interval = 0.1): - runcheck_file = 'data/.runcheck' + def isCommunicatorRunning(self, timeout = 5, interval = 0.1): + try: + runcheck_file = 'data/.runcheck' - if os.path.isfile(runcheck_file): - os.remove(runcheck_file) - logger.debug('%s file appears to have existed before the run check.' % runcheck_file, timestamp = False) - - self._core.daemonQueueAdd('runCheck') - starttime = time.time() - - while True: - time.sleep(interval) if os.path.isfile(runcheck_file): os.remove(runcheck_file) + logger.debug('%s file appears to have existed before the run check.' % runcheck_file, timestamp = False) - return True - elif starttime - time.time() >= timeout: - return False + self._core.daemonQueueAdd('runCheck') + starttime = time.time() + + while True: + time.sleep(interval) + if os.path.isfile(runcheck_file): + os.remove(runcheck_file) + + return True + elif time.time() - starttime >= timeout: + return False + except: + return False