From 7931f514b63575ada5b95fccf81be91d3608ace0 Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 30 Jun 2020 18:34:13 -0500 Subject: [PATCH] Only hide blocks uploaded to us if we have outgoing peers (don't send to upload event handler) --- src/httpapi/miscclientapi/endpoints.py | 3 +-- src/httpapi/miscpublicapi/upload.py | 37 ++++++++++++++------------ 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/httpapi/miscclientapi/endpoints.py b/src/httpapi/miscclientapi/endpoints.py index 90e6d48b..a9439a6f 100644 --- a/src/httpapi/miscclientapi/endpoints.py +++ b/src/httpapi/miscclientapi/endpoints.py @@ -75,7 +75,6 @@ class PrivateEndpoints: raise ValueError('block hash needs to be alpha numeric') name = reconstructhash.reconstruct_hash(name) if name in client_api.publicAPI.hideBlocks: - #spawn(_delay_wait_for_share_block_removal) return Response("will be removed") else: client_api.publicAPI.hideBlocks.append(name) @@ -141,7 +140,7 @@ class PrivateEndpoints: def is_tor_ready(): """If Tor is starting up, the web UI is not ready to be used.""" return Response(str(g.too_many.get(NetController).readyState).lower()) - + @private_endpoints_bp.route('/gettoraddress') def get_tor_address(): """Return public Tor v3 Onion address for this node""" diff --git a/src/httpapi/miscpublicapi/upload.py b/src/httpapi/miscpublicapi/upload.py index 5ecfe6ad..cc0d27bb 100755 --- a/src/httpapi/miscpublicapi/upload.py +++ b/src/httpapi/miscpublicapi/upload.py @@ -1,21 +1,21 @@ -''' - Onionr - Private P2P Communication +"""Onionr - Private P2P Communication. + +Accept block uploads to the public API server +""" +import sys - Accept block uploads to the public API server -''' from gevent import spawn from gevent import threading - -import sys from flask import Response from flask import abort +from flask import g from onionrutils import localcommand from onionrblocks import blockimporter import onionrexceptions import logger -''' +""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -28,7 +28,7 @@ import logger You should have received a copy of the GNU General Public License along with this program. If not, see . -''' +""" def accept_upload(request): @@ -40,17 +40,19 @@ def accept_upload(request): try: b_hash = blockimporter.import_block_from_data(data) if b_hash: - spawn( - localcommand.local_command, - f'/daemon-event/upload_event', - post=True, - is_json=True, - postData={'block': b_hash} - ).get(timeout=10) + if g.too_many.get_by_string("OnionrCommunicatorDaemon").onlinePeers: + spawn( + localcommand.local_command, + f'/daemon-event/upload_event', + post=True, + is_json=True, + postData={'block': b_hash} + ).get(timeout=10) resp = 'success' else: resp = 'failure' - logger.warn(f'Error encountered importing uploaded block {b_hash}') + logger.warn( + f'Error encountered importing uploaded block {b_hash}') except onionrexceptions.BlacklistedBlock: logger.debug('uploaded block is blacklisted') resp = 'failure' @@ -62,7 +64,8 @@ def accept_upload(request): abort(400) elif resp == 'proof': resp = Response(resp, 400) - logger.warn(f'Error encountered importing uploaded block, invalid proof {b_hash}') + logger.warn( + f'Error importing uploaded block, invalid proof {b_hash}') else: resp = Response(resp) return resp