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/04/02 12:24:27 UTC
svn commit: r390804 - in /httpd/mod_python/trunk: Doc/appendixc.tex
Doc/modpython4.tex lib/python/mod_python/__init__.py
src/include/mpversion.h src/requestobject.c test/htdocs/tests.py test/test.py
Author: grahamd
Date: Sun Apr 2 03:24:21 2006
New Revision: 390804
URL: http://svn.apache.org/viewcvs?rev=390804&view=rev
Log:
Added req.discard_request_body() function as wrapper for similar function
provided by Apache C API. The function tests for and reads any message body
in the request, simply discarding whatever it receives. (MODPYTHON-153)
Modified:
httpd/mod_python/trunk/Doc/appendixc.tex
httpd/mod_python/trunk/Doc/modpython4.tex
httpd/mod_python/trunk/lib/python/mod_python/__init__.py
httpd/mod_python/trunk/src/include/mpversion.h
httpd/mod_python/trunk/src/requestobject.c
httpd/mod_python/trunk/test/htdocs/tests.py
httpd/mod_python/trunk/test/test.py
Modified: httpd/mod_python/trunk/Doc/appendixc.tex
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/Doc/appendixc.tex?rev=390804&r1=390803&r2=390804&view=diff
==============================================================================
--- httpd/mod_python/trunk/Doc/appendixc.tex (original)
+++ httpd/mod_python/trunk/Doc/appendixc.tex Sun Apr 2 03:24:21 2006
@@ -69,6 +69,12 @@
Added \code{req.set_etag()}, \code{req.set_last_modified()} and
\code{req.update_mtime()} functions as wrappers for similar functions
provided by Apache C API.
+ \item
+ (\citetitle[http://issues.apache.org/jira/browse/MODPYTHON-153]{MODPYTHON-153})
+ Added \code{req.discard_request_body()} function as wrapper for
+ similar function provided by Apache C API. The function tests for
+ and reads any message body in the request, simply discarding
+ whatever it receives.
\end{itemize}
Improvements
Modified: httpd/mod_python/trunk/Doc/modpython4.tex
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/Doc/modpython4.tex?rev=390804&r1=390803&r2=390804&view=diff
==============================================================================
--- httpd/mod_python/trunk/Doc/modpython4.tex (original)
+++ httpd/mod_python/trunk/Doc/modpython4.tex Sun Apr 2 03:24:21 2006
@@ -643,6 +643,11 @@
\end{methoddesc}
+\begin{methoddesc}[request]{discard_request_body}{}
+ Tests for and reads any message body in the request, simply discarding
+ whatever it receives.
+\end{methoddesc}
+
\begin{methoddesc}[request]{document_root}{}
Returns DocumentRoot setting.
\end{methoddesc}
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=390804&r1=390803&r2=390804&view=diff
==============================================================================
--- httpd/mod_python/trunk/lib/python/mod_python/__init__.py (original)
+++ httpd/mod_python/trunk/lib/python/mod_python/__init__.py Sun Apr 2 03:24:21 2006
@@ -20,5 +20,5 @@
__all__ = ["apache", "cgihandler", "psp",
"publisher", "util", "python22"]
-version = "3.3.0-dev-20060328"
+version = "3.3.0-dev-20060402"
Modified: httpd/mod_python/trunk/src/include/mpversion.h
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/src/include/mpversion.h?rev=390804&r1=390803&r2=390804&view=diff
==============================================================================
--- httpd/mod_python/trunk/src/include/mpversion.h (original)
+++ httpd/mod_python/trunk/src/include/mpversion.h Sun Apr 2 03:24:21 2006
@@ -1,5 +1,5 @@
#define MPV_MAJOR 3
#define MPV_MINOR 3
#define MPV_PATCH 0
-#define MPV_BUILD 20060328
-#define MPV_STRING "3.3.0-dev-20060328"
+#define MPV_BUILD 20060402
+#define MPV_STRING "3.3.0-dev-20060402"
Modified: httpd/mod_python/trunk/src/requestobject.c
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/src/requestobject.c?rev=390804&r1=390803&r2=390804&view=diff
==============================================================================
--- httpd/mod_python/trunk/src/requestobject.c (original)
+++ httpd/mod_python/trunk/src/requestobject.c Sun Apr 2 03:24:21 2006
@@ -510,6 +510,17 @@
}
/**
+ ** request.discard_request_body(request self)
+ **
+ * discard content supplied with request
+ */
+
+static PyObject * req_discard_request_body(requestobject *self)
+{
+ return PyInt_FromLong(ap_discard_request_body(self->request_rec));
+}
+
+/**
** request.get_addhandler_exts(request self)
**
* Returns file extentions that were given as argument to AddHandler mod_mime
@@ -1358,6 +1369,7 @@
{"auth_name", (PyCFunction) req_auth_name, METH_NOARGS},
{"auth_type", (PyCFunction) req_auth_type, METH_NOARGS},
{"construct_url", (PyCFunction) req_construct_url, METH_VARARGS},
+ {"discard_request_body", (PyCFunction) req_discard_request_body, METH_NOARGS},
{"get_config", (PyCFunction) req_get_config, METH_NOARGS},
{"document_root", (PyCFunction) req_document_root, METH_NOARGS},
{"flush", (PyCFunction) req_flush, METH_NOARGS},
Modified: httpd/mod_python/trunk/test/htdocs/tests.py
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/test/htdocs/tests.py?rev=390804&r1=390803&r2=390804&view=diff
==============================================================================
--- httpd/mod_python/trunk/test/htdocs/tests.py (original)
+++ httpd/mod_python/trunk/test/htdocs/tests.py Sun Apr 2 03:24:21 2006
@@ -702,6 +702,29 @@
return apache.OK
+def req_discard_request_body(req):
+
+ s = req.read(10)
+ if s != '1234567890':
+ req.log_error('read() #1 returned %s' % `s`)
+ req.write('test failed')
+ return apache.OK
+
+ status = req.discard_request_body()
+ if status != apache.OK:
+ req.log_error('discard_request_body() returned %d' % status)
+ return status
+
+ s = req.read()
+ if s:
+ req.log_error('read() #2 returned %s' % `s`)
+ req.write('test failed')
+ return apache.OK
+
+ req.write('test ok')
+
+ return apache.OK
+
def req_register_cleanup(req):
req.cleanup_data = "req_register_cleanup test ok"
Modified: httpd/mod_python/trunk/test/test.py
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/test/test.py?rev=390804&r1=390803&r2=390804&view=diff
==============================================================================
--- httpd/mod_python/trunk/test/test.py (original)
+++ httpd/mod_python/trunk/test/test.py Sun Apr 2 03:24:21 2006
@@ -873,6 +873,37 @@
if (rsp != params):
self.fail(`rsp`)
+ def test_req_discard_request_body_conf(self):
+
+ c = str(Timeout("5")) + \
+ str(VirtualHost("*",
+ ServerName("test_req_discard_request_body"),
+ DocumentRoot(DOCUMENT_ROOT),
+ Directory(DOCUMENT_ROOT,
+ SetHandler("mod_python"),
+ PythonHandler("tests::req_discard_request_body"),
+ PythonDebug("On"))))
+ return c
+
+ def test_req_discard_request_body(self):
+
+ print "\n * Testing req.discard_request_body()"
+
+ params = '1234567890'*2
+ print " writing %d bytes..." % len(params)
+ conn = httplib.HTTPConnection("127.0.0.1:%s" % PORT)
+ conn.putrequest("GET", "/tests.py", skip_host=1)
+ conn.putheader("Host", "test_req_discard_request_body:%s" % PORT)
+ conn.putheader("Content-Length", len(params))
+ conn.endheaders()
+ conn.send(params)
+ response = conn.getresponse()
+ rsp = response.read()
+ conn.close()
+
+ if (rsp != "test ok"):
+ self.fail(`rsp`)
+
def test_req_register_cleanup_conf(self):
c = VirtualHost("*",
@@ -2407,6 +2438,7 @@
perRequestSuite.addTest(PerRequestTestCase("test_req_read"))
perRequestSuite.addTest(PerRequestTestCase("test_req_readline"))
perRequestSuite.addTest(PerRequestTestCase("test_req_readlines"))
+ perRequestSuite.addTest(PerRequestTestCase("test_req_discard_request_body"))
perRequestSuite.addTest(PerRequestTestCase("test_req_register_cleanup"))
perRequestSuite.addTest(PerRequestTestCase("test_req_headers_out"))
perRequestSuite.addTest(PerRequestTestCase("test_req_sendfile"))