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 ();
}