Track used site per connection

This commit is contained in:
HelloZeroNet 2016-04-25 02:23:06 +02:00
parent 2a8355dba7
commit 75a5ab9441
3 changed files with 7 additions and 1 deletions

View file

@ -15,7 +15,7 @@ class Connection(object):
"sock", "sock_wrapped", "ip", "port", "cert_pin", "site_lock", "id", "protocol", "type", "server", "unpacker", "req_id",
"handshake", "crypt", "connected", "event_connected", "closed", "start_time", "last_recv_time",
"last_message_time", "last_send_time", "last_sent_time", "incomplete_buff_recv", "bytes_recv", "bytes_sent",
"last_ping_delay", "last_req_time", "last_cmd", "bad_actions", "name", "updateName", "waiting_requests", "waiting_streams"
"last_ping_delay", "last_req_time", "last_cmd", "bad_actions", "sites", "name", "updateName", "waiting_requests", "waiting_streams"
)
def __init__(self, server, ip, port, sock=None, site_lock=None):
@ -55,6 +55,7 @@ class Connection(object):
self.last_req_time = 0
self.last_cmd = None
self.bad_actions = 0
self.sites = 0
self.name = None
self.updateName()
@ -433,6 +434,7 @@ class Connection(object):
request.set(False)
self.waiting_requests = {}
self.waiting_streams = {}
self.sites = 0
self.server.removeConnection(self) # Remove connection from server registry
try:
if self.sock:

View file

@ -134,6 +134,8 @@ class FileRequest(object):
else:
peer = site.addPeer(self.connection.ip, self.connection.port, return_peer=True) # Add or get peer
if peer:
if not peer.connection:
peer.connect(self.connection) # Assign current connection to peer
peer.last_content_json_update = site.content_manager.contents[params["inner_path"]]["modified"]
if config.verbose:
self.log.debug(

View file

@ -61,6 +61,7 @@ class Peer(object):
if connection: # Connection specified
self.connection = connection
self.connection.sites += 1
else: # Try to find from connection pool or create new connection
self.connection = None
@ -71,6 +72,7 @@ class Peer(object):
self.connection = self.site.connection_server.getConnection(self.ip, self.port, site=self.site)
else:
self.connection = sys.modules["main"].file_server.getConnection(self.ip, self.port, site=self.site)
self.connection.sites += 1
except Exception, err:
self.onConnectionError()