A. Changes from Version (3.1.4)
New Features
- New
apache.register_cleanup()
method.
- New
apache.exists_config_define()
method.
- New file-based session manager class.
- Session cookie name can be specified.
- The maximum number of mutexes mod_python uses for session locking
can now be specifed at compile time using
configure --with-max-locks
.
- New a version attribute in mod_python module.
- New test handler
testhandler.py
has been added.
Improvements
- Autoreload of a module using
apache.import_module()
now works if
modification time for the module is different from the file.
Previously, the module was only reloaded if the the modification
time of the file was more recent. This allows for a more graceful
reload if a file with an older modification time needs to be
restored from backup.
- Iterable return values are now correctly published
- Fixed the publisher traversal security issue
- Objects hierarchy a la CherryPy can now be published.
mod_python.c
now logs reason for a 500 error
- Calls to
PyErr_Print
in mod_python.c
are now followed by fflush()
- Using an empty value with PythonOption will unset a PythonOption key.
req.path_info
is now a read/write member.
- Improvements to FieldStorage allow uploading of large files. Uploaded
files are now streamed to disk, not to memory.
- Path to flex is now discovered at configuration time or can be
specifed using
configure --with-flex=/path/to/flex
.
sys.argv
is now initialized to ["mod_python"]
so that modules
like numarray and pychart can work properly.
Bug Fixes
- Fixed memory leak which resulted from circular references starting
from the request object.
- Fixed memory leak resulting from multiple PythonOption directives.
- Fixed Multiple/redundant interpreter creation problem.
- Cookie attributes with attribute names prefixed with
$ are now ignored. See Section 4.7 for more
information.
- Bug in setting up of config_dir from Handler directives fixed.
- mod_python.publisher will now support modules with the same name
but in different directories
- Fixed continual reloading of modules problem
- Fixed big marshalled cookies error.
- Fixed mod_python.publisher extension handling
- mod_python.publisher default index file traversal
- mod_python.publisher loading wrong module and giving no
warning/error
apply_fs_data()
now works with "new style" objects
- File descriptor fd closed after
ap_send_fd()
in req_sendfile()
- Bug in mem_cleanup in MemorySession fixed.
- Fixed bug in
_apache._global_lock()
which could cause a segfault
if the lock index parameter is greater number of mutexes created
at mod_python startup.
- Fixed bug where
local_ip
and local_host
in connection object
were returning remote_ip
and remote_host
instead
- Fixed install_dso Makefile rule so it only installs the dso, not the
python files
- Potential deadlock in psp cache handling fixed
- Fixed bug where sessions are used outside <Directory> directive.
- Fixed compile problem on IRIX.
ln -s
requires both TARGET and LINK_NAME
on IRIX. ie. ln -s TARGET LINK_NAME
- Fixed
./configure
problem on SuSE Linux 9.2 (x86-64). Python libraries
are in lib64/ for this platform.
- Fixed
req.sendfile()
problem where sendfile(filename)
sends the incorrect
number of bytes when filename is a symlink.
- Fixed problem where util.FieldStorage was not correctly checking the mime
types of POSTed entities
- Fixed
conn.local_addr
and conn.remote_addr
for a better IPv6 support.
- Fixed
psp_parser.l
to properly escape backslash-n
, backslash-t
and backslash-r
character sequences.