Show More
@@ -127,17 +127,32 b' class VcsHttpProxy(object):' | |||||
127 |
|
127 | |||
128 |
|
128 | |||
129 | def _maybe_stream_request(environ): |
|
129 | def _maybe_stream_request(environ): | |
130 | if environ.get('HTTP_TRANSFER_ENCODING', '') == 'chunked': |
|
130 | path = environ['PATH_INFO'] | |
|
131 | stream = _is_request_chunked(environ) | |||
|
132 | log.debug('handling request `%s` with stream support: %s', path, stream) | |||
|
133 | ||||
|
134 | if stream: | |||
131 | return environ['wsgi.input'] |
|
135 | return environ['wsgi.input'] | |
132 | else: |
|
136 | else: | |
133 | return environ['wsgi.input'].read() |
|
137 | return environ['wsgi.input'].read() | |
134 |
|
138 | |||
135 |
|
139 | |||
|
140 | def _is_request_chunked(environ): | |||
|
141 | stream = environ.get('HTTP_TRANSFER_ENCODING', '') == 'chunked' | |||
|
142 | if not stream: | |||
|
143 | # git lfs should stream for PUT requests which are upload | |||
|
144 | stream = ('git-lfs' in environ.get('HTTP_USER_AGENT', '') | |||
|
145 | and environ['REQUEST_METHOD'] == 'PUT') | |||
|
146 | return stream | |||
|
147 | ||||
|
148 | ||||
136 | def _maybe_stream_response(response): |
|
149 | def _maybe_stream_response(response): | |
137 | """ |
|
150 | """ | |
138 | Try to generate chunks from the response if it is chunked. |
|
151 | Try to generate chunks from the response if it is chunked. | |
139 | """ |
|
152 | """ | |
140 |
|
|
153 | stream = _is_chunked(response) | |
|
154 | log.debug('returning response with stream: %s', stream) | |||
|
155 | if stream: | |||
141 | return response.raw.read_chunked() |
|
156 | return response.raw.read_chunked() | |
142 | else: |
|
157 | else: | |
143 | return [response.content] |
|
158 | return [response.content] |
@@ -207,6 +207,8 b' def http_environ(http_host_stub):' | |||||
207 | 'SERVER_NAME': http_host_stub.split(':')[0], |
|
207 | 'SERVER_NAME': http_host_stub.split(':')[0], | |
208 | 'SERVER_PORT': http_host_stub.split(':')[1], |
|
208 | 'SERVER_PORT': http_host_stub.split(':')[1], | |
209 | 'HTTP_HOST': http_host_stub, |
|
209 | 'HTTP_HOST': http_host_stub, | |
|
210 | 'HTTP_USER_AGENT': 'rc-test-agent', | |||
|
211 | 'REQUEST_METHOD': 'GET' | |||
210 | } |
|
212 | } | |
211 |
|
213 | |||
212 |
|
214 |
General Comments 0
You need to be logged in to leave comments.
Login now