# HG changeset patch # User Ivo Smits # Date 1415035798 -3600 # Node ID 0fc3f42a855597ff52bd3a9ad89e0c4201880fab # Parent 819fb56a56ea490fe626f95d543c217398a1b27b Small improvements, return TCPSocket in HTTPContext if applicable diff -r 819fb56a56ea -r 0fc3f42a8555 Net/HTTP.cs --- a/Net/HTTP.cs Mon Oct 27 23:24:32 2014 +0100 +++ b/Net/HTTP.cs Mon Nov 03 18:29:58 2014 +0100 @@ -99,7 +99,7 @@ public Socket Socket { get; private set; } public Boolean SuppressStandardHeaders { get; set; } - public TCPStream TCPStream { get; private set; } + public TCPStream TCPStream { get { return Reader.BaseStream as TCPStream; } } private StreamWriter Writer; private PrebufferingStream Reader; @@ -411,14 +411,10 @@ if (socket.ProtocolType == ProtocolType.Tcp) socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); if (stream == null) stream = new NetworkStream(socket, true); } - Init(stream); - } - - private void Init(Stream Stream) { - Writer = new StreamWriter(Stream, Encoding.ASCII); + Writer = new StreamWriter(stream, Encoding.ASCII); Writer.NewLine = "\r\n"; Writer.AutoFlush = true; - Reader = new PrebufferingStream(Stream); + Reader = new PrebufferingStream(stream); Reader.BeginPrebuffering(PrebufferCallback, null); } diff -r 819fb56a56ea -r 0fc3f42a8555 Xml/Socket.cs --- a/Xml/Socket.cs Mon Oct 27 23:24:32 2014 +0100 +++ b/Xml/Socket.cs Mon Nov 03 18:29:58 2014 +0100 @@ -58,18 +58,16 @@ return Buffer; } public virtual XmlDocument ReadDocument() { - MemoryStream Buffer = ReadRawDocument(); - try { - XmlDocument Doc = new XmlDocument(); - XmlReader XMLReader = XmlReader.Create(Buffer, pXMLReaderSettings); - Doc.Load(XMLReader); - XMLReader.Close(); - return Doc; - } catch (Exception ex) { - Buffer.Seek(0, SeekOrigin.Begin); - throw new IOException("Could not parse XML document: \"" + Encoding.UTF8.GetString(Buffer.ToArray()) + "\"", ex); - } + MemoryStream Buffer = ReadRawDocument(); + XmlDocument Doc = new XmlDocument(); + try { + using (XmlReader XMLReader = XmlReader.Create(Buffer, pXMLReaderSettings)) Doc.Load(XMLReader); + } catch (Exception ex) { + Buffer.Seek(0, SeekOrigin.Begin); + throw new IOException("Could not parse XML document: \"" + Encoding.UTF8.GetString(Buffer.ToArray()) + "\"", ex); } + return Doc; + } protected virtual void CreateWriter() { pWriter = XmlWriter.Create(pStream, WriterSettings);