[Twisted-Python] Ftp client
andrew-twisted at puzzling.org
Wed Aug 3 11:21:48 EDT 2005
On Wed, Aug 03, 2005 at 04:53:34PM +0200, Michele Petrazzo wrote:
> Andrew Bennetts wrote:
> >What specific problems are you having with twisted.protocols.ftp.FTPClient?
> I change the ftpclient example with this code:
> def run():
> # Create the client
> creator = ClientCreator(reactor, FTPClient, user, passwd, 0)
> creator.connectTCP('192.168.1.1', 4559).addCallback(connectionMade)
> def connectionMade(ftpClient):
> # Get the current working directory
> ftpClient.pwd().addCallbacks(success, fail)
> One problem is that if the user has no password, I receive an error 
> (if I try to connect with a simple ftp client, when I connect to the
> server, if it see that I have no password, it connect me without
> password request), however if the user _has_ password, the client
> connect correctly.
Before connecting, can you add:
FTPClient.debug = True
Then we can see a full transcript of what's going on.
> if the user _has_ password, so I can connect, I want to send "LIST
> status" command, if I use:
> ftpClient.queueStringCommand("LIST").addCallbacks(success, fail)
> I receive , and if I use:
Right. LIST requires a data connection to be established, and directly
issuing a LIST without arranging for a PASV or PORT command and associated
connection will fail.
> fileList = FTPFileListProtocol()
> d = ftpClient.list(' status ', fileList)
> d.addCallbacks(showFiles, fail, callbackArgs=(fileList,))
> I receive 
Can you retry this with latest Twisted from SVN? There's a bug in error
reporting and DeferredLists here that's been fixed in SVN that will make
this much clearer.
I don't understand why you're passing ' status ' instead of just 'status',
More information about the Twisted-Python