Skip to content

Commit

Permalink
sftpd.py: avoid keeping a reference to the root dirnode during the en…
Browse files Browse the repository at this point in the history
…tire SFTP session

This doesn't actually fix tahoe-lafs#1045 but probably shouldn't hurt.
  • Loading branch information
ctrlaltdel committed Oct 24, 2010
1 parent c4f8376 commit aefcd3b
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 7 deletions.
11 changes: 5 additions & 6 deletions src/allmydata/frontends/sftpd.py
Expand Up @@ -942,16 +942,16 @@ def _reload():

class SFTPUserHandler(ConchUser, PrefixingLogMixin):
implements(ISFTPServer)
def __init__(self, client, rootnode, username):
def __init__(self, client, rootcap, username):
ConchUser.__init__(self)
PrefixingLogMixin.__init__(self, facility="tahoe.sftp", prefix=username)
if noisy: self.log(".__init__(%r, %r, %r)" % (client, rootnode, username), level=NOISY)
if noisy: self.log(".__init__(%r, %r)" % (client, username), level=NOISY)

self.channelLookup["session"] = session.SSHSession
self.subsystemLookup["sftp"] = FileTransferServer

self._client = client
self._root = rootnode
self._rootcap = rootcap
self._username = username
self._convergence = client.convergence

Expand Down Expand Up @@ -1820,7 +1820,7 @@ def _get_root(self, path):
d.addCallback(lambda ign: self._client.create_node_from_uri(path[1].encode('utf-8')))
d.addCallback(lambda root: (root, path[2:]))
else:
d.addCallback(lambda ign: (self._root, path))
d.addCallback(lambda ign: (self._client.create_node_from_uri(self._rootcap), path))
return d

def _get_parent_or_node(self, path):
Expand Down Expand Up @@ -1910,8 +1910,7 @@ def __init__(self, client):

def requestAvatar(self, avatarID, mind, interface):
assert interface == IConchUser, interface
rootnode = self._client.create_node_from_uri(avatarID.rootcap)
handler = SFTPUserHandler(self._client, rootnode, avatarID.username)
handler = SFTPUserHandler(self._client, avatarID.rootcap, avatarID.username)
return (interface, handler, handler.logout)


Expand Down
2 changes: 1 addition & 1 deletion src/allmydata/test/test_sftp.py
Expand Up @@ -75,7 +75,7 @@ def _created_root(node):
self.root = node
self.root_uri = node.get_uri()
sftpd._reload()
self.handler = sftpd.SFTPUserHandler(self.client, self.root, self.username)
self.handler = sftpd.SFTPUserHandler(self.client, self.root_uri, self.username)
d.addCallback(_created_root)
return d

Expand Down

0 comments on commit aefcd3b

Please sign in to comment.