From b207a1f133e642464f1d4669602583a46e97aed1 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Tue, 9 Feb 2016 19:01:09 -0500 Subject: [PATCH] [Mono.Security]: Add 'MonoTlsProviderFactory.GetProvider(string)'. Similar to 'SetDefaultProvider(string)', but return the provider instead of installing it. (cherry picked from commit 024241f424062a41f35061cd851f0923e25f16c7) --- .../Mono.Security.Interface/MonoTlsProviderFactory.cs | 5 +++++ .../System/Mono.Net.Security/MonoTlsProviderFactory.cs | 5 +++++ mcs/class/System/Mono.Net.Security/NoReflectionHelper.cs | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/mcs/class/Mono.Security/Mono.Security.Interface/MonoTlsProviderFactory.cs b/mcs/class/Mono.Security/Mono.Security.Interface/MonoTlsProviderFactory.cs index 770680cbb8c..557d024da21 100644 --- a/mcs/class/Mono.Security/Mono.Security.Interface/MonoTlsProviderFactory.cs +++ b/mcs/class/Mono.Security/Mono.Security.Interface/MonoTlsProviderFactory.cs @@ -82,6 +82,11 @@ namespace Mono.Security.Interface NoReflectionHelper.SetDefaultProvider (name); } + public static MonoTlsProvider GetProvider (string name) + { + return (MonoTlsProvider)NoReflectionHelper.GetProvider (name); + } + /* * Create @HttpWebRequest with the specified @provider (may be null to use the default one). * diff --git a/mcs/class/System/Mono.Net.Security/MonoTlsProviderFactory.cs b/mcs/class/System/Mono.Net.Security/MonoTlsProviderFactory.cs index f2cf321677d..2becfa09f0c 100644 --- a/mcs/class/System/Mono.Net.Security/MonoTlsProviderFactory.cs +++ b/mcs/class/System/Mono.Net.Security/MonoTlsProviderFactory.cs @@ -230,6 +230,11 @@ namespace Mono.Net.Security return provider.Provider; } + internal static MSI.MonoTlsProvider GetProvider (string name) + { + return LookupProvider (name, true); + } + internal static bool HasProvider { get { lock (locker) { diff --git a/mcs/class/System/Mono.Net.Security/NoReflectionHelper.cs b/mcs/class/System/Mono.Net.Security/NoReflectionHelper.cs index a11fcec2c19..6de1cd25993 100644 --- a/mcs/class/System/Mono.Net.Security/NoReflectionHelper.cs +++ b/mcs/class/System/Mono.Net.Security/NoReflectionHelper.cs @@ -120,5 +120,13 @@ namespace Mono.Net.Security #endif } + internal static object GetProvider (string name) + { + #if SECURITY_DEP + return MonoTlsProviderFactory.GetProvider (name); + #else + throw new NotSupportedException (); + #endif + } } } -- 2.25.1