Address follow-up feedback on System.Net.Requests annotations (#33691)
authorStephen Toub <stoub@microsoft.com>
Tue, 17 Mar 2020 22:54:08 +0000 (18:54 -0400)
committerGitHub <noreply@github.com>
Tue, 17 Mar 2020 22:54:08 +0000 (18:54 -0400)
src/libraries/System.Net.Requests/ref/System.Net.Requests.cs
src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs
src/libraries/System.Net.Requests/src/System/Net/IAuthenticationModule.cs

index d105fb5..6ea59d4 100644 (file)
@@ -278,8 +278,8 @@ namespace System.Net
     {
         string AuthenticationType { get; }
         bool CanPreAuthenticate { get; }
-        System.Net.Authorization Authenticate(string challenge, System.Net.WebRequest request, System.Net.ICredentials credentials);
-        System.Net.Authorization PreAuthenticate(System.Net.WebRequest request, System.Net.ICredentials credentials);
+        System.Net.Authorization? Authenticate(string challenge, System.Net.WebRequest request, System.Net.ICredentials credentials);
+        System.Net.Authorization? PreAuthenticate(System.Net.WebRequest request, System.Net.ICredentials credentials);
     }
     public partial interface ICredentialPolicy
     {
index 2b09105..de94b5c 100644 (file)
@@ -906,7 +906,7 @@ namespace System.Net
                 //
                 // FYI: Will do 2 attempts max as per AttemptedRecovery
                 //
-                Stream stream;
+                Stream? stream;
 
                 while (true)
                 {
@@ -971,20 +971,16 @@ namespace System.Net
             catch (WebException webException)
             {
                 // If this was a timeout, throw a timeout exception
-                IOException? ioEx = webException.InnerException as IOException;
-                if (ioEx != null)
+                if (webException.InnerException is IOException ioEx &&
+                    ioEx.InnerException is SocketException sEx &&
+                    sEx.SocketErrorCode == SocketError.TimedOut)
                 {
-                    SocketException? sEx = ioEx.InnerException as SocketException;
-                    if (sEx != null)
-                    {
-                        if (sEx.SocketErrorCode == SocketError.TimedOut)
-                        {
-                            SetException(ExceptionDispatchInfo.SetCurrentStackTrace(new WebException(SR.net_timeout, WebExceptionStatus.Timeout)));
-                        }
-                    }
+                    SetException(ExceptionDispatchInfo.SetCurrentStackTrace(new WebException(SR.net_timeout, WebExceptionStatus.Timeout)));
+                }
+                else
+                {
+                    SetException(webException);
                 }
-
-                SetException(webException);
             }
             catch (Exception exception)
             {
@@ -994,8 +990,7 @@ namespace System.Net
 
         private Exception TranslateConnectException(Exception e)
         {
-            SocketException? se = e as SocketException;
-            if (se != null)
+            if (e is SocketException se)
             {
                 if (se.SocketErrorCode == SocketError.HostNotFound)
                 {
@@ -1051,7 +1046,7 @@ namespace System.Net
             return new FtpControlStream(client);
         }
 
-        private Stream TimedSubmitRequestHelper(bool isAsync)
+        private Stream? TimedSubmitRequestHelper(bool isAsync)
         {
             if (isAsync)
             {
@@ -1099,7 +1094,7 @@ namespace System.Net
                 }
             }
 
-            return stream!;
+            return stream;
         }
 
         /// <summary>
@@ -1324,7 +1319,7 @@ namespace System.Net
 
                         try
                         {
-                            stream = (FtpDataStream)TimedSubmitRequestHelper(true);
+                            stream = (FtpDataStream?)TimedSubmitRequestHelper(true);
                         }
                         catch (Exception e)
                         {
index ea18022..273fe03 100644 (file)
@@ -6,8 +6,8 @@ namespace System.Net
 {
     public interface IAuthenticationModule
     {
-        Authorization Authenticate(string challenge, WebRequest request, ICredentials credentials);
-        Authorization PreAuthenticate(WebRequest request, ICredentials credentials);
+        Authorization? Authenticate(string challenge, WebRequest request, ICredentials credentials);
+        Authorization? PreAuthenticate(WebRequest request, ICredentials credentials);
         bool CanPreAuthenticate { get; }
         string AuthenticationType { get; }
     }