Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/duplicati/duplicati.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai <nospam@kaigrabfelder.de>2020-10-03 15:20:08 +0300
committerKai <nospam@kaigrabfelder.de>2020-10-03 15:20:08 +0300
commit8b1d2cfafa4eaaa4d0c890d1e3c630984e653c89 (patch)
tree1147d6784ebc760f9878cf1b59e00a66e0743e02 /Duplicati/Library
parent8e3a52654b276838819b83d98fb0ed84c79b4fb8 (diff)
parentf6e225d62d06e1eca7f0f817bd09ec48e99bce65 (diff)
Merge branch 'master' of https://github.com/barfoo4711/duplicati into master
Diffstat (limited to 'Duplicati/Library')
-rw-r--r--Duplicati/Library/AutoUpdater/app.config3
-rw-r--r--Duplicati/Library/Backend/S3/S3Backend.cs1
-rw-r--r--Duplicati/Library/Main/Operation/DeleteHandler.cs1
-rw-r--r--Duplicati/Library/Snapshots/app.config1
-rw-r--r--Duplicati/Library/Utility/Uri.cs23
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;
}