on updates connect to real peer ip, connect using pex in passive mode, referrer typo fix
This commit is contained in:
parent
bba9470175
commit
804fed2659
4 changed files with 5 additions and 5 deletions
|
@ -68,7 +68,7 @@ class FileRequest:
|
||||||
site.onFileDone(params["inner_path"]) # Trigger filedone
|
site.onFileDone(params["inner_path"]) # Trigger filedone
|
||||||
|
|
||||||
if params["inner_path"].endswith("content.json"): # Download every changed file from peer
|
if params["inner_path"].endswith("content.json"): # Download every changed file from peer
|
||||||
peer = site.addPeer(*params["peer"], return_peer = True) # Add or get peer
|
peer = site.addPeer(self.connection.ip, self.connection.port, return_peer = True) # Add or get peer
|
||||||
site.onComplete.once(lambda: site.publish(inner_path=params["inner_path"]), "publish_%s" % params["inner_path"]) # On complete publish to other peers
|
site.onComplete.once(lambda: site.publish(inner_path=params["inner_path"]), "publish_%s" % params["inner_path"]) # On complete publish to other peers
|
||||||
gevent.spawn(
|
gevent.spawn(
|
||||||
lambda: site.downloadContent(params["inner_path"], peer=peer)
|
lambda: site.downloadContent(params["inner_path"], peer=peer)
|
||||||
|
@ -136,7 +136,7 @@ class FileRequest:
|
||||||
random.shuffle(peers)
|
random.shuffle(peers)
|
||||||
packed_peers = [peer.packAddress() for peer in peers if peer.key not in got_peer_keys][0:params["need"]]
|
packed_peers = [peer.packAddress() for peer in peers if peer.key not in got_peer_keys][0:params["need"]]
|
||||||
if added:
|
if added:
|
||||||
self.log.debug("Added %s peers to %s using PEX, sending back %s" % (added, site, len(packed_peers)))
|
self.log.debug("Added %s peers to %s using pex, sending back %s" % (added, site, len(packed_peers)))
|
||||||
self.response({"peers": packed_peers})
|
self.response({"peers": packed_peers})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -159,7 +159,7 @@ class Peer:
|
||||||
address = self.unpackAddress(peer)
|
address = self.unpackAddress(peer)
|
||||||
if (site.addPeer(*address)): added += 1
|
if (site.addPeer(*address)): added += 1
|
||||||
if added:
|
if added:
|
||||||
self.log.debug("Added peers using PEX: %s" % added)
|
self.log.debug("Added peers using pex: %s" % added)
|
||||||
return added
|
return added
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -415,7 +415,7 @@ class Site:
|
||||||
if connected < need: # Need more than we have
|
if connected < need: # Need more than we have
|
||||||
for peer in self.peers.values():
|
for peer in self.peers.values():
|
||||||
if not peer.connection or not peer.connection.connected: # No peer connection or disconnected
|
if not peer.connection or not peer.connection.connected: # No peer connection or disconnected
|
||||||
peer.connect()
|
peer.pex() # Initiate peer exchange
|
||||||
if peer.connection and peer.connection.connected: connected += 1 # Successfully connected
|
if peer.connection and peer.connection.connected: connected += 1 # Successfully connected
|
||||||
if connected >= need: break
|
if connected >= need: break
|
||||||
return connected
|
return connected
|
||||||
|
|
|
@ -198,7 +198,7 @@ class UiRequest(object):
|
||||||
referer = self.env.get("HTTP_REFERER")
|
referer = self.env.get("HTTP_REFERER")
|
||||||
if referer and match: # Only allow same site to receive media
|
if referer and match: # Only allow same site to receive media
|
||||||
if not self.isMediaRequestAllowed(match.group("address"), referer):
|
if not self.isMediaRequestAllowed(match.group("address"), referer):
|
||||||
return self.error403("Media referer error") # Referer not starts same address as requested path
|
return self.error403("Media referrer error") # Referrer not starts same address as requested path
|
||||||
|
|
||||||
if match: # Looks like a valid path
|
if match: # Looks like a valid path
|
||||||
address = match.group("address")
|
address = match.group("address")
|
||||||
|
|
Loading…
Reference in a new issue