diff --git a/Lib/SimpleXMLRPCServer.py b/Lib/SimpleXMLRPCServer.py index 43757a03dda..4c286884a3f 100644 --- a/Lib/SimpleXMLRPCServer.py +++ b/Lib/SimpleXMLRPCServer.py @@ -598,8 +598,12 @@ class CGIXMLRPCRequestHandler(SimpleXMLRPCDispatcher): self.handle_get() else: # POST data is normally available through stdin + try: + length = int(os.environ.get('CONTENT_LENGTH', None)) + except ValueError: + length = -1 if request_text is None: - request_text = sys.stdin.read() + request_text = sys.stdin.read(length) self.handle_xmlrpc(request_text) diff --git a/Misc/NEWS b/Misc/NEWS index d51a3601d2b..1d210a1cd7b 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -200,6 +200,8 @@ Core and Builtins Library ------- +- Actually make the SimpleXMLRPCServer CGI handler work. + - Issue #2522: locale.format now checks its first argument to ensure it has been passed only one pattern, avoiding mysterious errors where it appeared that it was failing to do localization.