You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mod_python-commits@quetz.apache.org by gr...@apache.org on 2006/03/17 03:39:26 UTC

svn commit: r386511 - in /httpd/mod_python/trunk: lib/python/mod_python/__init__.py lib/python/mod_python/apache.py src/include/mpversion.h test/htdocs/ssi.shtml test/htdocs/tests.py test/test.py

Author: grahamd
Date: Thu Mar 16 18:39:24 2006
New Revision: 386511

URL: http://svn.apache.org/viewcvs?rev=386511&view=rev
Log:
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)

Modified:
    httpd/mod_python/trunk/lib/python/mod_python/__init__.py
    httpd/mod_python/trunk/lib/python/mod_python/apache.py
    httpd/mod_python/trunk/src/include/mpversion.h
    httpd/mod_python/trunk/test/htdocs/ssi.shtml
    httpd/mod_python/trunk/test/htdocs/tests.py
    httpd/mod_python/trunk/test/test.py

Modified: httpd/mod_python/trunk/lib/python/mod_python/__init__.py
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/lib/python/mod_python/__init__.py?rev=386511&r1=386510&r2=386511&view=diff
==============================================================================
--- httpd/mod_python/trunk/lib/python/mod_python/__init__.py (original)
+++ httpd/mod_python/trunk/lib/python/mod_python/__init__.py Thu Mar 16 18:39:24 2006
@@ -20,5 +20,5 @@
 __all__ = ["apache", "cgihandler", "psp",
            "publisher", "util", "python22"]
 
-version = "3.3.0-dev-20060315"
+version = "3.3.0-dev-20060317"
 

Modified: httpd/mod_python/trunk/lib/python/mod_python/apache.py
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/lib/python/mod_python/apache.py?rev=386511&r1=386510&r2=386511&view=diff
==============================================================================
--- httpd/mod_python/trunk/lib/python/mod_python/apache.py (original)
+++ httpd/mod_python/trunk/lib/python/mod_python/apache.py Thu Mar 16 18:39:24 2006
@@ -361,19 +361,19 @@
             config = filter.req.get_config()
             debug = int(config.get("PythonDebug", 0))
 
-            if not hasattr(filter.req,"_mod_include"):
-                filter.req._mod_include = {}
+            if not hasattr(filter.req,"ssi_globals"):
+                filter.req.ssi_globals = {}
 
-            filter.req._mod_include["filter"] = filter
+            filter.req.ssi_globals["filter"] = filter
 
             code = code.rstrip()
 
             if tag == 'eval':
-                result = eval(code, filter.req._mod_include)
+                result = eval(code, filter.req.ssi_globals)
                 if result is not None:
                     filter.write(str(result))
             elif tag == 'exec':
-                exec(code, filter.req._mod_include)
+                exec(code, filter.req.ssi_globals)
 
             filter.flush()
 
@@ -390,6 +390,8 @@
                 exc_traceback = None
 
             raise
+
+        filter.req.ssi_globals["filter"] = None
 
         return OK
 

Modified: httpd/mod_python/trunk/src/include/mpversion.h
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/src/include/mpversion.h?rev=386511&r1=386510&r2=386511&view=diff
==============================================================================
--- httpd/mod_python/trunk/src/include/mpversion.h (original)
+++ httpd/mod_python/trunk/src/include/mpversion.h Thu Mar 16 18:39:24 2006
@@ -1,5 +1,5 @@
 #define MPV_MAJOR 3
 #define MPV_MINOR 3
 #define MPV_PATCH 0
-#define MPV_BUILD 20060315
-#define MPV_STRING "3.3.0-dev-20060315"
+#define MPV_BUILD 20060317
+#define MPV_STRING "3.3.0-dev-20060317"

Modified: httpd/mod_python/trunk/test/htdocs/ssi.shtml
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/test/htdocs/ssi.shtml?rev=386511&r1=386510&r2=386511&view=diff
==============================================================================
--- httpd/mod_python/trunk/test/htdocs/ssi.shtml (original)
+++ httpd/mod_python/trunk/test/htdocs/ssi.shtml Thu Mar 16 18:39:24 2006
@@ -1,3 +1,3 @@
 <!--#python exec="
-filter.write('test')
+filter.write(data)
 "--> <!--#python eval="'ok'" -->

Modified: httpd/mod_python/trunk/test/htdocs/tests.py
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/test/htdocs/tests.py?rev=386511&r1=386510&r2=386511&view=diff
==============================================================================
--- httpd/mod_python/trunk/test/htdocs/tests.py (original)
+++ httpd/mod_python/trunk/test/htdocs/tests.py Thu Mar 16 18:39:24 2006
@@ -1089,6 +1089,10 @@
         yield c
         c += 1
 
+def server_side_include(req):
+    req.ssi_globals = { "data": "test" }
+    return apache.OK
+
 class InstanceTest(object):
     def __call__(self, req):
         return "test callable instance ok"

Modified: httpd/mod_python/trunk/test/test.py
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/test/test.py?rev=386511&r1=386510&r2=386511&view=diff
==============================================================================
--- httpd/mod_python/trunk/test/test.py (original)
+++ httpd/mod_python/trunk/test/test.py Thu Mar 16 18:39:24 2006
@@ -2276,9 +2276,10 @@
                         ServerName("test_server_side_include"),
                         DocumentRoot(DOCUMENT_ROOT),
                         Directory(DOCUMENT_ROOT,
+                                  Options("+Includes"),
                                   AddType("text/html .shtml"),
                                   AddOutputFilter("INCLUDES .shtml"),
-                                  Options("+Includes"),
+                                  PythonFixupHandler("tests::server_side_include"),
                                   PythonDebug("On")))
         return str(c)