diff --git a/Duplicati/Library/DynamicLoader/BackendLoader.cs b/Duplicati/Library/DynamicLoader/BackendLoader.cs index 889beaf1a..e515777d4 100644 --- a/Duplicati/Library/DynamicLoader/BackendLoader.cs +++ b/Duplicati/Library/DynamicLoader/BackendLoader.cs @@ -23,6 +23,7 @@ using System.Text; using Duplicati.Library.Interface; using System.Collections.Specialized; using System.Web; +using System.Linq; namespace Duplicati.Library.DynamicLoader { @@ -94,8 +95,24 @@ namespace Duplicati.Library.DynamicLoader { if (m_interfaces.ContainsKey(scheme)) return (IBackend)Activator.CreateInstance(m_interfaces[scheme].GetType(), url, newOpts); - else - return null; + else if (scheme.EndsWith("s")) + { + var tmpscheme = scheme.Substring(0, scheme.Length - 1); + if (m_interfaces.ContainsKey(tmpscheme)) + { + var commands = m_interfaces[tmpscheme].SupportedCommands; + if (commands != null && (commands.Where(x => + x.Name.Equals("use-ssl", StringComparison.InvariantCultureIgnoreCase) || + (x.Aliases != null && x.Aliases.Where(y => y.Equals("use-ssl", StringComparison.InvariantCultureIgnoreCase)).Any()) + ).Any())) + { + newOpts["use-ssl"] = "true"; + return (IBackend)Activator.CreateInstance(m_interfaces[tmpscheme].GetType(), url, newOpts); + } + } + } + + return null; } } diff --git a/Duplicati/Library/DynamicLoader/Duplicati.Library.DynamicLoader.csproj b/Duplicati/Library/DynamicLoader/Duplicati.Library.DynamicLoader.csproj index f70155dd1..48a96f22e 100644 --- a/Duplicati/Library/DynamicLoader/Duplicati.Library.DynamicLoader.csproj +++ b/Duplicati/Library/DynamicLoader/Duplicati.Library.DynamicLoader.csproj @@ -59,6 +59,7 @@ +