Mercurial > hg > ucis.core
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(); |