Based on comments from Paul Prescod:
If os.fork() doesn't exist, raise SystemError with an explanation at
the top of the module. Added a note to the module docstring.
diff --git a/Lib/CGIHTTPServer.py b/Lib/CGIHTTPServer.py
index d5ec7b0..dc17392 100644
--- a/Lib/CGIHTTPServer.py
+++ b/Lib/CGIHTTPServer.py
@@ -3,6 +3,9 @@
This module builds on SimpleHTTPServer by implementing GET and POST
requests to cgi-bin scripts.
+If the os.fork() function is not present, this module will not work;
+SystemError will be raised instead.
+
"""
@@ -16,6 +19,12 @@
import SimpleHTTPServer
+try:
+ os.fork
+except NameError:
+ raise SystemError, __name__ + " requires os.fork()"
+
+
class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
"""Complete HTTP server with GET, HEAD and POST commands.
@@ -147,9 +156,9 @@
ua = self.headers.getheader('user-agent')
if ua:
env['HTTP_USER_AGENT'] = ua
- co = self.headers.getheader('cookie')
+ co = filter(None, self.headers.getheaders('cookie'))
if co:
- env['HTTP_COOKIE'] = co
+ env['HTTP_COOKIE'] = string.join(co, ', ')
# XXX Other HTTP_* headers
decoded_query = string.replace(query, '+', ' ')
try: