/* * This constructor loads and http connection from a given tcp client. * It establishes the required streams and objects, then loads in the * header information, it avoids loading in post data for efficeincy. * The post data gets loaded later on when the parameters are accessed. */ internal HttpConnection(){ _disposed = false; _parser = new HttpParser(); }
internal void StartRequest(long id,string[] words,HttpConnection connection,ref HttpParser parser) { _id = id; _method = words[0].ToUpper(); _path = words[1]; _version = words[2]; _mreParameters = new ManualResetEvent(false); _connection = connection; _contentBuffer = new MemoryStream(); _requestTimeout = _requestStart.AddMilliseconds(int.MaxValue); _headers = new HeaderCollection(); _requestStart = DateTime.Now; _parser = parser; _response = new HttpResponse(this); parser.RequestHeaderLineRecieved = _RequestHeaderLineReceived; parser.RequestHeaderComplete = _RequestHeaderComplete; parser.RequestBodyBytesRecieved = _RequestBodyBytesReceived; parser.RequestComplete = _RequestComplete; }