]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
docs/FTP: the Twisted patch (t3462) has landed, will be in the next release
authorBrian Warner <warner@lothar.com>
Tue, 23 Feb 2010 21:04:02 +0000 (16:04 -0500)
committerBrian Warner <warner@lothar.com>
Tue, 23 Feb 2010 21:04:02 +0000 (16:04 -0500)
docs/frontends/FTP-and-SFTP.txt

index df63a877571a2df6dcc7a569d5dc69a798bcc518..7fe28de3e56f066c105001996275ea02c43fdf2a 100644 (file)
@@ -145,70 +145,9 @@ library that is frequently installed as /usr/lib/libcryptopp.a, to avoid
 problems with non-alphanumerics in filenames).
 
 The FTP server requires code in Twisted that enables asynchronous closing of
-file-upload operations. This code was not in the Twisted-8.2.0 release, and
-has not been committed to SVN trunk as of r27213 (see
-http://twistedmatrix.com/trac/ticket/3462 for details). So it may be
-necessary to apply the following patch. The Tahoe node will refuse to start
-the FTP server if it detects that this patch has not been applied.
-
-Index: twisted/protocols/ftp.py
-===================================================================
---- twisted/protocols/ftp.py   (revision 24956)
-+++ twisted/protocols/ftp.py   (working copy)
-@@ -1049,7 +1049,6 @@
-                 cons = ASCIIConsumerWrapper(cons)
-             d = self.dtpInstance.registerConsumer(cons)
--            d.addCallbacks(cbSent, ebSent)
-             # Tell them what to doooo
-             if self.dtpInstance.isConnected:
-@@ -1062,6 +1061,8 @@
-         def cbOpened(file):
-             d = file.receive()
-             d.addCallback(cbConsumer)
-+            d.addCallback(lambda ignored: file.close())
-+            d.addCallbacks(cbSent, ebSent)
-             return d
-         def ebOpened(err):
-@@ -1434,7 +1435,14 @@
-         @rtype: C{Deferred} of C{IConsumer}
-         """
-+    def close():
-+        """
-+        Perform any post-write work that needs to be done. This method may
-+        only be invoked once on each provider, and will always be invoked
-+        after receive().
-+        @rtype: C{Deferred} of anything: the value is ignored
-+        """
- def _getgroups(uid):
-     """Return the primary and supplementary groups for the given UID.
-@@ -1795,6 +1803,8 @@
-         # FileConsumer will close the file object
-         return defer.succeed(FileConsumer(self.fObj))
-+    def close(self):
-+        return defer.succeed(None)
- class FTPRealm:
-Index: twisted/vfs/adapters/ftp.py
-===================================================================
---- twisted/vfs/adapters/ftp.py        (revision 24956)
-+++ twisted/vfs/adapters/ftp.py        (working copy)
-@@ -295,6 +295,11 @@
-         """
-         return defer.succeed(IConsumer(self.node))
-+    def close(self):
-+        """
-+        Perform post-write actions.
-+        """
-+        return defer.succeed(None)
- class _FileToConsumerAdapter(object):
+file-upload operations. This code was landed to Twisted's SVN trunk in r28453
+on 23-Feb-2010, slightly too late for the Twisted-10.0 release, but it should
+be present in the next release after that. To use Tahoe's FTP server with
+Twisted-10.0 or earlier, you will need to apply the patch attached to
+http://twistedmatrix.com/trac/ticket/3462 . The Tahoe node will refuse to
+start the FTP server unless it detects the necessary support code in Twisted.