Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetResponse()

override WebResponse System.Net.FtpWebRequest.GetResponse ( )
inlinevirtual

Reimplemented from System.Net.WebRequest.

Definition at line 503 of file FtpWebRequest.cs.

504 {
505 if (System.Net.NetEventSource.Log.IsEnabled())
506 {
507 System.Net.NetEventSource.Info(this, $"Method: {_methodInfo.Method}", "GetResponse");
508 }
509 try
510 {
511 CheckError();
512 if (_ftpWebResponse != null)
513 {
514 return _ftpWebResponse;
515 }
517 {
519 }
520 _getResponseStarted = true;
523 if (Timeout != -1)
524 {
525 _remainingTimeout = Timeout - (int)(DateTime.UtcNow - _startTime).TotalMilliseconds;
526 if (_remainingTimeout <= 0)
527 {
528 throw ExceptionHelper.TimeoutException;
529 }
530 }
531 RequestStage requestStage = FinishRequestStage(RequestStage.RequestStarted);
532 if (requestStage >= RequestStage.RequestStarted)
533 {
534 if (requestStage < RequestStage.ReadReady)
535 {
536 lock (_syncObject)
537 {
538 if (_requestStage < RequestStage.ReadReady)
539 {
540 _readAsyncResult = new LazyAsyncResult(null, null, null);
541 }
542 }
543 if (_readAsyncResult != null)
544 {
546 }
547 CheckError();
548 }
549 }
550 else
551 {
552 SubmitRequest(isAsync: false);
554 {
555 FinishRequestStage(RequestStage.WriteReady);
556 }
557 else
558 {
559 FinishRequestStage(RequestStage.ReadReady);
560 }
561 CheckError();
563 }
564 }
565 catch (Exception ex)
566 {
567 if (System.Net.NetEventSource.Log.IsEnabled())
568 {
569 System.Net.NetEventSource.Error(this, ex, "GetResponse");
570 }
571 if (_exception == null)
572 {
573 if (System.Net.NetEventSource.Log.IsEnabled())
574 {
575 System.Net.NetEventSource.Error(this, ex, "GetResponse");
576 }
577 SetException(ex);
578 FinishRequestStage(RequestStage.CheckForError);
579 }
580 throw;
581 }
582 return _ftpWebResponse;
583 }
LazyAsyncResult _readAsyncResult
FtpWebResponse _ftpWebResponse
void SubmitRequest(bool isAsync)
void EnsureFtpWebResponse(Exception exception)
RequestStage FinishRequestStage(RequestStage stage)
void SetException(Exception exception)
static readonly System.Net.NetEventSource Log
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)
static void Error(object thisOrContextObject, FormattableString formattableString, [CallerMemberName] string memberName=null)
static string net_repcall
Definition SR.cs:38
Definition SR.cs:7
static unsafe DateTime UtcNow
Definition DateTime.cs:142

References System.Net.FtpWebRequest._exception, System.Net.FtpWebRequest._ftpWebResponse, System.Net.FtpWebRequest._getResponseStarted, System.Net.FtpWebRequest._methodInfo, System.Net.FtpWebRequest._readAsyncResult, System.Net.FtpWebRequest._remainingTimeout, System.Net.FtpWebRequest._requestStage, System.Net.FtpWebRequest._startTime, System.Net.FtpWebRequest._syncObject, System.Net.FtpWebRequest.CheckError(), System.Net.FtpWebRequest.EnsureFtpWebResponse(), System.Net.NetEventSource.Error(), System.Net.FtpWebRequest.FinishRequestStage(), System.Net.NetEventSource.Info(), System.Net.LazyAsyncResult.InternalWaitForCompletion(), System.Net.FtpMethodInfo.IsUpload, System.Net.NetEventSource.Log, System.SR.net_repcall, System.Net.FtpWebRequest.SetException(), System.Net.FtpWebRequest.SubmitRequest(), System.Net.FtpWebRequest.Timeout, System.Net.ExceptionHelper.TimeoutException, and System.DateTime.UtcNow.