HomePhabricator

Move request decoding/streaming to AphrontRequestStream

Description

Move request decoding/streaming to AphrontRequestStream

Summary:
Ref T10604. This moves the php://input / gzip handling code to a separate class. More input handling responsibility can likely live here in the future.

Ref T10264 for gzip window stuff.

Test Plan:
See next change. Cloned a repository, broswed around, submitted POST data.

The window parameter is still a little magic, but this interpretation appears to work (?) and is supported by the zlib documentation:

windowBits can also be greater than 15 for optional gzip decoding. Add 32 to windowBits to enable zlib and gzip decoding with automatic header detection, or add 16 to decode only the gzip format (the zlib format will return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a crc32 instead of an adler32.
http://www.zlib.net/manual.html

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10264, T10604

Differential Revision: https://secure.phabricator.com/D15483