Commit Graph
10886 Commits
Author SHA1 Message Date
Carl Johnsen 35bf86799b Added a unit test for restore of a partial file 2025-01-17 12:29:11 +01:00
Carl Johnsen fe7cb13fde Fixed issue with stream not being open in the correct mode during restore 2025-01-17 12:27:05 +01:00
Carl Johnsen 0861bc0a73 Added FileOpenReadWrite function 2025-01-17 12:26:03 +01:00
Carl Johnsen d3f6bd4b2b Added preliminary remote sync tool 2025-01-17 08:57:02 +01:00
Kenneth SkovhedeandGitHub 045c6b9147 Feature/adjust pcloud exception (#5883)
* Fixed pCloud exception type

Changed pCloud exception to `FileMissingException` (was `FileNotFoundException`)

* Fixed a label in tests
v2.1.0.107_canary_2025-01-17
2025-01-16 22:21:16 +01:00
Kenneth Skovhede eac8cf62eb Fixed length issue for wix 2025-01-16 21:24:18 +01:00
marceloduplicatiandGitHub 08f231dd74 Fixes to timeouts on WebDav (#5878)
* Removing timeout from Webdav

The timeout will be controlled externally by the TimeoutObservingStream and or the cancellation token.

Timeout for List set to default of 10 minutes

Since filesystems may take quite sometime to list large number of files, the timeout was set to a high value.

Previous timeout of 30 seconds was triggering in a case reported by user.

Timeout for CreateFolder and DeleteAsync was kept to default of 30 seconds.

Minor formmating/refactoring was done.

* Removing timeout from Webdav

The timeout will be controlled externally by the TimeoutObservingStream and or the cancellation token.

Timeout for List set to default of 10 minutes

Since filesystems may take quite sometime to list large number of files, the timeout was set to a high value.

Previous timeout of 30 seconds was triggering in a case reported by user.

Timeout for CreateFolder and DeleteAsync was kept to default of 30 seconds.

Minor formating/refactoring was done.

* Fixes to Integrated Authentication

This is a fix to the webdav when using integrated authentication, the hint for the underlying issue was found on an old [thread] (https://github.com/dotnet/wcf/issues/2923). By setting up a vm environment with Windows 2022 Server+IIS/Webdav it was possible to reproduce the [issue](https://github.com/duplicati/duplicati/issues/5872) and fix it.

Change to validation script is to avoid the requirement of filling the username when integrated authentication is true.
2025-01-16 16:29:40 +01:00
marceloduplicatiandGitHub 5e477e7e87 Migrate from HttpWebClient to HttpClient with async/await + Refactoring (#5875)
Modernize HTTP client implementation across backend services by:
- Replace legacy HttpWebClient with modern HttpClient
- Implement proper async/await patterns throughout the codebase
- Add cancellation token support for improved request handling
- Refactor related code for better maintainability

This change is part of our broader initiative to modernize the codebase
and improve its resilience through proper asynchronous operations.
2025-01-16 16:29:16 +01:00
Kenneth SkovhedeandGitHub edd69bfd59 Improve cancel robustness 2 (#5882)
* Attempt to avoid comitting transaction without any queries being made

* Guard internal logic
2025-01-16 16:01:54 +01:00
Kenneth SkovhedeandGitHub 58bf21306a Improve S3 logic for permission tests (#5879) 2025-01-16 14:28:20 +01:00
Kenneth SkovhedeandGitHub 32a6588209 Added warning for volume size (#5877)
This adds a warning text if the user selects a very large or very small value for the `dblock-size`.

Currently "large" is over 2GiB and "small" is less than 5MiB
2025-01-16 14:27:40 +01:00
Kenneth SkovhedeandGitHub 52a73c3418 Fixed issue 5845 (#5880)
* Fixed issue 5845

This commit introduces the test that makes the error.

* Fixed query cleaning up duplicates, in the case that where a block has multiple valid source candidates.

* Reduced number of replicas for the test
2025-01-16 14:27:15 +01:00
Kenneth SkovhedeandGitHub a49af70af0 Checking if the UI channel is disposed. (#5874) 2025-01-16 13:26:12 +01:00
Kenneth Skovhede 22840d49d9 Created a more robust identifier generator 2025-01-16 09:56:54 +01:00
Kenneth Skovhede 54dde6e221 Support different namespaces for WiX v4 2025-01-16 09:51:44 +01:00
Kenneth Skovhede 4716738014 Fixed an issue with the fileId 2025-01-16 09:30:57 +01:00
Kenneth Skovhede 76bced0fb7 More wix.exe fixing 2025-01-14 20:00:15 +01:00
Kenneth SkovhedeandGitHub 15856fd46f Fixed 2 compile warnings (#5873) 2025-01-14 19:42:50 +01:00
Kenneth Skovhede fb1d15fb9d Avoid optimize after vacuum 2025-01-14 19:42:03 +01:00
Kenneth SkovhedeandGitHub 6bbd64a655 Fixed nullability warnings in Utility.cs (#5861)
* Fixed nullability warnings in `Utility.cs`

* Fixed a number of nullability issues and warnings

* More nullable fixes

* Fixed the overwrite issue

* Fixed additional nullability issues

* Removed additional nullability issues

* More nullability fixes and added some xmldoc

* Added more xmldocs and removed an unused argument

* Removed more warnings
2025-01-14 14:03:48 +01:00
Kenneth Skovhede deab874499 Better wix.exe support 2025-01-13 22:23:19 +01:00
Kenneth SkovhedeandGitHub 2190653ee8 Version bump to v2.1.0.106-2.1.0.106_canary_2025-01-11 (#5867)
You can download this build from:

Binaries: https://updates.duplicati.com/canary/?version=2.1.0.106

Signature file: https://updates.duplicati.com/canary/duplicati-2.1.0.106_canary_2025-01-11.signatures.zip
2025-01-13 22:19:57 +01:00
marceloduplicatiandGitHub 10b3068d7a Merge pull request #5865 from marceloduplicati/feature/cifs-fixes
CIFS Fixes and improvements
v2.1.0.106_canary_2025-01-11
2025-01-10 16:15:11 -03:00
Marcelo C. cffba06749 Add configurable read and write buffer sizes for SMB operations
Adds support for user-configurable read and write buffer sizes while enforcing protocol-negotiated maximums. When not specified, operations default to using the maximum sizes negotiated during the SMB session setup.
2025-01-10 13:53:51 -03:00
Marcelo C. 3ce67e529a Remove no-reuse-connection Option
Tests revealed that by not using a single connection throttling issues appeared when connecting to Windows shares (possibly due to multiple authentications in a short period of time)
2025-01-10 12:10:03 -03:00
Marcelo C. a1263cd48c Path normalization
Path separators are converted to \ which is Windows & Linux compatible, overwriting the Path.Combine separator (which would be host dependant)
2025-01-10 12:05:40 -03:00
Kenneth SkovhedeandGitHub 9c808e07b3 Correctly formatting size strings as Kikibytes. This fixes #3685 (#5778)
Note: This may cause issues for scripts that parse the string as opposed to using the numeric values.
2025-01-10 09:25:40 +01:00
Kenneth SkovhedeandGitHub d64c7e721f Handle duplicated missing blocks (#5858)
* Implemented test for #5845

* Removed unittests not executing cleanup.

* Cleanup commit

* Fixed the query that causes the constraint violation
2025-01-10 09:24:54 +01:00
Kenneth SkovhedeandGitHub 382ba172b3 Fixed duplicate entries in index files (#5856)
* Added test to verify that compression modules will mask duplicate entries, if present

* Because there are likely many, otherwise valid, dindex zip archives with duplicated blocklists out there, the log message is now verbose.

To make sure we no longer create archives with duplicated entries, the `--unittest-mode` option makes this a warning that is checked in most tests.

* Added guard in `IndexVolumeCreator` to prevent creating zip files with duplicated block lists.

* Added debug check for duplicates

* Fixed the duplicate test
2025-01-10 09:24:31 +01:00
Kenneth SkovhedeandGitHub 4bdab72350 Feature/improve windows build support (#5859)
* Added support for additional executables on Windows.

* Removed `wixl` args from Windows builds
2025-01-09 14:48:15 +01:00
Kenneth SkovhedeandGitHub e9aa8717fc Improve ServerUtil (#5860)
* Improve the ServerUtil

Added `status` command to show server state

* Added support for waiting on a backup after starting it
2025-01-09 14:48:00 +01:00
Marcelo C. f598b478f9 Add 'no-reuse-connection' option for SMB/CIFS operations
The 'no-reuse-connection' option controls whether SMB/CIFS connections are reused:

When enabled, creates a new connection and authentication for each file operation
When not specified, defaults to reusing the same connection across operations
2025-01-08 22:25:34 -03:00
Marcelo C. 3ce642558a CIFS UI Fix on Interface
A typo in the template made the option of Netbios not work correctly, it only worked when selecting under advanced options (where the list was obtained from the Enum)
2025-01-08 21:57:55 -03:00
Kenneth SkovhedeandGitHub fb8f5f4af7 Version bump to v2.1.0.105-2.1.0.105_canary_2025-01-07 (#5852)
* Version bump to v2.1.0.105-2.1.0.105_canary_2025-01-07

You can download this build from:

Binaries: https://updates.duplicati.com/canary/?version=2.1.0.105

Signature file: https://updates.duplicati.com/canary/duplicati-2.1.0.105_canary_2025-01-07.signatures.zip

* Added retry to uploads

* Added support for resuming failed uploads
2025-01-07 17:55:07 +01:00
Kenneth SkovhedeandGitHub 9464caf622 Feature/update license 2025 (#5851)
* Fixed some minor whitespace issues

* Updated all copyright to 2025
v2.1.0.105_canary_2025-01-07
2025-01-07 09:40:39 +01:00
marceloduplicatiandGitHub 5144aaa36a Fix on JS for CIFS template (#5848)
When creating a new backup, if path was not set to any value, it would default to Undefined and end up as part of the URI.
2025-01-07 09:14:04 +01:00
marceloduplicatiandGitHub 50ec4fc745 Merge pull request #5850 from marceloduplicati/feature/cifs-remove-from-ci
CIFS removed from CI
2025-01-06 19:30:56 -03:00
Marcelo C. 1afbe59240 CIFS removed from CI
CIFS was removed from CI as port mapping issues were detected in the TestContainers setup (port bindings on testcontainers are not mapped 1:1 and have to be fetched at runtime). At the same time, CIFS backed does not support specifying a different port other than the standard 139 and 445 determined by transport option, either NetBiosOverTCP or DirectTCPTransport).
2025-01-06 19:29:57 -03:00
marceloduplicatiandGitHub 3f552196de Merge pull request #5849 from marceloduplicati/feature/cifs-add-to-ci
Adding CIFS to CI
2025-01-06 18:12:51 -03:00
Marcelo C. e4d1d77ddf Adding CIFS to CI 2025-01-06 18:09:58 -03:00
Kenneth SkovhedeandGitHub 66daba4b3b Update dmg file (#5844)
* Added resources and script to create DMG template

* Created new empty DMG
2025-01-06 20:59:30 +01:00
Carl-Johannes JohnsenandGitHub 1bd22bfa2e Merge pull request #5842 from carljohnsen/bugfix/restore-overwrite
Bugfix/restore overwrite
2025-01-06 19:39:23 +01:00
Carl Johnsen b9a20037db Empty commit 2025-01-06 18:58:28 +01:00
Carl Johnsen 46b05b94ef Limit file name conflict attempts to 100 and log an error if exceeded 2025-01-06 16:01:53 +01:00
Carl Johnsen 6f263ad874 Added a note about potential memory consumption of restores FileProcessor 2025-01-06 16:00:11 +01:00
Carl Johnsen 284b14b72f Merge branch 'master' into bugfix/restore-overwrite 2025-01-06 14:43:03 +01:00
marceloduplicatiandGitHub 99ee234640 Primary functionality implemented for CIFS (#5780)
* Primary functionality implemented for CIFS

This will add CIFS support to Duplicati.

One of the advantages is that the resource does not need to be mounted as the backend connects and authenticates directly to the resource via TCP/or Netbios over TCP.

The authentication supported is domain/username/password. At present integrated Windows authentication is not supported.

This implementation relies on SMBLibrary library (https://github.com/TalAloni/SMBLibrary).

* Fixes to XML documentation

* Implementing single CIFS connection + Fix on PutAsync

Single CIFS connection to avoid re-authentication on every operation.
Fix to PutAsync which only because apparent after file sizes were larger than _smb2Client.MaxWriteSize

* Adding CI tests for CIFS

The CI test for CIFS is self contained, requiring no environment variables. Also updated README.
2025-01-06 14:22:23 +01:00
Kenneth SkovhedeandGitHub 2a757dea0f Quota check disabled fix (#5843)
The QuotaCheck is done in two places, and only one place was checking if the quota check was supposed to be disabled.
This adds the check in the other place.
2025-01-06 14:21:53 +01:00
Carl-Johannes JohnsenandGitHub 8079aa81aa Merge pull request #5840 from carljohnsen/bugfix/restore-missing-folder
Bugfix/Restore missing folder
2025-01-06 10:41:39 +01:00
Kenneth SkovhedeandGitHub 40e28f170e Added help button to login (#5839)
Added a help button to the connection dialog.
Added a help link to the login dialog.
Added a help link to the signin dialog.
2025-01-06 09:13:17 +01:00