diff options
Diffstat (limited to 'SocketHttpListener.Portable/Net/HttpConnection.cs')
| -rw-r--r-- | SocketHttpListener.Portable/Net/HttpConnection.cs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/SocketHttpListener.Portable/Net/HttpConnection.cs b/SocketHttpListener.Portable/Net/HttpConnection.cs index db34c4218..8e472117e 100644 --- a/SocketHttpListener.Portable/Net/HttpConnection.cs +++ b/SocketHttpListener.Portable/Net/HttpConnection.cs @@ -23,7 +23,7 @@ namespace SocketHttpListener.Net StringBuilder current_line; ListenerPrefix prefix; RequestStream i_stream; - ResponseStream o_stream; + Stream o_stream; bool chunked; int reuses; bool context_bound; @@ -204,12 +204,23 @@ namespace SocketHttpListener.Net return i_stream; } - public ResponseStream GetResponseStream() + public Stream GetResponseStream() { // TODO: can we get this stream before reading the input? if (o_stream == null) { - o_stream = new ResponseStream(stream, context.Response, _memoryStreamFactory, _textEncoding); + if (context.Response.SendChunked) + { + o_stream = new ResponseStream(stream, context.Response, _memoryStreamFactory, _textEncoding); + } + else + { + o_stream = stream; + using (var headerStream = ResponseStream.GetHeaders(context.Response, _memoryStreamFactory, false)) + { + headerStream.CopyTo(o_stream); + } + } } return o_stream; } |
