private static void SendCompleteCallback(OwinSocket sck, int status, Exception ex, object state) { if (state == null) { sck.Dispose(); return; } RequestData requestData = (RequestData)state; byte[] preLoadedBody = requestData._preLoadedBody; bool flag = requestData.IsKeepAlive(); requestData.SaveToPoll(); if (status != 0 || ex != null || !flag) { sck.Dispose(); return; } OwinHttpWorkerManage.Start(sck, preLoadedBody); }
private void CompilteCallback(OwinSocket sck, int status, Exception ex, object state) { if (status != 0 || ex != null) { _fs.Close(); sck.Dispose(); _req.SaveToPoll(); return; } if (_offsetSize <= 0) { _fs.Close(); if (_req.IsKeepAlive()) { OwinHttpWorkerManage.Start(sck, _req._preLoadedBody); } else { sck.Dispose(); } _req.SaveToPoll(); _req = null; return; } long num2 = _offsetSize; if (num2 > 65536) { num2 = 65536; } byte[] array = new byte[num2]; _fs.Seek(_sendedSize, SeekOrigin.Begin); checked { _fs.Read(array, 0, (int)num2); _sendedSize += num2; _offsetSize -= num2; sck.Write(array, new Action <OwinSocket, int, Exception, object>(CompilteCallback), null); } }