changeset: 77320:935a656359ae parent: 77313:eb1d633fe307 user: Senthil Kumaran date: Sun Jun 03 16:15:54 2012 +0800 files: Doc/library/http.server.rst Lib/http/server.py Misc/NEWS description: Issue 14989: http.server --cgi option can enable the CGI http server. diff -r eb1d633fe307 -r 935a656359ae Doc/library/http.server.rst --- a/Doc/library/http.server.rst Sun Jun 03 06:09:42 2012 +0300 +++ b/Doc/library/http.server.rst Sun Jun 03 16:15:54 2012 +0800 @@ -400,3 +400,9 @@ 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 + diff -r eb1d633fe307 -r 935a656359ae Lib/http/server.py --- a/Lib/http/server.py Sun Jun 03 06:09:42 2012 +0300 +++ b/Lib/http/server.py Sun Jun 03 16:15:54 2012 +0800 @@ -100,6 +100,8 @@ import time import urllib.parse import copy +import argparse + # Default error message template DEFAULT_ERROR_MESSAGE = """\ @@ -1173,18 +1175,13 @@ 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 @@ 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) diff -r eb1d633fe307 -r 935a656359ae Misc/NEWS --- a/Misc/NEWS Sun Jun 03 06:09:42 2012 +0300 +++ b/Misc/NEWS Sun Jun 03 16:15:54 2012 +0800 @@ -10,6 +10,9 @@ 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