Pyftpdlib

Latest version: v2.0.1

Safety actively analyzes 723144 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

1.5.0

Not secure
===========================

**Enhancements**

- 304: remove deprecated items from 1.0.0 which were left in place for
backward compatibility
- 324: FTPHandler.started attribute, to figure out when client connected.
- 340: dropped python 2.4 and 2.5 support.
- 344: bench.py script --ssl option.
- 346: provide more debugging info.
- 348: FTPHandler has a new "auth_failed_timeout" class attribute (previously
this was called _auth_failed_timeout).
- 350: tests now live in pyftpdlib module namespace.
- 351: fallback on using plain send() if sendfile() fails and no data has been
transmitted yet.
- 356: sendfile() is now used in case we're using SSL but data connection is
in clear text.
- 361: benchmark script now allows to benchmark downloads and uploads only
(instead of both).
- 362: 'ftpbench' script is now installed as a system script on 'setup.py
install'.
- 365: TLS FTP server is now 25% faster when dealing with clear-text
connections.

**Bug fixes**

- 302: setup.py should not require pysendfile on Python >= 3.3.
- 313: configuring root logger has no effect on pyftpdlib logging.
- 329: IOLoop throws OSError on Linux.
- 337: MultiprocessFTPServer and ThreadedFTPServer do not accept backlog
argument.
- 338: benchmark script uses old psutil API.
- 343: recv() does not handle EBUSY.
- 347: SSL WantReadError and WantWriteError errors are not properly taken into
account.
- 357: python -m pyftpdlib --verbose option doesn't work

**Incompatible API changes**

- FTPHandler._auth_failed_timeout has been renamed to
FTPHandler.auth_failed_timeout.

1.4.0

Not secure
=================================

**Enhancements**

- 284: documentation was turned into RsT and hosted on pythonhosted.org
- 293: project was migrated from Google Code to Github. Code was migrated from
SVN to GIT.
- 294: use tox to automate testing on multiple python versions.
- 295: use travis-ci for continuous test integration.
- 298: pysendfile and PyOpenSSL are now listed as extra deps in setup.py.

**Bug fixes**

- 296: TypeError when using recent version of PyOpenSSL.
- 297: listen() may raise EBADF in case of many connections.

1.3.1

Not secure
=================================

**Enhancements**

- 262: FTPS is now able to load a certificate chain file. (patch by
Dmitry Panov)
- 277: added a make file for running tests and for other repetitive tasks
(also for Windows).
- 281: tarballs are now hosted on PYPI.
- 282: support for /dev/poll on Solaris.
- 285: test suite requires unittest2 module on python < 2.7.

**Bug fixes**

- 261: (FTPS) SSL shutdown does not properly work on Windows.
- 280: (Python 2) unable to complete directory listing with invalid UTF8
characters. (patch by dndevicenull.org)
- 283: always use a single 'pyftpdlib' logger.

1.3.0

Not secure
=================================

**Enhancements**

- 253: benchmark script's new --timeout option.
- 270: new -V / --verbose cmdline option to enable a more verbose logging.

**Bug fixes**

- 254: bench.py script hadn't been ported to Python 3.
- 263: MultiprocessFTPServer leaks memory and file descriptors. (patch by
Juan J. Martinez)
- 265: FTPServer class cannot be used with Circus.
- 272: pyftpdlib fails when imported on OpenBSD because of Python bug
https://bugs.python.org/issue3770
- 273: IOLoop.fileno() on BSD systems raises AttributeError. (patch by
Michael Ross)

1.2.0

Not secure
=================================

**Enhancements**

- 250: added FTPServer's backlog argument controlling the queue of accepted
connections.
- 251: IOLoop.fileno() method for epoll() and kqueue() pollers.
- 252: FTPServer 'address' parameter can also be an existent socket object.

**Bug fixes**

- 245: ThreadedFTPServer hogs all CPU resources after a client connects.

1.1.0

Not secure
=================================

**Enhancements**

- 240: enabled "python -m pyftpdlib" cmdline syntax and got rid of
"python -m pyftpdlib.ftpserver" syntax which was deprecated in 1.0.0.
- 241: empty passwords are now allowed for anonymous and other users.
- 244: pysendfile is no longer a dependency if we're on Python >= 3.3 as
os.sendfile() will be used instead.
- 247: on python 3.3 use time.monotonic() instead of time.time() so that the
scheduler won't break in case of system clock updates.
- 248: bench.py memory usage is highly overestimated.

**Bug fixes**

- 238: username is not logged in case of failed authentication.
(patch by tlockert)
- 243: an erroneous error message is given in case the address passed to
bind() is already in use.
- 245: ThreadedFTPServer hogs all CPU resources after a client connects.
- 246: ThrottledDTPHandler was broken.

**Incompatible API changes**

- "python -m pyftpdlib.ftpserver" cmdline syntax doesn't work anymore

Page 3 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.