cl-ftp

2015-06-08

FTP library

Upstream URL

web.kepibu.org/code/lisp/cl-ftp/cl-ftp.tar.gz

Author

Matthew Danish <mdanish@andrew.cmu.edu>

Maintainer

pinterface <pix@kepibu.org>

License

MIT/X style
README

1Overview

CL-FTP is a library which provides FTP client functionality to a Common Lisp program. CL-FTP uses the USOCKET package for network sockets and the SPLIT-SEQUENCE package for some parsing needs.

2Examples

  (with-ftp-connection (conn :hostname "foo")
    (retrieve-file conn "bar" "baz"))

Further examples should be included with your copy of this software. See simple-client.lisp for a simple FTP client written with CL-FTP.

3#'RETRIEVE-FILE / #'STORE-FILE hang or don't work

Short answer
Use passive FTP.
Long answer
FTP is something of a weird protocol, and this tends to trippeople up—FTP opens up two connections, one for commands, and one for data(file transfers). The data channel can be opened in two different ways: in"active" mode (the default), the client tells the server "hey, connect to meon port X", and then the server actually opens the connection to the client;in "passive" mode, the client connects to the server.

As you might imagine, active mode does not play well with NAT or firewalls, and this is usually the problem when commands work, but files fail to download. Most likely, including :passive-ftp-p t in your WITH-FTP-CONNECTION or (make-instance 'ftp-connection) form will get you going.

4License

This software, and documentation, is copyright various authors. Redistribution and modification is permitted under a MIT-style license. See the LICENSE file for more details.

Dependencies (2)

  • split-sequence
  • usocket

Dependents (0)

    • GitHub
    • Quicklisp