private void WriteAsyncCB(IAsyncResult r) { WebAsyncResult result = (WebAsyncResult)r.AsyncState; result.InnerAsyncResult = null; try { cnc.EndWrite(request, true, r); result.SetCompleted(false, 0); if (!initRead) { initRead = true; WebConnection.InitRead(cnc); } } catch (Exception e) { KillBuffer(); nextReadCalled = true; cnc.Close(true); if (e is System.Net.Sockets.SocketException) { e = new IOException("Error writing request", e); } result.SetCompleted(false, e); } if (allowBuffering && !sendChunked && request.ContentLength > 0 && totalWritten == request.ContentLength) { complete_request_written = true; } result.DoCallback(); }