summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 3ccef2e)
raw | patch | inline | side by side (parent: 3ccef2e)
author | richard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
Tue, 2 Feb 2010 05:00:42 +0000 (05:00 +0000) | ||
committer | richard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
Tue, 2 Feb 2010 05:00:42 +0000 (05:00 +0000) |
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/roundup/trunk@4448 57a73879-2fb5-44c3-a270-3262357dd7e2
CHANGES.txt | patch | blob | history | |
doc/acknowledgements.txt | patch | blob | history | |
roundup/cgi/client.py | patch | blob | history | |
roundup/scripts/roundup_server.py | patch | blob | history |
diff --git a/CHANGES.txt b/CHANGES.txt
index 7161378a5cbb50cb54d4d3c6fc043cefd10a9ed0..96fedf3f2a5f65e860e9e0dd13d31630b4e10fbe 100644 (file)
--- a/CHANGES.txt
+++ b/CHANGES.txt
issue2550632
- Allow value to be specified to multilink form element templating, fixes
issue2550613, thanks David Wolever
issue2550632
- Allow value to be specified to multilink form element templating, fixes
issue2550613, thanks David Wolever
+- Fix thread safety with stdin in roundup-server, fixes issue2550596
+ (thanks Werner Hunger)
2009-12-21 1.4.11 (r4413)
2009-12-21 1.4.11 (r4413)
index 8ab905801c188fc685d01531397d59f3a0e167ed..13793dc70879f3d9273fcde73b467b8c8fd477eb 100644 (file)
--- a/doc/acknowledgements.txt
+++ b/doc/acknowledgements.txt
Uwe Hoffmann,
Alex Holkner,
Tobias Hunger,
Uwe Hoffmann,
Alex Holkner,
Tobias Hunger,
+Werner Hunger,
Simon Hyde,
Paul Jimenez,
Christophe Kalt,
Simon Hyde,
Paul Jimenez,
Christophe Kalt,
diff --git a/roundup/cgi/client.py b/roundup/cgi/client.py
index b66b39b6e6208db1bfbd89c3813c0c8e3d80eea1..3b1023806a5bd4b20c7c3040c0cb6bd8378a7406 100644 (file)
--- a/roundup/cgi/client.py
+++ b/roundup/cgi/client.py
# see if we need to re-parse the environment for the form (eg Zope)
if form is None:
# see if we need to re-parse the environment for the form (eg Zope)
if form is None:
- self.form = cgi.FieldStorage(environ=env)
+ self.form = cgi.FieldStorage(fp=request.rfile, environ=env)
else:
self.form = form
else:
self.form = form
index 266edb9312c588c6c06e6b0d4489726a380f8677..12a2d0083cbb3e81bba61f2c56a2b9e2b685ac60 100644 (file)
""" Execute the CGI command. Wrap an innner call in an error
handler so all errors can be caught.
"""
""" Execute the CGI command. Wrap an innner call in an error
handler so all errors can be caught.
"""
- save_stdin = sys.stdin
- sys.stdin = self.rfile
try:
self.inner_run_cgi()
except client.NotFound:
try:
self.inner_run_cgi()
except client.NotFound:
# out to the logfile
print 'EXCEPTION AT', ts
traceback.print_exc()
# out to the logfile
print 'EXCEPTION AT', ts
traceback.print_exc()
- sys.stdin = save_stdin
do_GET = do_POST = do_HEAD = run_cgi
do_GET = do_POST = do_HEAD = run_cgi