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