Issue Details (XML | Word | Printable)

Key: MODPYTHON-104
Type: New Feature New Feature
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Graham Dumpleton
Reporter: Graham Dumpleton
Votes: 1
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
mod_python

Allow Python code callouts with mod_include (SSI).

Created: 23/Dec/05 09:23 AM   Updated: 05/Apr/07 11:11 AM
Return to search
Component/s: core
Affects Version/s: None
Fix Version/s: 3.3.1

Time Tracking:
Not Specified

File Attachments:
  Size
File Licensed for inclusion in ASF works grahamd_20060126_1_mod_include.diff 2006-01-26 02:44 PM Graham Dumpleton 8 kB
File Licensed for inclusion in ASF works grahamd_20060226_MP104_1.diff 2006-02-26 02:05 PM Graham Dumpleton 11 kB
Text File Licensed for inclusion in ASF works MP104_20060317_jgallacher_1.diff 2006-03-18 01:39 AM Jim Gallacher 0.5 kB

Resolution Date: 27/Oct/06 08:29 AM


 Description  « Hide
The mod_include module supporting server side includes (SSI), provides a means of registering new element tags which trigger callouts to other code in separate Apache modules. This is used for example in mod_perl to allow Perl language code to be used with server side includes:

 <!--#perl sub="MySSI::remote_host" -->

  <!--#perl arg="Hello" arg="SSI" arg="World"
         sub="sub {
                  my($r, @args) = @_;
                  print qq(@args);
              }"
  -->

An equivalent feature for Python was previously asked about on the mailing list back in 2004:

  http://www.modpython.org/pipermail/mod_python/2004-January/014832.html

Since it seems entirely reasonable that such integration of mod_python and mod_include would be possible, thought it would be good to log it as a possible new feature.

Because of SSI's support for basic conditionals, includes and other callout mechanisms, would be a good quick and dirty way of doing templating without having to resort to PSP, or other high level templating systems.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #385257 Sun Mar 12 08:15:05 UTC 2006 grahamd Support added for using Python in content being passed through "INCLUDES"
output filter, or as more commonly referred to server side include (SSI)
mechanism. (MODPYTHON-104)
Files Changed
MODIFY /httpd/mod_python/trunk/test/httpdconf.py
MODIFY /httpd/mod_python/trunk/test/test.py
MODIFY /httpd/mod_python/trunk/src/mod_python.c
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/__init__.py
MODIFY /httpd/mod_python/trunk/Doc/appendixc.tex
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/apache.py
MODIFY /httpd/mod_python/trunk/src/include/mpversion.h
ADD /httpd/mod_python/trunk/test/htdocs/ssi.shtml

Repository Revision Date User Message
ASF #385992 Wed Mar 15 07:48:48 UTC 2006 grahamd Fix SSI suppport so that it compiles and works on Apache 2.2. Fix issue
in SSI where Python code still executed in false part of conditional.
Also remove calls to release interpreter being done prior to interpreter
having been acquired by SSI code in the first place. (MODPYTHON-104)
Files Changed
MODIFY /httpd/mod_python/trunk/src/mod_python.c
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/__init__.py
MODIFY /httpd/mod_python/trunk/src/include/mpversion.h

Repository Revision Date User Message
ASF #386003 Wed Mar 15 08:48:53 UTC 2006 grahamd Use official means for determing when API changed for a specific feature,
namely the AP_MODULE_MAGIC_AT_LEAST macro. (MODPYTHON-104).
Files Changed
MODIFY /httpd/mod_python/trunk/src/include/mod_python.h
MODIFY /httpd/mod_python/trunk/src/mod_python.c
MODIFY /httpd/mod_python/trunk/src/include/mod_python.h.in

Repository Revision Date User Message
ASF #386511 Fri Mar 17 02:39:24 UTC 2006 grahamd Allow a handler to preload data into SSI global data set for #python tag prior
to INCLUDES output filter being executed to process response, by setting the
req.ssi_globals attribute to a dictionary. Also remove filter object explicitly
from global data set after each tag instances is executed in case it causes
issues with garbage collector since request object will reference global data
resulting a cycle. (MODPYTHON-104)
Files Changed
MODIFY /httpd/mod_python/trunk/test/htdocs/tests.py
MODIFY /httpd/mod_python/trunk/test/test.py
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/__init__.py
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/apache.py
MODIFY /httpd/mod_python/trunk/src/include/mpversion.h
MODIFY /httpd/mod_python/trunk/test/htdocs/ssi.shtml

Repository Revision Date User Message
ASF #386807 Sat Mar 18 04:30:07 UTC 2006 grahamd SSI code specific to Apache 2.0 was incorrectly referencing the Apache 2.1+
macro SSI_CREATE_ERROR_BUCKET. (MODPYTHON-104)
Files Changed
MODIFY /httpd/mod_python/trunk/src/mod_python.c

Repository Revision Date User Message
ASF #396250 Sun Apr 23 10:22:48 UTC 2006 grahamd Error path in SSI code when interpreter could not be obtained was trying
to wrongly release the interpreter. (MODPYTHON-104)
Files Changed
MODIFY /httpd/mod_python/trunk/src/mod_python.c

Repository Revision Date User Message
ASF #405027 Mon May 08 12:04:14 UTC 2006 grahamd Eliminate Apache crash after a Python exception in SSI code. Problem was that
filter.disable() was being called, but that expects that f->ctx is an instance
of python_filter_ctx when for SSI it is an include_ctx. As a result it was
overwriting data it shouldn't have. The changes also stop any details of the
exception being written back to the client even if PythonDebug is On as for
SSI it should possibly only ever be logged and errors should not be rendered
in pages. (MODPYTHON-104)
Files Changed
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/importer.py
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/apache.py

Repository Revision Date User Message
ASF #405274 Tue May 09 02:07:52 UTC 2006 grahamd Python code in SSI files can have CRLF line endings on Win32 platform. These
need to be eliminated else Python raises an exception. (MODPYTHON-104)
Files Changed
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/importer.py
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/__init__.py
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/apache.py
MODIFY /httpd/mod_python/trunk/src/include/mpversion.h
MODIFY /httpd/mod_python/trunk/test/htdocs/ssi.shtml

Repository Revision Date User Message
ASF #468288 Fri Oct 27 06:02:43 UTC 2006 grahamd (MODPYTHON-104) Contributed personal article on using Python code with SSI
under mod_python. The original article was sourced from
'http://www.dscpl.com.au/wiki/ModPython/Articles/BasicsOfServerSideIncludes'.
Files Changed
MODIFY /httpd/mod_python/trunk/Doc/modpython6.tex