Commit Graph
680 Commits
Author SHA1 Message Date
Tyler Gill 7f1b6bc7a2 Fix some bugs in ReadLimitLengthStream changes, and add a unit test for some of the new behavior.
Also make NonSeekableStream block seeks via the Position setter.
2021-03-18 12:24:11 -06:00
Kenneth Skovhede c416221c17 Changed the help output to not show deprecated options.
Commandline help for azure now shows a little cleaner
2021-03-06 14:50:48 +01:00
Kenneth Hsu 69b9585421 Remove Telegram backend.
The TLSharp library has some issues and the behavior of the Telegram
backend is not reliable.

Some alternative libraries for communicating with the Telegram API are
TgSharp, TDLib and TdSharp.

This fixes #4424.

Revert "Merge pull request #4324 from martikyan/feature/telegram_backend"

This reverts commit c7f9f8f556, reversing
changes made to 85139f86f2.
2021-02-21 11:37:58 -08:00
Thomas Suckow 5e8db0cead Fix execute bit 2021-01-16 16:19:46 -08:00
Thomas Suckow e80abca658 Try to get publishing to work despite depending on exes like dlls 2021-01-03 22:27:03 -08:00
Thomas Suckow 360d819c0d Threads are not longer abortable 2021-01-03 08:54:09 -08:00
Thomas Suckow acea2fe10f upstream
Update Telegram SharpAESCrypt dep
Update SystemIOWindows to split the difference

# Conflicts:
#	BuildTools/AutoUpdateBuilder/AutoUpdateBuilder.csproj
#	BuildTools/AutoUpdateBuilder/packages.config
#	BuildTools/DependencyFinder/DependencyFinder.csproj
#	BuildTools/DependencyFinder/packages.config
#	BuildTools/GnupgSigningTool/GnupgSigningTool.csproj
#	BuildTools/UpdateVersionStamp/UpdateVersionStamp.csproj
#	BuildTools/UpdateVersionStamp/app.config
#	Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj
#	Duplicati/CommandLine/BackendTester/app.config
#	Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj
#	Duplicati/CommandLine/BackendTool/app.config
#	Duplicati/CommandLine/ConfigurationImporter/Duplicati.CommandLine.ConfigurationImporter.csproj
#	Duplicati/CommandLine/Duplicati.CommandLine.csproj
#	Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj
#	Duplicati/CommandLine/RecoveryTool/packages.config
#	Duplicati/CommandLine/app.config
#	Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj
#	Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config
#	Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config
#	Duplicati/Library/AutoUpdater/Duplicati.Library.AutoUpdater.csproj
#	Duplicati/Library/AutoUpdater/app.config
#	Duplicati/Library/AutoUpdater/packages.config
#	Duplicati/Library/Backend/AlternativeFTP/Duplicati.Library.Backend.AlternativeFTP.csproj
#	Duplicati/Library/Backend/AlternativeFTP/app.config
#	Duplicati/Library/Backend/AlternativeFTP/packages.config
#	Duplicati/Library/Backend/AzureBlob/Duplicati.Library.Backend.AzureBlob.csproj
#	Duplicati/Library/Backend/AzureBlob/packages.config
#	Duplicati/Library/Backend/Backblaze/Duplicati.Library.Backend.Backblaze.csproj
#	Duplicati/Library/Backend/Backblaze/packages.config
#	Duplicati/Library/Backend/Box/Duplicati.Library.Backend.Box.csproj
#	Duplicati/Library/Backend/Box/packages.config
#	Duplicati/Library/Backend/CloudFiles/Duplicati.Library.Backend.CloudFiles.csproj
#	Duplicati/Library/Backend/CloudFiles/app.config
#	Duplicati/Library/Backend/Dropbox/Duplicati.Library.Backend.Dropbox.csproj
#	Duplicati/Library/Backend/Dropbox/packages.config
#	Duplicati/Library/Backend/FTP/Duplicati.Library.Backend.FTP.csproj
#	Duplicati/Library/Backend/FTP/app.config
#	Duplicati/Library/Backend/File/Duplicati.Library.Backend.File.csproj
#	Duplicati/Library/Backend/File/app.config
#	Duplicati/Library/Backend/GoogleServices/Duplicati.Library.Backend.GoogleServices.csproj
#	Duplicati/Library/Backend/GoogleServices/packages.config
#	Duplicati/Library/Backend/HubiC/Duplicati.Library.Backend.HubiC.csproj
#	Duplicati/Library/Backend/Jottacloud/Duplicati.Library.Backend.Jottacloud.csproj
#	Duplicati/Library/Backend/Mega/Duplicati.Library.Backend.Mega.csproj
#	Duplicati/Library/Backend/Mega/packages.config
#	Duplicati/Library/Backend/OAuthHelper/Duplicati.Library.OAuthHelper.csproj
#	Duplicati/Library/Backend/OAuthHelper/packages.config
#	Duplicati/Library/Backend/OneDrive/Duplicati.Library.Backend.OneDrive.csproj
#	Duplicati/Library/Backend/OneDrive/packages.config
#	Duplicati/Library/Backend/OpenStack/Duplicati.Library.Backend.OpenStack.csproj
#	Duplicati/Library/Backend/OpenStack/packages.config
#	Duplicati/Library/Backend/Rclone/Duplicati.Library.Backend.Rclone.csproj
#	Duplicati/Library/Backend/Rclone/packages.config
#	Duplicati/Library/Backend/S3/Duplicati.Library.Backend.S3.csproj
#	Duplicati/Library/Backend/S3/app.config
#	Duplicati/Library/Backend/S3/packages.config
#	Duplicati/Library/Backend/SSHv2/Duplicati.Library.Backend.SSHv2.csproj
#	Duplicati/Library/Backend/SSHv2/packages.config
#	Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj
#	Duplicati/Library/Backend/SharePoint/app.config
#	Duplicati/Library/Backend/Sia/Duplicati.Library.Backend.Sia.csproj
#	Duplicati/Library/Backend/Sia/packages.config
#	Duplicati/Library/Backend/TahoeLAFS/Duplicati.Library.Backend.TahoeLAFS.csproj
#	Duplicati/Library/Backend/TahoeLAFS/packages.config
#	Duplicati/Library/Backend/Tardigrade/Duplicati.Library.Backend.Tardigrade.csproj
#	Duplicati/Library/Backend/Tardigrade/packages.config
#	Duplicati/Library/Backend/WEBDAV/Duplicati.Library.Backend.WEBDAV.csproj
#	Duplicati/Library/Backend/WEBDAV/app.config
#	Duplicati/Library/Common/Duplicati.Library.Common.csproj
#	Duplicati/Library/Common/IO/SystemIOWindows.cs
#	Duplicati/Library/Common/app.config
#	Duplicati/Library/Common/packages.config
#	Duplicati/Library/Compression/Duplicati.Library.Compression.csproj
#	Duplicati/Library/Compression/app.config
#	Duplicati/Library/Compression/packages.config
#	Duplicati/Library/DynamicLoader/Duplicati.Library.DynamicLoader.csproj
#	Duplicati/Library/DynamicLoader/app.config
#	Duplicati/Library/Encryption/Duplicati.Library.Encryption.csproj
#	Duplicati/Library/Encryption/packages.config
#	Duplicati/Library/Interface/Duplicati.Library.Interface.csproj
#	Duplicati/Library/Localization/Duplicati.Library.Localization.csproj
#	Duplicati/Library/Localization/packages.config
#	Duplicati/Library/Logging/Duplicati.Library.Logging.csproj
#	Duplicati/Library/Logging/app.config
#	Duplicati/Library/Main/Duplicati.Library.Main.csproj
#	Duplicati/Library/Main/app.config
#	Duplicati/Library/Main/packages.config
#	Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj
#	Duplicati/Library/Modules/Builtin/packages.config
#	Duplicati/Library/SQLiteHelper/Duplicati.Library.SQLiteHelper.csproj
#	Duplicati/Library/Snapshots/Duplicati.Library.Snapshots.csproj
#	Duplicati/Library/Snapshots/app.config
#	Duplicati/Library/Snapshots/packages.config
#	Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj
#	Duplicati/Library/UsageReporter/packages.config
#	Duplicati/Library/Utility/Duplicati.Library.Utility.csproj
#	Duplicati/Library/Utility/app.config
#	Duplicati/Library/Utility/packages.config
#	Duplicati/License/Duplicati.License.csproj
#	Duplicati/Server/Duplicati.Server.Serialization/Duplicati.Server.Serialization.csproj
#	Duplicati/Server/Duplicati.Server.Serialization/packages.config
#	Duplicati/Server/Duplicati.Server.csproj
#	Duplicati/Server/app.config
#	Duplicati/Server/packages.config
#	Duplicati/Service/Duplicati.Service.csproj
#	Duplicati/Service/app.config
#	Duplicati/Tools/Duplicati.Tools.csproj
#	Duplicati/UnitTest/Duplicati.UnitTest.csproj
#	Duplicati/UnitTest/RestoreHandlerTests.cs
#	Duplicati/UnitTest/app.config
#	Duplicati/UnitTest/packages.config
#	Duplicati/WindowsService/App.config
#	Duplicati/WindowsService/WindowsService.csproj
#	Tools/SQLiteTool/App.config
#	Tools/SQLiteTool/SQLiteTool.csproj
#	thirdparty/TlsTest/TlsTest.csproj
#	thirdparty/UnixSupport/UnixSupport.csproj
#	thirdparty/mozroots/mozroots.csproj
2020-12-29 09:59:42 -08:00
warwickmmandGitHub c7f9f8f556 Merge pull request #4324 from martikyan/feature/telegram_backend
Add support for Telegram channels as a backend destination.
2020-11-08 17:59:37 -08:00
Karen Martikyan 73fbb047e7 Added Telegram Backend skeleton 2020-09-20 22:57:03 +04:00
Dean Ferreyra edb2819d6f Disable "legacy path handling" for executables
This is a defensive measure in case legacy path handling has been
enabled at the system level.  Duplicati requires that legacy path
handling be _disabled_ to function properly.

Issue #4295 appears to be a result of legacy path handling being
enabled globally.
2020-09-18 19:58:18 -07:00
Dean Ferreyra 78555241c1 Address review comments from @warwickmm 2020-09-07 14:45:08 -07:00
Dean Ferreyra 536ce69668 Address review comments from @warwickmm 2020-09-06 21:30:46 -07:00
Dean Ferreyra 5c2fb96f5f Support globbing for "@" filters in "find" and "restore"
Change some comments.
2020-09-04 09:54:33 -07:00
Dean Ferreyra 3a66668e6a Support globbing for "@" filters in "find" and "restore"
Remove unneeded calls to `ToList()`.
2020-09-04 07:25:31 -07:00
Dean Ferreyra f6e79da78d Support globbing for "@" filters in "find" and "restore"
For `@` filters, support normal behavior of "find" and "restore" where
they automatically prefix or suffix some file name arguments with `*`.
2020-09-04 02:01:37 -07:00
Dean Ferreyra b8501dfd77 Add additional handling for @ filters
Change "find" and "restore" commands to not prefix `@` file filters
with `*` and to not suffix `@` folder filters with `*` since wildcards
cannot be used with `@` filters.
2020-09-01 23:56:00 -07:00
Kenneth SkovhedeandGitHub ec1975b5a7 Merge pull request #4269 from warwickmm/target_net_471
Target .NET Framework 4.7.1
2020-08-07 10:50:35 +02:00
Dean Ferreyra 73e31a79a1 Change tests to work with long paths in Windows
Even in .NET 4.6.2
`System.IO.Compression.ZipFile.ExtractToDirectory()` cannot handle
long paths.  Replace call to
`System.IO.Compression.ZipFile.ExtractToDirectory()` with an
equivalent that extracts files to a temporary location and uses I/O
functions that support long paths to move them to their final
location.

In CommandLineOperationsTests.cs, use ISystemIO functions to handle
potentially long paths.

Add a fix to RecoveryTool for long paths that was missed by #4258.

This fixes #3863.
2020-07-28 05:51:53 -07:00
Kenneth Hsu e964072690 Target .NET Framework 4.7.1.
This updates all projects to target .NET Framework 4.7.1.  The
TencentCOS and Tardigrade backends depend on .NET Standard 2.0.  When a
.NET Framework prior to 4.7.1 is targeted, the system cannot be sure
that all the dependencies exist, so it copies all dependent assemblies
to the output directory.  This causes many assemblies from the System
namespace to become bundled in the release.

https://stackoverflow.com/a/48875007

We had previously attempted to make individual projects target 4.7.1
(see pull request #4242), but this can cause compatibility issues when
4.6.2 projects depend on 4.7.1. projects.

This will require Mono 5.10.0 or greater (previously, we required 5.0.0
or greater).

https://www.mono-project.com/docs/about-mono/releases/5.10.0/#class-libraries

This fixes issue #4234.
2020-07-26 19:46:01 -07:00
warwickmmandGitHub e7daffcb31 Merge pull request #4256 from dferreyra/support_problematic_windows_paths
Support problematic Windows paths that end with spaces or periods.
2020-07-25 17:48:50 -07:00
Dean Ferreyra f53876d0a4 Fix Recovery Tool handling of paths with dashes
In Duplicati.CommandLine.RecoveryTool, the `index` and `list` commands
do not recognize Duplicati backup files when those files are in paths
containing dashes.

For example, without this change, if you call
```
Duplicati.CommandLine.RecoveryTool index C:\Temp\duplicati-tests\recovery-tool\backup-files
```
the Duplicati backup files are displayed, but the recovery tool
reports "Not a Duplicati file, ignoring" for each of them.
2020-07-19 18:01:52 -07:00
Dean Ferreyra fd186712b4 Support problematic Windows paths
Change "Duplicati.CommandLine.RecoveryTool restore" to support
restoring long paths, and files and directories that end in a dot or a
space when run on Windows.
2020-07-19 06:43:30 -07:00
wood 07815740fd add dependency 2020-06-30 10:39:52 +08:00
Max b008aed1f3 migrate to net5 + runnable 2020-06-03 00:00:38 +02:00
Max 3f2eb254c3 buildable again 2020-05-31 14:38:14 +02:00
Max c882953fdd upstream 2020-05-31 13:50:13 +02:00
Kenneth Hsu 3db08121ae Fix project references to Tardigrade backend. 2020-05-30 12:10:07 -07:00
Kenneth Skovhede 3313f46b80 Include Tardigrade reference in all projects that include backends, as this makes it easier to use when debugging 2020-05-28 09:53:24 +02:00
TopperDEL ba82edf7f8 fix: Correct Package-References 2020-05-19 16:11:58 +02:00
TopperDEL 6cda666b10 Merge branch 'master' of https://github.com/duplicati/duplicati into Tardigrade 2020-05-15 12:59:48 +02:00
Kenneth Skovhede e667602351 Added project dependencies to the commandline tester to make it run again. 2020-05-10 14:16:01 +02:00
TopperDEL 547d883aab Add additional references, small corrections 2020-05-01 21:37:27 +02:00
Kenneth Hsu 87c1fa5a04 Fix compiler warning about unused variable. 2020-03-29 19:17:37 -07:00
Tyler Gill e742205f65 Add --use-http-client=false parameter to backends based on Microsoft Graph APIs (OneDrive v2, SharePoint v2, etc.) to make them use the OAuthHelper and HttpWebRequest infra used by most / all other backends for HTTP requests. This lives in parallel to the original implementation that uses the OAuthHttpClient class, but is intended to see if this prevents the memory leaks and problems seen in some versions of Mono when using the OneDrive v2 backend. 2020-03-23 14:10:40 -06:00
Kenneth Hsu 3551238000 Remove redundant calls to String.Format. 2020-01-25 17:07:02 -08:00
Kenneth Hsu a734a365a3 Minor code cleanup. 2020-01-23 20:41:17 -08:00
Kenneth Hsu dce5943864 Create index in memory by default but allow option to use files.
Performance is greatly improved if we can create the index in memory.
We preserve the ability to create the index using files for recovery in
low resource environments.
2020-01-23 20:41:17 -08:00
Kenneth Hsu 3c778025f4 Salvage file-based index for recovery in low memory situations.
We will plan to default to the in-memory index, but allow one to use the
file-based index if the memory requirements are too high.
2020-01-23 20:31:43 -08:00
thomas.friedelandKenneth Hsu 8848ad4a74 use SortedDict to sort index in memory 2020-01-23 20:07:29 -08:00
Kenneth Hsu 25d7cea6c7 Dispose of HashLookupHelper after use.
The HashLookupHelper contains an open FileStream that needs to be
closed.
2020-01-18 14:44:05 -08:00
Kenneth Hsu bfbae6fcaf Add test for restoring files using RecoveryTool. 2020-01-18 09:36:03 -08:00
Max 7e2218663e Add Compat Analyzers 2019-12-25 19:08:52 +01:00
Max 28793ef204 packages update 2019-12-25 18:21:24 +01:00
Max 41a5591532 upstream 2019-12-25 16:34:56 +01:00
Kenneth Hsu 53a35e6e06 Remove support for Amazon Cloud Drive.
Amazon discontinued access to the Cloud Drive API.

See https://forum.duplicati.com/t/amazon-cloud-drive-discontinued/7391.
2019-12-01 10:36:36 -08:00
Kenneth Hsu afab61a05b Use pattern matching to simplify casts. 2019-10-19 10:15:38 -07:00
Kenneth SkovhedeandGitHub 0e75611b34 Merge pull request #3931 from warwickmm/fix_parameter_file_alias
Fix parameter file alias
2019-10-19 14:09:11 +02:00
drwtsn32x fa82263865 read tempdir command line option 2019-10-05 06:20:57 -07:00
Kenneth Hsu df2904b781 Fix parameter file alias.
The code that parsed the parameter file aliases was improved in pull
request #3229.  In doing so, we accidentally omitted one of the
previously accepted aliases.
2019-09-29 19:17:38 -07:00
BlueBlock 1c28cf0b15 refactor AutoUpdater to an exe and a library 2019-09-06 16:57:44 -04:00