Commit 1251fafc authored by Senthil Kumaran's avatar Senthil Kumaran

Issue 14989: http.server --cgi option can enable the CGI http server.

parent c68e1368
......@@ -400,3 +400,9 @@ the previous example, this serves files relative to the current directory. ::
Note that CGI scripts will be run with UID of user nobody, for security
reasons. Problems with the CGI script will be translated to error 403.
:class:`CGIHTTPRequestHandler` can be enabled in the command line by passing
the ``--cgi`` option.::
python -m http.server --cgi 8000
......@@ -100,6 +100,8 @@ import sys
import time
import urllib.parse
import copy
import argparse
# Default error message template
DEFAULT_ERROR_MESSAGE = """\
......@@ -1173,18 +1175,13 @@ class CGIHTTPRequestHandler(SimpleHTTPRequestHandler):
def test(HandlerClass = BaseHTTPRequestHandler,
ServerClass = HTTPServer, protocol="HTTP/1.0"):
ServerClass = HTTPServer, protocol="HTTP/1.0", port=8000):
"""Test the HTTP request handler class.
This runs an HTTP server on port 8000 (or the first command line
argument).
"""
if sys.argv[1:]:
port = int(sys.argv[1])
else:
port = 8000
server_address = ('', port)
HandlerClass.protocol_version = protocol
......@@ -1200,4 +1197,15 @@ def test(HandlerClass = BaseHTTPRequestHandler,
sys.exit(0)
if __name__ == '__main__':
test(HandlerClass=SimpleHTTPRequestHandler)
parser = argparse.ArgumentParser()
parser.add_argument('--cgi', action='store_true',
help='Run as CGI Server')
parser.add_argument('port', action='store',
default=8000, type=int,
nargs='?',
help='Specify alternate port [default: 8000]')
args = parser.parse_args()
if args.cgi:
test(HandlerClass=CGIHTTPRequestHandler, port=args.port)
else:
test(HandlerClass=SimpleHTTPRequestHandler, port=args.port)
......@@ -10,6 +10,9 @@ What's New in Python 3.3.0 Beta 1?
Library
-------
- Issue #14989: Make the CGI enable option to http.server available via command
line.
- Issue #14987: Add a missing import statement to inspect.
- Issue #1079: email.header.decode_header now correctly parses all the examples
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment