Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Checking mergeability… Don’t worry, you can still create the pull request.
This comparison is big! We’re only showing the most recent 250 commits
Commits on Dec 20, 2002
grisha Fixed a CGI bug reported by Gregory Bond <> 37f4523
grisha Fixed a problem with the way content-type was set reported by
Sebastian Tusk <>.
grisha Removed descriptions of what people did from CREDITS, leaving just na…

because the short descriptions were not descriptive enough, and we don't
have resources to maintain long ones. Now everyone gets equal credit.
grisha Removed the File class from publisher, it seemed unnecessary. 7cc0755
Commits on Dec 28, 2002
grisha The beginnings of a distutils based Windows installer. This requires
distutils from Python 2.3 because it has a windows post-install script
grisha Added CVS Id 0c3e059
grisha Added distclean for dist 8832adf
grisha dist/ is now generated by configure, which is more intuitive 3cb64e2
Commits on Dec 30, 2002
grisha Remove // comments
Submitted By: Justin Erenkrantz
grisha Replacing Makefile with 4168cde
grisha Added 6a57f12
grisha Make install now uses distutils to install the mod_python package. 95886eb
grisha Removed comment re auto generation f717d8d
grisha Set it to satically link with MFC. According to MS docs you don't
need the mcvcr70 dll, but I couldn't verify it, it always works for me
with or without the dll.
grisha Replaced long long with LONG_LONG b95d2b0
Commits on Dec 31, 2002
grisha ap_set_content_type now takes a copy of the Python string
Submitted By: Justin Erenkrantz
Commits on Jan 09, 2003
grisha Improved windows install script. e92940e
grisha Removed mentions of "static" 116f38a
grisha Added a cgi test and fixed a cgi problem. Thanks to Gregory Bond for
the pointer.
Obtained from:
Submitted by: Gregory Bond
Reviewed by:
grisha Oops, forgot to uncomment all other tests. 62dcf7d
grisha Added a call to PyOS_AfterFork() per Jack Diederich's suggestion. 7e6f4a2
Commits on Jan 10, 2003
grisha Added more people to credits 7c6ec59
grisha Looks like some lns insist on two arguments 691a5b8
Commits on Jan 18, 2003
grisha Changed buckets created by filter.write() from pool to heap, and added
apr_brigade_destroy to filter.flush(). This way all memory is freed after
a flush and httpd doesn't grow into a monster when filtering huge files.
grisha Updated NEWS. fded510
grisha Oops were in 2003 9fe0ca2
grisha remember to clean memory for filter.close() 2719e92
Commits on Jan 23, 2003
grisha Added tests for server obj, also a filter bug fixed 02d773e
grisha Added tests for connection, also corrected problems discovered in the…
… process
Commits on Jan 24, 2003
grisha tests pass on windows 133ec3e
Commits on Jan 26, 2003
grisha make sure we do not add None to sys.path c0b2b4d
Commits on Feb 12, 2003
grisha Added a test for req.headers_out. 5f5a0dc
Commits on Feb 28, 2003
grisha we now pass tests on darwin 73ad23f
grisha about to tag 3.0.2 d2e9f60
grisha Small problem with ConnectionHandler error output.
Submitted by: Chris Monson <>
Commits on Mar 07, 2003
grisha Reproduced and fixed the bug with headers out not going out if there was
a handler registered prior to fixup and mod_dir was used. It turnes out
that ap_internal_fast_redirect replaces pointers to headers_out and other
tables inside request, so the mod_python request object created prior to
fast_redirect gets left with stale pointers. Added a bit of code to always
make sure that we are using current tables.
Obtained from:
Submitted by: The bug discovered by and test case created by Geert Jansen
Reviewed by:
grisha Gearing up for 3.0.3 df688af
Commits on Apr 09, 2003
grisha Initial Python Server Pages
Submitted by:	Sterling Hughes
Commits on Apr 18, 2003
grisha Sterling's latest patch
Obtained from:
Submitted by: Sterling Hughes
Reviewed by:
Commits on Apr 23, 2003
sterling Send both of these to standard output, which is natively written to a…

This also provides a proper format for handcoded html (newlines are where
they should be).
Commits on May 03, 2003
grisha set version to 3.1.0a just not to confuse anyone 77ebd9d
Commits on May 05, 2003
grisha added some hopefully helpful explanation of the confusing subject of …
Commits on May 22, 2003
grisha This patch will allow for easy set up of being
handled entirely by mod_python. (In the previous ver you had to provide
at least a module -
Obtained from:
Submitted by:
Reviewed by:
grisha Added Conrad Steenberg's patch to provide sendfile functionality. Con…

patch was altered in that I used req.sendfile() instead of req.write_file()
because it seems a more intuitive name, and also the test case and
documentation is mine.
Obtained from:
Submitted by:	Conrad Steenberg
Reviewed by:
grisha typo f901635
Commits on May 23, 2003
grisha Another typo fixed.
Obtained from:
Submitted by:	Christian Vogel
Reviewed by:
Commits on May 24, 2003
grisha This patch addresses the threading issues with the lexer. This requir…
…es flex 2.3.51

which can generate reentrant scanners. Now, instead of using a global variable,
a yyscan_t structure is allocated and passed along to every call into flex.

Sterling Hughes will have a hard time recognizing his code after so much
of my tweaking it :-)

The scanner definition was changed to send as much as possible of HTML in
one triple-quoted string, rather than line-by-line.

The copyright in psp_parser.l is fixed, also added a little blurb explaining
what's going on there.

I had to once again revert from "print" to "req.write" because we can't touch
sys.stdout because it is shared among threads.

The caching function is disabled for now until we make it thread-safe.

A new flex-generated header file psp_flex.h was added.

Finally - just a warning - PSP still needs a lot of work, this is only the
first step of many more coming.
grisha comented out stdout change for the time being fcba915
Commits on May 27, 2003
grisha There is no ClearModuleList in httpd 2.0 11bde81
Commits on May 29, 2003
grisha Mod_python package now includes which is also built and
installed using distutils and does not #include <mod_python.h>. This
means it can be used from command line opening the door for us to
write command-line tools to compile psp pages. has been greatly simplified. psp_interface.c renamed to
_pspmodule.c to be consistent with everything else.

The flex-generated psp_parser.c now supports the syntax whereby the
last indent in Python code sticks (this has been better described on
the dev list). I have not received any (constructive) negative (or any
positive) feedback, so for now this is where we are.

Obtained from:
Submitted by:
Reviewed by:
grisha Added Py_THREAD_ALLOW's suggested by Greg Stein.
Also fixed the src/Makefile not to try to compile _psp since it is now
taken care of by distutils in dist/
Obtained from:
Submitted by:
Reviewed by:
grisha mod_python.psp now has a parsestring(str) function. Also a few tweaks to
the lexer were added.
Obtained from:
Submitted by:
Reviewed by:
Commits on May 30, 2003
grisha Added support for "compiled" psp files. The compiled files contain ma…

tuples representing code objects that can be easily reconstructed using the new
module. The actual speed up does not seem as spectacular - 1.5 to 3 times in my
tests... oh well.
Obtained from:
Submitted by:
Reviewed by:
grisha Added a test for psp handler.
Obtained from:
Submitted by:
Reviewed by:
grisha Initial stab at PSP documentation.
Obtained from:
Submitted by:
Reviewed by:
Commits on Jun 09, 2003
grisha An error not set before returning NULL, a potential leak both fixed. …

changed all PyCheck_String to PyCheck_StringExact while I was at it.
Obtained from:
Submitted by:	Barry Pederson
Reviewed by:
Commits on Jun 13, 2003
sterling Default the content-type to text/html. This is how it was originally,…
… and

it is a reasonable assumption because why else would one use PSP if they
weren't generating HTML of some sort?

 Anyone who needs to otherwise munge the content-type can just reset it in
 their PSP application.
sterling Update the target to call build instead of dist which was removed by …

in revision 1.5

Obtained from:
Submitted by:
Reviewed by:
Commits on Jun 14, 2003
grisha This is a very rough initial Cookie implementation. For some basic intro
see the comment at the top. Improvements, docs, cleaner code, coming soon.
Commits on Jun 17, 2003
grisha Some cookie clean-up fe25688
Commits on Jun 19, 2003
grisha This makes tests pass on FreeBSD 3f9c347
Commits on Jun 24, 2003
grisha Some final touches on the Cookie module. Added a couple of tests for
Cookies. Started the Cookie documentation.
Obtained from:
Submitted by:
Reviewed by:
Commits on Jun 27, 2003
grisha Remove version=1 from automatically being added to the cookie since this
is only false rfc-compliance. also remove autosetting of expires when
max-age is set for the same reason. Add methods for setting and retreiving
Commits on Jun 30, 2003
grisha This patch adjusts the Cookie implementation using __metaclass__ which
reduces the amount of code and makes inheritance work correctly (before,
properties didn't get inherited).

Unfortunately it looks like I had DOS end-of-lines before, and now they
are in UNIX, but as a sideeffect this patch replaces the whole file.

Obtained from:
Submitted by:
Reviewed by:
grisha Cleaned up the poblems with double-quotes in Latex, added some indent…

, inserted notation tags and some other clean up stuff.
Commits on Jul 01, 2003
grisha Cookie module documentation is now more or less complete along with some
examples. A couple of small things fixed in the Cookie module that were
discovered in the process of example testing.

Obtained from:
Submitted by:
Reviewed by:
Commits on Jul 03, 2003
grisha Added documentation for req.log_error which somehow went undocumented…
… all

this time.

Obtained from:
Submitted by:
Reviewed by:
Commits on Jul 10, 2003
grisha missing word typo 44af686
Commits on Jul 11, 2003
grisha Fixed the formatting of Python examples which got messed up after last
reformat of documents. Also added a note about req.user's dependence on
Commits on Jul 12, 2003
grisha Typo in restore_nocgi.
Obtained from:
Submitted by: Denis Walrave
Reviewed by:
grisha Server object is now a "new" python object.
Obtained from:
Submitted by:
Reviewed by:
Commits on Jul 14, 2003
grisha Fixed the bug that caused segfault upon trying to iterate over a table
using "for in".

Obtained from:
Submitted by:
Reviewed by:
Commits on Jul 16, 2003
grisha Fixed incorrect parameters passed to ReportError in ConnectionDispatch fe20b55
Commits on Jul 17, 2003
grisha not returns at most len bytes
Obtained from:
Submitted by:
Reviewed by:
Commits on Jul 22, 2003
grisha rollback some accidently checked in stuff 7af1299
Commits on Jul 24, 2003
grisha *** empty log message *** b1d64b0
grisha added option noyywrap to flex and removed libl c8108d6
grisha also added nounistd, so it can compile on windows b1e7e14
grisha Renamed getCookie to getCookies, because it returns all cokies, not
one (as opposed to setCookie, which sets one cookie)

Obtained from:
Submitted by:
Reviewed by:
grisha The SignedCookie and MarshalCookie will now downgrade to plain
Cookie if signature or unmarshal errors are encountered (intead of
raising an exception). This is necessary because the browser may
return "outside" cookies (e.g. set by mod_usertrack). As a side
effect, it is important to check the type of object returned, which
has been noted in the docs.

Obtained from:
Submitted by:
Reviewed by:
Commits on Jul 25, 2003
grisha Added a source listing option to psp (see docs). also fixed couple of
psp bugs.

Obtained from:
Submitted by:
Reviewed by:
Commits on Jul 26, 2003
grisha Renamed setCookie to addCookie. Also changed addCookie so that you can
just give it a couple of strings as args and it will automatically construct
a cookie for you.

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 01, 2003
grisha Renamed setCookie to add_cookie
Renamed getCookie to get_cookies
get_cookies now passes any **kw args to parse
added Session and docs for it
added dbm caching for psp
added _global_lock/_unlock to _apache
parser deals correctly with \r\n on win/dos
also added tests for session

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 04, 2003
grisha Patch to make sure that memory is freed in req.readline() to avoid pr…

with uploading huge files.

Obtained from:
Submitted by:Indrek J�rve
Reviewed by:
grisha Change LONG_LONG to PY_LONG_LONG for Python 2.3
Obtained from:
Submitted by: Thom May
Reviewed by:
grisha More names of good folks added.
Obtained from:
Submitted by:
Reviewed by:
grisha Make sure session lock index cannot be 0 to avoid deadlocks with the
dbm lock which uses 0.

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 05, 2003
grisha Added an <%@include file="blah"%> directive to PSP
Obtained from:
Submitted by:
Reviewed by:
grisha Added mpm_query()
Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 06, 2003
grisha Added MemorySession, as well as changed some other misc stuff.
Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 07, 2003
grisha Added a memory cache to PSP (for now implemented in Python).
Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 08, 2003
grisha Documented import_module so it now can be used a recommended way to
reload modules automatically. It also changed a little bit - more
streamlined interface.

Obtained from:
Submitted by:
Reviewed by:
grisha Added <%-- comment --%> to parser.
Obtained from:
Submitted by:
Reviewed by:
grisha Changed the naming scheme for global mutex files, also added a warning
about "no space left" being potentially caused by insufficient number
of semaphores in the kernel.

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 09, 2003
grisha You can now use "SetHandler mod_python" rather than "python-program",
(which still works for backwards compatibility).

Also fixed a problem with locks introduced in last check in.

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 11, 2003
grisha Added a psp object which supports psp.set_error_page("blah.psp"). Thi…
…s is

similar to JSP's errorpage thing.

Obtained from:
Submitted by:
Reviewed by:
grisha Apparently including other files while parsing is a bit more complicated
with flex - changed it to use push_buffer, and now include files don't
appear in strange places like at the end of the output.

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 12, 2003
grisha Added apply_data() to psp, which is similar in applicability to setPr…

and works the same way as the publisher (in fact it ended up being same code,
which was moved to utils).

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 13, 2003
grisha Make sure sessions are invalidated properly.
Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 14, 2003
grisha Added a redirect() func to util and psp to simplify redirection.
Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 18, 2003
grisha Added util.redirect.
Also fixed the issue with permissions on global mutexes.

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 19, 2003
grisha Fixed problem with mutex files not being removed correctly on graceful
restarts. Also added self.clear() to session's delete method.

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 21, 2003
grisha Change session so that there are no reserved dictionary keys.
Obtained from:
Submitted by:	Barry Pederson
Reviewed by:
grisha Added Barry to CREDITS, also fixed a small compilation problem
in mod_python.c. (Which, BTW, will need to change once the next
2.0 httpd release comes out where the permissions on file locks
will be handled in a more organized fashion.

Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 22, 2003
grisha Much needed documentation spelling corrections. Thanks Ville!
Obtained from:
Submitted by:	Ville Skytt�
Reviewed by:
Commits on Aug 26, 2003
grisha Autoreload should default to On.
Obtained from:
Submitted by:
Reviewed by:
grisha Docs readied for 3.1.0a
Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 27, 2003
grisha Ability for the windows installer to work without Tk, but try the win32
version of the dialog.

Obtained from:
Submitted by:	David Fraser
Reviewed by:
Commits on Aug 28, 2003
grisha Add __contains__ to FieldStorage
Obtained from:
Submitted by:	Michal Vitecek
Reviewed by:
grisha Modules of the same package shouldn't use "from package" to import

Obtained from:
Submitted by:
Reviewed by:
Commits on Sep 02, 2003
grisha Fix the problem with exec statement scope in
Obtained from:
Submitted by:	Sean Treadway
Reviewed by:
Commits on Sep 03, 2003
grisha Instead of raising NOT_FOUND, make import_module attempt to reload
the module, when a module is already imported, but the path doesn't

Obtained from:
Submitted by:	Ron Alford
Reviewed by:
Commits on Sep 05, 2003
grisha The functions in placed into a PSP class now, which makes usage
cleaner and more intuitive, especially when psp is used as a templaing
mechanism in a custom handler or publisher. Still need to adjust docs
to reflect this.

Obtained from:
Submitted by:
Reviewed by:
Commits on Sep 08, 2003
grisha Updated docs to reflect the new PSP class.
Fixed the way mod_python figures out maximum possible number of clients
(it was incorrectly arrivind at what amounted to ServerLimit as oppsed
to MaxClients).

It now will free one mutex if it runs out of mutexes in the process of
allocation, thereby avoiding the problem with server startup on RedHat
which has a default limit of 128 semaphores. The freed last mutex  is
needed by another module (mod_rewrite i think).

Obtained from:
Submitted by:
Reviewed by:
Commits on Sep 09, 2003
grisha Added a note re PythonPath and add_handler()
Obtained from:
Submitted by:
Reviewed by:
grisha req.write() wasn't checking return of ap_rwrite()!
Also reworded doc patch from yesterday.

Obtained from:
Submitted by:
Reviewed by:
Commits on Sep 10, 2003
grisha This gigantic patch gets rid of all tabs in C code. I know this is ug…
…ly, but

better late than never!

Obtained from:
Submitted by:
Reviewed by:
Commits on Sep 15, 2003
grisha Per Mark McClain's suggestion, added getfirst() and getlist() to Fiel…
Commits on Sep 16, 2003
grisha Submitted by: Mark McClain 39f0fa7
Commits on Sep 22, 2003
grisha Input filters now close() and read() correctly (or better at least).
Obtained from:
Submitted by:
Reviewed by:
Commits on Sep 29, 2003
grisha It's ok if the callable called by publisher returns "" if
req.bytes_sent shows some bytes were sent (presumably by req.write())
grisha Autoreload should default to On in publisher. dad5071
Commits on Sep 30, 2003
grisha Got rid of tabs in docs too. 5de06b7
Commits on Oct 06, 2003
grisha So that it can compile on MSVC. 2893141
Commits on Oct 08, 2003
grisha Added req.requires(). Also we now return internal server error if
req.user is not assigned after the authen handler.
grisha Corrected FINFO constants
Submitted by:	Daniel J. Popowich
Commits on Oct 09, 2003
grisha Added a check for EAGAIN in inp filter 0792baf
Commits on Oct 10, 2003
grisha Check for is_threaded/is_forked to avoid it trying to create 16000 mu…

on windows.

Also added a note to NEWS that it isn't the best source of historical info.

Obtained from:
Submitted by:
Reviewed by:
Commits on Oct 15, 2003
grisha Removed -ll, remove tabs from psp_parser.l, also remove some old stuff
from root

Obtained from:
Submitted by:
Reviewed by:
grisha Worker can return -1 for max_daemons, adjust for that, also add
load module mod_auth to the tests.
grisha Gearing up for 3.1.1b.... bd63030
Commits on Oct 21, 2003
grisha As a interrim measure, introduce MAX_LOCKS constant. This will
solve the semaphore/file lock problems for the time being so that
we can think of a better solution.
Obtained from:
Submitted by:
Reviewed by:
grisha Add support for DISTDIR in Makefiles.
Obtained from:
Submitted by: Ville Skytt�
Reviewed by:
grisha More adjustments in the global mutex allocation.
Obtained from:
Submitted by:
Reviewed by:
grisha Fixed a bunch of problems reported with the test suite.
Obtained from:
Submitted by:
Reviewed by:
Commits on Oct 22, 2003
grisha typo 1aee731
grisha A fix for better cooperation with mod_dir. f5d6e77
grisha correct previous patch 96a71c0
Commits on Oct 23, 2003
grisha Returned server.my_generation, which got lost somewhere. e35c367
grisha Version changed to 3.1.2
Obtained from:
Submitted by:
Reviewed by:
grisha Added restart_time
Obtained from:
Submitted by:
Reviewed by:
Commits on Oct 27, 2003
grisha Set correct sysvsem permissions. 14088b0
Commits on Nov 04, 2003
grisha Psp now defers flushing until the end of template, which improves per…

greatly. Also the psp template can take a list of global vars now in the
constructor (as well as the run() method).

Obtained from:
Submitted by:
Reviewed by:
grisha Remove the change of mime type to dir - this was a wrong thing to so
after all, SetHandler should not behave this way.
grisha This fixes the problem reported by Jim Peterson in Message-ID: <3FA72…

In this case the documentation is correct, but the publisher was wrong.
Also corrected the error reported when a module is not found to be
more descriptive.
Commits on Nov 10, 2003
grisha This fixes the http://myserver/?& parse_qsl() segfault reported by Ma…
…tt Hoskins
Commits on Dec 11, 2003
grisha Fix an if session buglet.
Submitted by:  Sean Leach
grisha Replace PyMem_NEW with PyObject_New and free with PyObject_Del for
proper compatibility w/ Python 2.3 (does this break 2.2?).

Obtained from:
Submitted by:	Ron Reisor
Reviewed by:
Commits on Jan 14, 2004
grisha Fixed timeout to be 30 min. 587bb82
grisha Corrected the problem reported by Stian S�iland. When req.user is NULL
after AuthenHandler, it a problem *only* when the return status is OK.
grisha Added a cleanup to the session.lock() to always try to unlock at the end
of requests. This seems like an appropriate thing to do and prevents some
confusion with seeming server lockups when the session variable exists
beyond the life of the request.
grisha Documented the session unlock cleanup. 56926b7
grisha A small patch to insure mod_python 3.1.2b compiles with APR 0.9
and 1.0. It replaces a call to deprecated apr_pool_sub_make with a call
to apr_pool_create_ex.

Obtained from:
Submitted by:	Sergey A. Lipnevich
Reviewed by:
grisha Error in documentation referring to obsolete req.connection.user
Obtained from:
Submitted by:	Martin Clausen
Reviewed by:
Commits on Jan 16, 2004
grisha small but significant typo 1ea5117
Commits on Jan 19, 2004
grisha Check for absolute path in include 0ae4bb0
grisha Added an XXX about windows 4ae6380
grisha Ouch - DECREF first, *then* release the interpreter! 450b236
grisha Fixed the problem with the trailing backslash in Session on Win32
This is a quick fix - still need to investigate how the slash
gets there.
Commits on Jan 23, 2004
grisha the loop always checks module with hasattr, any dotted module
paths (such as mylib.mymodule::MyClass.MyMethod) will fail.

Obtained from:
Submitted by: Oliver Graf
Reviewed by:
Commits on Jan 26, 2004
grisha Added better path attribute handling for session cookies. Also, the
BaseSession subclasses now take the lock argument.
grisha Adjusted docs to reflect recent Session changes. 103dd2b
grisha server.get_config() typo fixed 9bff7d2
Commits on Feb 05, 2004
grisha Added a hint about the assbackwards trick. 816a885
grisha Input filter should of type resource 80e4979
Commits on Feb 16, 2004
grisha This should help compiling on OS X
Obtained from:
Submitted by:	Mack McClain
Reviewed by:
grisha Assbackwards is now writeable. faf1070
grisha regenerated psp_parser.c e5e48a9
grisha New license d727aad
grisha More of new license 7f82ecb
Commits on Feb 17, 2004
grisha Gearing up for 3.1.3 f2f8c46
Commits on Feb 18, 2004
grisha change timestamp e491c5a
Commits on Feb 23, 2004
grisha Modify the req_requires test 54c9685
Commits on Apr 30, 2004
grisha Fixes a bug in the filterobject.
Obtained from:
Submitted by:	Miles Egan
Reviewed by:
grisha This patch fixes the problem by checking if the file has a "file"
attribute itself, and checking the type of that.
There may be a cleaner way to do it.

Obtained from:
Submitted by:	David Fraser
Reviewed by:
grisha This is the new that is considerably smarter.
TODO: This file needs to be formatted prettier, and needs some
thorough testing. Also since it doesn't use configure, it should
be renamed to and needs to be adjusted

Obtained from:
Submitted by:	David Fraser
Reviewed by:
grisha added code to win32_postinstall to automatically detect
the currently installed versions of Apache from the registry. It would
be nice to let the user choose one of these. As a start, it just selects
the latest version as the starting point for the tkinter file selection
dialog (the win32 shell classes don't seem to let you do this...)

Obtained from:
Submitted by:	David Fraser
Reviewed by:
grisha Fixes an HKLM/HKCU issues in the post-install script on windows.
Obtained from:
Submitted by:	David Fraser
Reviewed by:
Commits on Jun 25, 2004
grisha If output is unicode don't try to call str() on it. 103fd37
Commits on Jun 30, 2004
grisha Added a check for path_info so that we don't try to get len() of None.
Obtained from:
Submitted by:	Dave Wilson
Reviewed by:
Commits on Jul 06, 2004
grisha two-line fix for long-time cut&paste error w/ local_ip and local_host
Obtained from:
Submitted by:	Terrel Shumway
Reviewed by:
Commits on Jul 23, 2004
grisha PSP escaping bug, and fix.
Obtained from:
Submitted by:	Brendan O'Connor
Reviewed by:
grisha More credits and a header spelling fix from Clinton Roy. 55be499
Commits on Jul 26, 2004
grisha Server cleanup crash fix.
Obtained from:
Submitted by:	Stephane Bidoul
Reviewed by:
Commits on Aug 23, 2004
grisha Added HEAD to the list of allowed methods in the publisher.
Obtained from:
Submitted by:
Reviewed by:
Commits on Aug 30, 2004
grisha Documentation patch for 404 handler
Obtained from:
Submitted by:	Sean Reifschneider
Reviewed by:
Commits on Nov 25, 2004
nd drop .cvsignore 9f2c842
nd property cleanup 95ea9e6
Commits on Dec 19, 2004
nlehuen Fix for bug #2 "multiple/redundant interpreter creation" (according t…
…o the JIRA repository) :

- in mod_python.c, an APR mutex is used to make sure that multiple interpreter are not created 
- in, the import lock is used to make sure that the same module is not loaded multiple times
nlehuen Fix for bug #1 "circular references starting from the request object …
…create a memory leak" : edited requestobject.c to add garbage collection support to the request object.
Commits on Jan 08, 2005
nlehuen Fixed indentation problems due to a bad TAB to SPACE conversion (the …
…tab setting of the previous commiter was 8 not 4).
Commits on Jan 18, 2005
nlehuen Fix for bug [#MODPYTHON-3] : RFC-style cookie attributes are now igno…
Commits on Jan 19, 2005
nlehuen We cast requestobject* to PyObject* to remove one compilation warning…
… from MSVC.
Commits on Jan 20, 2005
nlehuen Added two unit tests for the PythonOption directive. The first one te…
…st the basic behaviour of PythonOption, the second checks that you can override a PythonOption with a local value.
nlehuen Made sure that different hashing policies on different platforms or P…
…ython implementations won't break the PythonOption tests by a modification of the items() ordering.
nlehuen Trying to fix [#MODPYTHON-6]... This try is unsuccessfull, alas, but …
…I'll keep the unit code and the first approach.
nlehuen This should fix [#MODPYTHON-6]. Finally, I set empty values in local …
…configurations by marking it with an empty string. The empty strings are stripped in get_config() so the removed keys aren't visible in req.get_config().

- fixed both mod_python.c and requestobject.c for the new behaviour
- updated the unit tests
- updated the documentation
nlehuen There is *NO* possibility of collision ;) 2843efe
nlehuen test_PythonOption_remove2 : the assertation was wrong, fixed. cac1cce
nlehuen Added a test for PythonInterpPerDirective. 8389c12
nlehuen aa0d67c
nlehuen made a copy 3a2813a
nlehuen A candidate fix for both [#MODPYTHON-4] and [#MODPYTHON-6].
- removed the SLASH and SLASH_S defines, and replaced it by '/' and "/" respectively everywhere they were used. Apache lives in a Posix world, and even Win32 paths are translated before being handled by mod_python.
- in PythonInterpPerDirectory mode, we should not add an extra '/' when a directory is requested. This way, /subdir/ and /subdir/ should be handled in the same interpreter.
- Enhanced the PythonInterpPerDirective tests and added a PythonInterpPerDirectory test.
Commits on Jan 22, 2005
nlehuen Fix for [#MODPYTHON-7] 37134d1
Commits on Jan 25, 2005
nlehuen Define and use the WIN32 macro when building _psp.pyd, so that mod_py…
…thon can be built on Win32 platform without removing the reference to unistd.h in psp_flex.h and psp_parser.c.
Commits on Jan 29, 2005
nlehuen The Cookie.Cookie test had to be modified to follow the changes in th…
…e cookie parsing algorithm.
nlehuen - Rewriting mod_python/ resolve_object to enhance security.
- Added unit tests for mod_python/
- Fixing [#MODPYTHON-13]
- Preparing 3.1.4 release
nlehuen - finished fixing MODPYTHON-13 ; added new unit tests for this bug
- refined traversal / publication control in resolve_object : we now rely on a dictionary of rules.
nlehuen Building the _psp extension is done in the same way as buidling mod_p…
nlehuen Fix : len(sys.argv) is never equal to 0. When the script is launched …
…without parameters, len(sys.argv)==1 and the installation should be performed.
nlehuen Added a Win32 batch file to build the Win32 installer. 4d6fcc6
nlehuen We log the path to, and remove it when uninstalling mod…
nlehuen Cosmetic changes to the code in order to unify coding style. 22eeca4
Commits on Jan 31, 2005
nlehuen New traversal and publishing rules. We now forbid the traversal of an…
…y type defined in the 'types' module, except for a few exceptions.
nlehuen Fix for MODPYTHON-17 5e8a751
Commits on Feb 10, 2005
grisha added graham and nicolas 0f5cf45
Commits on Mar 02, 2005
nlehuen - BuiltinFunctionTypes are not traversable nor publishable (this foll…
…ows a discussion with Graham)

- Updated the credits (thanks Grisha) with my canonical e-mail address.
nlehuen - build_installer.bat now makes a clean build of the installer. It re…
…moves everything from the dist & build directories as well as the object files so that we are sure we are building a clean install.

- mpversion.h is updated to reflect the current build.
nlehuen Try to compress the installer with UPX if available. dd4d60f
Commits on Mar 17, 2005
nlehuen Fix for #MODPYTHON-36 : close fd after ap_send_fd() in req_sendfile()…
…. (Patch by Matt Wilson)
nlehuen Nudged the mpversion.h version. 5b1a703
nlehuen Fix for MODPYTON-35 : mod_python.c doesn't always log reason for 500 …
Commits on Apr 06, 2005
nlehuen Fix for MODPYTHON-40 by Barry Pearce. 81b5c12
Commits on Apr 07, 2005
nlehuen Remove two unused class fields. 3a46916
nlehuen Added for preliminary work. 3af6704
nlehuen Set properties to the file. a635527
nlehuen Work on FileSession :
- switch to cPickle protocol 2
- better error reporting
- added locking
Commits on Apr 09, 2005
nlehuen Removed the locking code since locking is already performed in BaseSe…
Commits on Apr 11, 2005
nlehuen Jim Gallacher's contribution : uses of separate locks for session-lev…
…el and file-level locking + a little more cleanup on file path construction.
nlehuen We make sure the file is locked while not blocking when the session i…
…s locked.
nlehuen Updated credits to include Jim Gallacher for his work on FileSession. 7dd0b90
nlehuen We use the python libs directory to store the uninstall log. 73fe6cf
Commits on Apr 12, 2005
nlehuen Latest fix from Jim. 7a61e2f
nlehuen First go at trying to implement _apache._global_trylock. 5515ace
Commits on Apr 16, 2005
nlehuen Updated version number. 853d161
Commits on Apr 18, 2005
nlehuen (Sander Striker <>) Expose ap_meets_conditions() to …
…allow for easier checking of conditional

headers.  Primarily meant to facilitate caching.
Commits on Apr 27, 2005
nlehuen Graham's fix for MODPYTHON-48. ad960e3
nlehuen Bumped version number. 507b16a
nlehuen Added two tests to check the publisher behaviour.
1) We are testing whether the publisher looks for when receiving a directory/ request.
2) We are testing whether the publisher does fallback to the module found in a directory when it receives a directory/function request instead of directory/
nlehuen Tentative fix for MODPYTHON-8 and MODPYTHON-9. 8937917
Commits on Apr 28, 2005
nlehuen Latest version of FileSession by Jim Gallacher. This one does the ses…
…sion cleanup after the request takes place, thanks to register_cleanup, and uses a grace period to prevent valid sessions from being erased.
nlehuen Fixed the problem with FileSession under Win32 : the session file had…
… to be opened (for read & write) in binary mode.
Commits on Apr 30, 2005
nlehuen Fix for MODPYTHON-32. 1174d67
nlehuen Fix for MODPYTHON-41 aa63af5
nlehuen FileSession integrated into fe44dba
nlehuen Added a test for MODPYTHON-49. 4b2e083
nlehuen Fix for MODPYTHON-49. de8c351
nlehuen Fix for MODPYTHON-50. bc4cb42
Commits on May 01, 2005
nlehuen Changed apply_fs_data to support new-style classes as well as old-sty…
…le classes.
nlehuen New version of the publisher with support for old-style & new-style c…
…lasses, iterators and generators.