aboutsummaryrefslogtreecommitdiff
path: root/SocketHttpListener.Portable/Net/HttpConnection.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-12 03:02:46 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-12 03:02:46 -0500
commit1714cb8764f2311fd255945d5a03d6b298f62071 (patch)
tree43b05abfdff0a4bb49258180798b5df8e0f07b81 /SocketHttpListener.Portable/Net/HttpConnection.cs
parent6865bb53530abbf703b590dd39cfa27274b03107 (diff)
update response stream handling
Diffstat (limited to 'SocketHttpListener.Portable/Net/HttpConnection.cs')
-rw-r--r--SocketHttpListener.Portable/Net/HttpConnection.cs17
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;
}