My favorites | Sign in
Logo
                
Search
for
Updated May 16, 2008 by billiej...@gmail.com
Labels: SortOrder-5, Deprecated
ReleaseNotes03  
pyftpdlib 0.3.x serie release notes.

Version: 0.3.0 - Date: 2008-01-17

Major enhancements

  •  Issue 48 : real permissions, owner, and group for files on UNIX platforms are now provided when processing LIST.
  •  Issue 51 : added the new demo/throttled_ftpd.py script.
  •  Issue 59 : iterators are now used for calculating requests requiring long time to complete (LIST and MLSD commands).
  •  Issue 61 : extended the set of assignable user permissions.

RFC-related enhancements

Bugfixes

  •  Issue 41 : error occurred on quit if user was not yet authenticated.
  •  Issue 43 : hidden the server identifier when returning STAT response.
  •  Issue 44 : a wrong response code was given on PORT if the data connection attempt failed.
  •  Issue 45 : a wrong response code was given on HELP if argument was incorrect.
  •  Issue 46 : a wrong response code was given on PASV if remote peer had a foreign internet address.
  •  Issue 47 : can't use FTPServer.max_cons option with Python 2.3.
  •  Issue 48 : problem when LISTing "broken" symbolic links.
  •  Issue 49 : data channel did not respect the outgoing data buffer.
  •  Issue 53 : received strings having trailing white spaces was erroneously stripped.
  •  Issue 54 : LIST/NLST/STAT outputs are now sorted by file name.
  •  Issue 55 : path traversal vulnerability in case of symlinks.
  •  Issue 56 : can't rename broken symbolic links.
  •  Issue 57 : wrong LIST/NLST behavior when processing symbolic links.
  •  Issue 60 : error occurred in case of bad formatted PORT command requests.

API changes since 0.2.0

Porting to pyftpdlib 0.3.0

This section lists previously described changes that may require changes to your existent 0.2.0-based code.

The main news in 0.3.0 version is that the DummyAuthorizer class now provides an extended set of assignable user permissions. For example: to create a user having full r/w permissions you no longer have to do:

authorizer.add_user("user", "12345", "/home/user", perm=("r","w"))

...or:

authorizer.add_user("user", "12345", "/home/user", perm="rw")

...but instead:

authorizer.add_user("user", "12345", "/home/user", perm="elradfmw")

Folks who sub-classed DummyAuthorizer class to create their own custom authorizer (e.g. I've seen some SQL-based authorizers around) must note that r_perm() and w_perm() methods have been removed and replaced by the new has_perm() method.

Other changes are fundamentally related to AbstractedFS class which acquired some new methods and renamed others but this should interest only folks who sub-classed it (e.g. Aksy library which implemented a virtual file-system).


Sign in to add a comment
Hosted by Google Code