diff options
author | Kai <nospam@kaigrabfelder.de> | 2020-10-03 15:20:08 +0300 |
---|---|---|
committer | Kai <nospam@kaigrabfelder.de> | 2020-10-03 15:20:08 +0300 |
commit | 8b1d2cfafa4eaaa4d0c890d1e3c630984e653c89 (patch) | |
tree | 1147d6784ebc760f9878cf1b59e00a66e0743e02 /Duplicati/Library | |
parent | 8e3a52654b276838819b83d98fb0ed84c79b4fb8 (diff) | |
parent | f6e225d62d06e1eca7f0f817bd09ec48e99bce65 (diff) |
Merge branch 'master' of https://github.com/barfoo4711/duplicati into master
Diffstat (limited to 'Duplicati/Library')
-rw-r--r-- | Duplicati/Library/AutoUpdater/app.config | 3 | ||||
-rw-r--r-- | Duplicati/Library/Backend/S3/S3Backend.cs | 1 | ||||
-rw-r--r-- | Duplicati/Library/Main/Operation/DeleteHandler.cs | 1 | ||||
-rw-r--r-- | Duplicati/Library/Snapshots/app.config | 1 | ||||
-rw-r--r-- | Duplicati/Library/Utility/Uri.cs | 23 |
5 files changed, 26 insertions, 3 deletions
diff --git a/Duplicati/Library/AutoUpdater/app.config b/Duplicati/Library/AutoUpdater/app.config index 72546de59..4bbc5293b 100644 --- a/Duplicati/Library/AutoUpdater/app.config +++ b/Duplicati/Library/AutoUpdater/app.config @@ -3,4 +3,7 @@ <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1"/>
</startup>
+ <runtime>
+ <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false" />
+ </runtime>
</configuration>
diff --git a/Duplicati/Library/Backend/S3/S3Backend.cs b/Duplicati/Library/Backend/S3/S3Backend.cs index ee1b84eb1..b8dcb24c4 100644 --- a/Duplicati/Library/Backend/S3/S3Backend.cs +++ b/Duplicati/Library/Backend/S3/S3Backend.cs @@ -51,6 +51,7 @@ namespace Duplicati.Library.Backend { "dinCloud - Chicago", "d3-ord.dincloud.com" },
{ "dinCloud - Los Angeles", "d3-lax.dincloud.com" },
{ "IBM COS (S3) Public US", "s3-api.us-geo.objectstorage.softlayer.net" },
+ { "Storadera", "eu-east-1.s3.storadera.com" },
{ "Wasabi Hot Storage", "s3.wasabisys.com" },
{ "Wasabi Hot Storage (US West)", "s3.us-west-1.wasabisys.com" },
{ "Wasabi Hot Storage (EU Central)", "s3.eu-central-1.wasabisys.com" },
diff --git a/Duplicati/Library/Main/Operation/DeleteHandler.cs b/Duplicati/Library/Main/Operation/DeleteHandler.cs index bb1cc8f88..c3693a1fe 100644 --- a/Duplicati/Library/Main/Operation/DeleteHandler.cs +++ b/Duplicati/Library/Main/Operation/DeleteHandler.cs @@ -281,7 +281,6 @@ namespace Duplicati.Library.Main.Operation /// <summary>
/// Remove backups according to the --retention-policy option.
- /// Backups that are not within any of the specified time frames will will NOT be deleted.
/// Partial backups are not removed.
/// </summary>
public class RetentionPolicyRemover : FilesetRemover
diff --git a/Duplicati/Library/Snapshots/app.config b/Duplicati/Library/Snapshots/app.config index 92ad670ed..ce73c9a49 100644 --- a/Duplicati/Library/Snapshots/app.config +++ b/Duplicati/Library/Snapshots/app.config @@ -4,6 +4,7 @@ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1"/>
</startup>
<runtime>
+ <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="AlphaVSS.Common" publicKeyToken="959d3993561034e3" culture="neutral"/>
diff --git a/Duplicati/Library/Utility/Uri.cs b/Duplicati/Library/Utility/Uri.cs index 6ba4e75ee..19be6be5b 100644 --- a/Duplicati/Library/Utility/Uri.cs +++ b/Duplicati/Library/Utility/Uri.cs @@ -19,7 +19,6 @@ using System; using System.Collections.Specialized;
using System.Linq;
using System.Text;
-using System.Web;
namespace Duplicati.Library.Utility
{
@@ -446,6 +445,18 @@ namespace Duplicati.Library.Utility /// <param name="query">The query to parse</param>
public static NameValueCollection ParseQueryString(string query)
{
+ return Library.Utility.Uri.ParseQueryString(query, true);
+ }
+
+ /// <summary>
+ /// Parses the query string.
+ /// This is a duplicate of the System.Web.HttpUtility.ParseQueryString that does not work well on Mono
+ /// </summary>
+ /// <returns>The parsed query string</returns>
+ /// <param name="query">The query to parse</param>
+ /// <param name="decodeValues">Whether to the parameter values should be decoded or not.</param>
+ public static NameValueCollection ParseQueryString(string query, bool decodeValues)
+ {
if (query == null)
throw new ArgumentNullException(nameof(query));
if (query.StartsWith("?", StringComparison.Ordinal))
@@ -455,7 +466,15 @@ namespace Duplicati.Library.Utility var result = new NameValueCollection(StringComparer.OrdinalIgnoreCase);
foreach (System.Text.RegularExpressions.Match m in RE_URLPARAM.Matches(query))
- result.Add(UrlDecode(m.Groups["key"].Value), UrlDecode(m.Groups["value"].Success ? m.Groups["value"].Value : ""));
+ {
+ string value = m.Groups["value"].Success ? m.Groups["value"].Value : "";
+ if (decodeValues)
+ {
+ value = UrlDecode(value);
+ }
+
+ result.Add(UrlDecode(m.Groups["key"].Value), value);
+ }
return result;
}
|