internal void Close(bool force) { if (_disposed) { return; } _disposed = true; if (!force) { if (flush(true)) { _response.Close(); _response = null; _innerStream = null; return; } _response.CloseConnection = true; } if (_sendChunked) { _write(_lastChunk, 0, 5); } _bodyBuffer.Dispose(); _response.Abort(); _bodyBuffer = null; _response = null; _innerStream = null; }
public override void Close() { if (_disposed) { return; } _disposed = true; var stream = getHeaders(true); var chunked = _response.SendChunked; byte [] bytes = null; if (stream != null) { var start = stream.Position; if (chunked && !_trailerSent) { bytes = getChunkSizeBytes(0, true); stream.Position = stream.Length; stream.Write(bytes, 0, bytes.Length); } InternalWrite( stream.GetBuffer(), (int)start, (int)(stream.Length - start)); _trailerSent = true; } else if (chunked && !_trailerSent) { bytes = getChunkSizeBytes(0, true); InternalWrite(bytes, 0, bytes.Length); _trailerSent = true; } _response.Close(); }
internal static void CloseWithAuthChallenge(this WebSocketSharp.Net.HttpListenerResponse response, string challenge) { response.Headers.SetInternal("WWW-Authenticate", challenge, true); response.Close(WebSocketSharp.Net.HttpStatusCode.Unauthorized); }