\chapter{Changes from Version (3.1.4)\label{app-changes}}

\indexii{Changes from}{version 3.1.4}
  
  New Features

  \begin{itemize}
    \item
      New apache.register_cleanup() method.
    \item
      New file-based session manager class.
    \item
      Session cookie name can be specified.
    \item
      The maximum number of mutexes mod_python uses for session locking
      can now be specifed at compile time using 
      \code{configure --with-max-locks}.
    \item
      New a version attribute in mod_python module.
    \item
      New test handler \code{testhandler.py} has been added.
  \end{itemize}

  Improvements

  \begin{itemize}
    \item
      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.
    \item
      Iterable return values are now correctly published
    \item
      Fixed the traversal security issue
    \item
      mod_python.c now logs reason for a 500 error
    \item
      Calls to PyErr_Print in mod_python.c are now followed by fflush()
    \item
      Using an empty value with PythonOption will unset a PythonOption key.
    \item
      Improvments to FieldStorage allow uploading of large files. Uploaded
      files are now streamed to disk, not to memory.
    \item
      Path to flex is now discovered at configuration time or can be
      specifed using \code{configure --with-flex=/path/to/flex}.
  \end{itemize}

  Bug Fixes

  \begin{itemize}
    \item
      Fixed memory leak which resulted from circular references starting 
      from the request object.
    \item
      Fixed memory leak resulting from multiple PythonOption directives. 
    \item
      Fixed Multiple/redundant interpreter creation problem.
    \item
      Cookie attributes  with attribute names prefixed with 
      \$ are now ignored. See Section \ref{pyapi-cookie} for more 
      information.
    \item
      Bug in setting up of config_dir from Handler directives fixed.
    \item
      mod_python.publisher will now support modules with the same name
      but in different directories
    \item
      Fixed continual reloading of modules problem
    \item
      Fixed big marshalled cookies error.
    \item
      Fixed mod_python.publisher extension handling
    \item
      mod_python.publisher default index file traversal
    \item
      mod_python.publisher loading wrong module and giving no
      warning/error
    \item
      apply_fs_data() now works with "new style" objects
    \item
      File descriptor fd closed after ap_send_fd() in req_sendfile()
    \item
      Bug in mem_cleanup in MemorySession fixed.
    \item
      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.
    \item
      Fixed bug where local_ip and local_host in connection object 
      were returning remote_ip and remote_host instead
    \item
      Fixed install_dso Makefile rule so it only installs the dso, not the
      python files
    \item
      Potential deadlock in psp cache handling fixed
    \item
      Fixed bug where sessions are used outside <Directory> directive.
\end{itemize}

\chapter{Changes from Previous Major Version (2.x)\label{app-changes}}

\indexii{Changes from}{version 2.x}

  \begin{itemize}

    \item
      Mod_python 3.0 no longer works with Apache 1.3, only Apache 2.x is
      supported.
    \item
      Mod_python no longer works with Python versions less than 2.2.1
    \item 
      Mod_python now supports Apache filters.
    \item 
      Mod_python now supports Apache connection handlers.
    \item 
      Request object supports internal_redirect().
    \item
      Connection object has read(), readline() and write().
    \item
      Server object has get_config().
    \item
      \index{Httpdapy} \index{httpdapi}
      Httpdapi handler has been deprecated.
    \item
      \index{ZPublisher}
      Zpublisher handler has been deprecated.
    \item
      Username is now in req.user instead of req.connection.user
  \end{itemize}
