rev125, Class statistics, OpenSSL disabled on OSX by default because of possible segfault, --disable_openssl command line parameter, Save memory on Connection, Peer and FileRequest objects using slots, Dont store modification time from the far future, Able to query modified files from peer, Allow reannounce in 30secs, Use with command in SiteStorage, Always create dir before write file, PeerCmd shell command to query specific command from peer

This commit is contained in:
HelloZeroNet 2015-04-29 23:12:45 +02:00
parent 71be41ade0
commit 099fe575a0
14 changed files with 126 additions and 23 deletions

View file

@ -7,7 +7,9 @@ from util import RateLimit
FILE_BUFF = 1024*512
# Request from me
class FileRequest:
class FileRequest(object):
__slots__ = ("server", "connection", "req_id", "sites", "log", "responded")
def __init__(self, server, connection):
self.server = server
self.connection = connection
@ -53,6 +55,8 @@ class FileRequest:
elif cmd == "pex":
self.actionPex(params)
elif cmd == "modified":
self.actionModified(params)
elif cmd == "ping":
self.actionPing()
else:
@ -158,6 +162,17 @@ class FileRequest:
self.response({"peers": packed_peers})
# Get modified content.json files since
def actionModified(self, params):
site = self.sites.get(params["site"])
if not site or not site.settings["serving"]: # Site unknown or not serving
self.response({"error": "Unknown site"})
return False
modified_files = {inner_path: content["modified"] for inner_path, content in site.content_manager.contents.iteritems() if content["modified"] > params["since"]}
self.response({"modified_files": modified_files})
# Send a simple Pong! answer
def actionPing(self):
self.response("Pong!")