public void HandleRequest(Object _Request)
{
var Request = (FastcgiRequest)_Request;
int Result = 0;
try
{
Request.ParseParamsStream();
HandleFastcgiRequest(Request);
Result = 0;
}
catch (Exception Exception)
{
Result = -1;
Console.Error.WriteLine(Exception);
}
Request.StdoutStream.Flush();
Request.StderrStream.Flush();
Writer.WritePacket(Request.RequestId, Fastcgi.PacketType.FCGI_STDOUT, Dummy, 0, 0);
Writer.WritePacketEndRequest(Request.RequestId, Result, Fastcgi.ProtocolStatus.FCGI_REQUEST_COMPLETE);
if (Debug)
{
Console.WriteLine("Completed Request(RequestId={0}, Result={1})", Request.RequestId, Result);
}
lock (Requests)
{
Requests.Remove(Request.RequestId);
if (Requests.Count == 0)
{
Writer.FastcgiPipe.Close();
}
}
}