소스 검색

连接超时时间10s

陈国伟 3 년 전
부모
커밋
bb9a192f9d
1개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 9 1
      FastGithub.Http/HttpClientHandler.cs

+ 9 - 1
FastGithub.Http/HttpClientHandler.cs

@@ -23,6 +23,7 @@ namespace FastGithub.Http
     {
         private readonly DomainConfig domainConfig;
         private readonly IDomainResolver domainResolver;
+        private readonly TimeSpan connectTimeout = TimeSpan.FromSeconds(10d);
 
         /// <summary>
         /// HttpClientHandler
@@ -101,7 +102,14 @@ namespace FastGithub.Http
             {
                 try
                 {
-                    return await this.ConnectAsync(context, ipEndPoint, cancellationToken);
+                    using var timeoutTokenSource = new CancellationTokenSource(this.connectTimeout);
+                    using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(timeoutTokenSource.Token, cancellationToken);
+                    return await this.ConnectAsync(context, ipEndPoint, linkedTokenSource.Token);
+                }
+                catch (OperationCanceledException)
+                {
+                    cancellationToken.ThrowIfCancellationRequested();
+                    innerExceptions.Add(new SocketException((int)SocketError.TimedOut));
                 }
                 catch (Exception ex)
                 {