Store if it's tracker connection on connect

This commit is contained in:
shortcutme 2018-08-26 02:52:23 +02:00
parent 53a8c2d574
commit e05c432d14
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
4 changed files with 23 additions and 18 deletions

View file

@ -84,12 +84,14 @@ class SiteAnnouncerPlugin(object):
request["delete"] = True
# Sent request to tracker
tracker = connection_pool.get(tracker_address) # Re-use tracker connection if possible
if not tracker:
tracker_peer = connection_pool.get(tracker_address) # Re-use tracker connection if possible
if not tracker_peer:
tracker_ip, tracker_port = tracker_address.split(":")
tracker = Peer(tracker_ip, tracker_port, connection_server=self.site.connection_server)
connection_pool[tracker_address] = tracker
res = tracker.request("announce", request)
tracker_peer = Peer(tracker_ip, tracker_port, connection_server=self.site.connection_server)
tracker_peer.is_tracker_connection = True
connection_pool[tracker_address] = tracker_peer
res = tracker_peer.request("announce", request)
if not res or "peers" not in res:
if full_announce:
@ -116,14 +118,14 @@ class SiteAnnouncerPlugin(object):
if publickey not in request["onion_signs"]:
sign = CryptRsa.sign(res["onion_sign_this"], self.site.connection_server.tor_manager.getPrivatekey(onion))
request["onion_signs"][publickey] = sign
res = tracker.request("announce", request)
res = tracker_peer.request("announce", request)
if not res or "onion_sign_this" in res:
if full_announce:
time_full_announced[tracker_address] = 0
raise AnnounceError("Announce onion address to failed: %s" % res)
if full_announce:
tracker.remove() # Close connection, we don't need it in next 5 minute
tracker_peer.remove() # Close connection, we don't need it in next 5 minute
self.site.log.debug(
"Tracker announce result: zero://%s (sites: %s, new peers: %s) in %.3fs" %