internal void SetResponseError (WebExceptionStatus status, Exception e, string where)
{
if (Aborted)
return;
lock (locker) {
string msg = String.Format ("Error getting response stream ({0}): {1}", where, status);
WebAsyncResult r = asyncRead;
if (r == null)
r = asyncWrite;
WebException wexc;
if (e is WebException) {
wexc = (WebException) e;
} else {
wexc = new WebException (msg, e, status, null);
}
if (r != null) {
if (!r.IsCompleted) {
r.SetCompleted (false, wexc);
r.DoCallback ();
} else if (r == asyncWrite) {
saved_exc = wexc;
}
haveResponse = true;
asyncRead = null;
asyncWrite = null;
} else {
haveResponse = true;
saved_exc = wexc;
}
}
}