comparison Net/HTTP.cs @ 109:0fc3f42a8555

Small improvements, return TCPSocket in HTTPContext if applicable
author Ivo Smits <Ivo@UCIS.nl>
date Mon, 03 Nov 2014 18:29:58 +0100
parents a03e6ad0051f
children
comparison
equal deleted inserted replaced
108:819fb56a56ea 109:0fc3f42a8555
97 public String RequestQuery { get; private set; } 97 public String RequestQuery { get; private set; }
98 public int HTTPVersion { get; set; } 98 public int HTTPVersion { get; set; }
99 99
100 public Socket Socket { get; private set; } 100 public Socket Socket { get; private set; }
101 public Boolean SuppressStandardHeaders { get; set; } 101 public Boolean SuppressStandardHeaders { get; set; }
102 public TCPStream TCPStream { get; private set; } 102 public TCPStream TCPStream { get { return Reader.BaseStream as TCPStream; } }
103 103
104 private StreamWriter Writer; 104 private StreamWriter Writer;
105 private PrebufferingStream Reader; 105 private PrebufferingStream Reader;
106 private List<HTTPHeader> RequestHeaders = null; 106 private List<HTTPHeader> RequestHeaders = null;
107 private HTTPConnectionState State = HTTPConnectionState.Starting; 107 private HTTPConnectionState State = HTTPConnectionState.Starting;
409 this.LocalEndPoint = socket.LocalEndPoint; 409 this.LocalEndPoint = socket.LocalEndPoint;
410 this.RemoteEndPoint = socket.RemoteEndPoint; 410 this.RemoteEndPoint = socket.RemoteEndPoint;
411 if (socket.ProtocolType == ProtocolType.Tcp) socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); 411 if (socket.ProtocolType == ProtocolType.Tcp) socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
412 if (stream == null) stream = new NetworkStream(socket, true); 412 if (stream == null) stream = new NetworkStream(socket, true);
413 } 413 }
414 Init(stream); 414 Writer = new StreamWriter(stream, Encoding.ASCII);
415 }
416
417 private void Init(Stream Stream) {
418 Writer = new StreamWriter(Stream, Encoding.ASCII);
419 Writer.NewLine = "\r\n"; 415 Writer.NewLine = "\r\n";
420 Writer.AutoFlush = true; 416 Writer.AutoFlush = true;
421 Reader = new PrebufferingStream(Stream); 417 Reader = new PrebufferingStream(stream);
422 Reader.BeginPrebuffering(PrebufferCallback, null); 418 Reader.BeginPrebuffering(PrebufferCallback, null);
423 } 419 }
424 420
425 private static String ReadLine(Stream stream) { 421 private static String ReadLine(Stream stream) {
426 StringBuilder s = new StringBuilder(); 422 StringBuilder s = new StringBuilder();