classification
Title: Simple enhancement to BaseHTTPRequestHandler
Type: enhancement Stage: resolved
Components: Library (Lib) Versions: Python 3.6, Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: martin.panter, python-dev, xiang.zhang
Priority: normal Keywords: patch

Created on 2016-03-18 04:06 by xiang.zhang, last changed 2016-04-03 03:27 by martin.panter. This issue is now closed.

Files
File name Uploaded Description Edit
simple_enhancement.patch xiang.zhang, 2016-03-18 04:06 simple enhancement for BaseHTTPRequestHandler review
simple_enhancement_v2.patch xiang.zhang, 2016-03-18 11:07 review
Messages (7)
msg261946 - (view) Author: Xiang Zhang (xiang.zhang) * (Python committer) Date: 2016-03-18 04:06
This patch propose several simple enhancement to BaseHTTPRequestHandler. It removes some redundant code and add handler for too many headers.
msg261957 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-03-18 10:12
Thanks for the patch, it looks good in general. I left some comments and suggestions.
msg261968 - (view) Author: Xiang Zhang (xiang.zhang) * (Python committer) Date: 2016-03-18 11:07
Thanks for your review. I have made some changes according to it.

Status code 431 is returned when the header line is too long or there are too many headers. And I think the short message is OK and we can provide the exception message in the content message.

As for the style, I don't know why I made that change. Quite sorry for make the noise.
msg262063 - (view) Author: Xiang Zhang (xiang.zhang) * (Python committer) Date: 2016-03-20 07:52
Ping.
msg262802 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-04-02 22:50
I propose to commit the “Too many headers” handler as a bug fix, and the other changes to only 3.6. Currently when more than 100 header fields are sent, the connection is killed and the server logs an unhandled exception.
msg262809 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-04-03 02:02
New changeset f5247195238f by Martin Panter in branch '3.5':
Issue #26586: Handle excessive header fields in http.server, by Xiang Zhang
https://hg.python.org/cpython/rev/f5247195238f

New changeset e8edddb4f74b by Martin Panter in branch 'default':
Issue #26586: Merge excessive HTTP header handling from 3.5
https://hg.python.org/cpython/rev/e8edddb4f74b

New changeset 1b696c744559 by Martin Panter in branch 'default':
Issue #26586: Simple enhancements to BaseHTTPRequestHandler by Xiang Zhang
https://hg.python.org/cpython/rev/1b696c744559
msg262811 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-04-03 03:27
I didn’t touch 2.7 because that doesn’t have the same header parsing code as Python 3.
History
Date User Action Args
2016-04-03 03:27:54martin.pantersetstatus: open -> closed
versions: - Python 2.7
messages: + msg262811

resolution: fixed
stage: commit review -> resolved
2016-04-03 02:02:23python-devsetnosy: + python-dev
messages: + msg262809
2016-04-02 22:50:19martin.pantersetstage: patch review -> commit review
messages: + msg262802
versions: + Python 2.7, Python 3.5
2016-03-20 07:52:09xiang.zhangsetmessages: + msg262063
2016-03-18 11:07:17xiang.zhangsetfiles: + simple_enhancement_v2.patch

messages: + msg261968
2016-03-18 10:12:06martin.pantersetnosy: + martin.panter

messages: + msg261957
stage: patch review
2016-03-18 04:06:16xiang.zhangcreate