Fix bug involving runcheck

This commit is contained in:
Arinerron 2018-05-01 23:50:29 -07:00
parent 0a7c3aeaab
commit 7973d7c8a6
No known key found for this signature in database
GPG Key ID: 99383627861C62F0
3 changed files with 22 additions and 17 deletions

View File

@ -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'

View File

@ -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

View File

@ -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