From d7db7a8060d382dea0a472645463970feca649bc Mon Sep 17 00:00:00 2001 From: shortcutme Date: Mon, 10 Apr 2017 01:16:34 +0200 Subject: [PATCH] Rev2035, Dont sign same onion address multiple time --- plugins/AnnounceZero/AnnounceZeroPlugin.py | 6 ++++-- src/Config.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/AnnounceZero/AnnounceZeroPlugin.py b/plugins/AnnounceZero/AnnounceZeroPlugin.py index 14dba61e..420ac182 100644 --- a/plugins/AnnounceZero/AnnounceZeroPlugin.py +++ b/plugins/AnnounceZero/AnnounceZeroPlugin.py @@ -103,8 +103,10 @@ class SitePlugin(object): request["need_num"] = 0 for site in sites: onion = self.connection_server.tor_manager.getOnion(site.address) - sign = CryptRsa.sign(res["onion_sign_this"], self.connection_server.tor_manager.getPrivatekey(onion)) - request["onion_signs"][self.connection_server.tor_manager.getPublickey(onion)] = sign + publickey = self.connection_server.tor_manager.getPublickey(onion) + if publickey not in request["onion_signs"]: + sign = CryptRsa.sign(res["onion_sign_this"], self.connection_server.tor_manager.getPrivatekey(onion)) + request["onion_signs"][publickey] = sign res = tracker.request("announce", request) if not res or "onion_sign_this" in res: self.log.debug("Announce onion address to %s failed: %s" % (tracker_address, res)) diff --git a/src/Config.py b/src/Config.py index 72084e5a..7eacfdd3 100644 --- a/src/Config.py +++ b/src/Config.py @@ -10,7 +10,7 @@ class Config(object): def __init__(self, argv): self.version = "0.5.3" - self.rev = 2034 + self.rev = 2035 self.argv = argv self.action = None self.config_file = "zeronet.conf"