void InitConnection(object state) { HttpWebRequest request = (HttpWebRequest)state; request.WebConnection = this; if (request.ReuseConnection) { request.StoredConnection = this; } if (request.Aborted) { return; } keepAlive = request.KeepAlive; Data = new WebConnectionData(request); retry: Connect(request); if (request.Aborted) { return; } if (status != WebExceptionStatus.Success) { if (!request.Aborted) { request.SetWriteStreamError(status, connect_exception); Close(true); } return; } if (!CreateStream(request)) { if (request.Aborted) { return; } WebExceptionStatus st = status; if (Data.Challenge != null) { goto retry; } Exception cnc_exc = connect_exception; connect_exception = null; request.SetWriteStreamError(st, cnc_exc); Close(true); return; } request.SetWriteStream(new WebConnectionStream(this, request)); }
private void InitConnection(object state) { HttpWebRequest httpWebRequest = (HttpWebRequest)state; httpWebRequest.WebConnection = this; if (httpWebRequest.Aborted) { return; } keepAlive = httpWebRequest.KeepAlive; Data = new WebConnectionData(); Data.request = httpWebRequest; while (true) { Connect(httpWebRequest); if (httpWebRequest.Aborted) { return; } if (status != 0) { if (!httpWebRequest.Aborted) { httpWebRequest.SetWriteStreamError(status, connect_exception); Close(sendNext: true); } return; } if (CreateStream(httpWebRequest)) { break; } if (httpWebRequest.Aborted) { return; } WebExceptionStatus webExceptionStatus = status; if (Data.Challenge != null) { continue; } Exception exc = connect_exception; connect_exception = null; httpWebRequest.SetWriteStreamError(webExceptionStatus, exc); Close(sendNext: true); return; } readState = ReadState.None; httpWebRequest.SetWriteStream(new WebConnectionStream(this, httpWebRequest)); }
void InitConnection(object state) { HttpWebRequest request = (HttpWebRequest)state; if (status == WebExceptionStatus.RequestCanceled) { lock (this) { busy = false; Data = new WebConnectionData(); SendNext(); } return; } keepAlive = request.KeepAlive; Data = new WebConnectionData(); Data.request = request; retry: Connect(); if (status != WebExceptionStatus.Success) { if (status != WebExceptionStatus.RequestCanceled) { request.SetWriteStreamError(status); Close(true); } return; } if (!CreateStream(request)) { if (Data.Challenge != null) { goto retry; } request.SetWriteStreamError(status); Close(true); return; } readState = ReadState.None; request.SetWriteStream(new WebConnectionStream(this, request)); }
void InitConnection(object state) { HttpWebRequest request = (HttpWebRequest)state; request.WebConnection = this; if (request.ReuseConnection) { request.StoredConnection = this; } if (request.Aborted) { return; } keepAlive = request.KeepAlive; Data = new WebConnectionData(request); retry: Connect(request); if (request.Aborted) { return; } if (status != WebExceptionStatus.Success) { if (!request.Aborted) { request.SetWriteStreamError(status, connect_exception); Close(true); } return; } if (!CreateStream(request)) { if (request.Aborted) { return; } WebExceptionStatus st = status; if (Data.Challenge != null) { goto retry; } Exception cnc_exc = connect_exception; if (cnc_exc == null && (Data.StatusCode == 401 || Data.StatusCode == 407)) { st = WebExceptionStatus.ProtocolError; if (Data.Headers == null) { Data.Headers = new WebHeaderCollection(); } var webResponse = new HttpWebResponse(sPoint.Address, "CONNECT", Data, null); cnc_exc = new WebException(Data.StatusCode == 407 ? "(407) Proxy Authentication Required" : "(401) Unauthorized", null, st, webResponse); } connect_exception = null; request.SetWriteStreamError(st, cnc_exc); Close(true); return; } request.SetWriteStream(new WebConnectionStream(this, request)); }
private void InitConnection(object state) { HttpWebRequest httpWebRequest = (HttpWebRequest)state; httpWebRequest.WebConnection = this; if (httpWebRequest.Aborted) { return; } this.keepAlive = httpWebRequest.KeepAlive; this.Data = new WebConnectionData(); this.Data.request = httpWebRequest; WebExceptionStatus webExceptionStatus; for (;;) { this.Connect(httpWebRequest); if (httpWebRequest.Aborted) { break; } if (this.status != WebExceptionStatus.Success) { goto Block_3; } if (this.CreateStream(httpWebRequest)) { goto IL_D2; } if (httpWebRequest.Aborted) { return; } webExceptionStatus = this.status; if (this.Data.Challenge == null) { goto IL_B4; } } return; Block_3: if (!httpWebRequest.Aborted) { httpWebRequest.SetWriteStreamError(this.status, this.connect_exception); this.Close(true); } return; IL_B4: Exception exc = this.connect_exception; this.connect_exception = null; httpWebRequest.SetWriteStreamError(webExceptionStatus, exc); this.Close(true); return; IL_D2: this.readState = ReadState.None; httpWebRequest.SetWriteStream(new WebConnectionStream(this, httpWebRequest)); }