From 0f4eb8a0d20075686fef4dc22a319a9d6cfe024e Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Tue, 17 Mar 2020 18:54:08 -0400 Subject: [PATCH] Address follow-up feedback on System.Net.Requests annotations (#33691) --- .../System.Net.Requests/ref/System.Net.Requests.cs | 4 +-- .../src/System/Net/FtpWebRequest.cs | 31 +++++++++------------- .../src/System/Net/IAuthenticationModule.cs | 4 +-- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/src/libraries/System.Net.Requests/ref/System.Net.Requests.cs b/src/libraries/System.Net.Requests/ref/System.Net.Requests.cs index d105fb5..6ea59d4 100644 --- a/src/libraries/System.Net.Requests/ref/System.Net.Requests.cs +++ b/src/libraries/System.Net.Requests/ref/System.Net.Requests.cs @@ -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 { diff --git a/src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs b/src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs index 2b09105..de94b5c 100644 --- a/src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs +++ b/src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs @@ -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; } /// @@ -1324,7 +1319,7 @@ namespace System.Net try { - stream = (FtpDataStream)TimedSubmitRequestHelper(true); + stream = (FtpDataStream?)TimedSubmitRequestHelper(true); } catch (Exception e) { diff --git a/src/libraries/System.Net.Requests/src/System/Net/IAuthenticationModule.cs b/src/libraries/System.Net.Requests/src/System/Net/IAuthenticationModule.cs index ea18022..273fe03 100644 --- a/src/libraries/System.Net.Requests/src/System/Net/IAuthenticationModule.cs +++ b/src/libraries/System.Net.Requests/src/System/Net/IAuthenticationModule.cs @@ -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; } } -- 2.7.4