Commit Graph
707 Commits
Author SHA1 Message Date
Kenneth Skovhede 072f89c747 Remove WorkerThread class
This removes the WorkerThread class and many of the complications around it.

Instead of having a generic worker, there is now the `QueueRunnerService` which takes on all the resposibilities for handling queued tasks.

This is one step towards removing `FIXMEGlobal`
2025-05-03 15:01:09 +02:00
Kenneth SkovhedeandGitHub a15c3262be Merge branch 'master' into fix-regexp-combine 2025-04-30 16:14:17 +02:00
Kenneth SkovhedeandGitHub af9465d8e3 Merge pull request #6187 from duplicati/feature/fix-throttle-speeds
Fixed throttle support
2025-04-25 15:36:44 +02:00
Kenneth SkovhedeandGitHub 2837a105ee Merge pull request #6186 from duplicati/feature/add-sqlite-cache-value
Added option to set the SQLite page cache
2025-04-25 14:45:43 +02:00
Kenneth Skovhede a906787c74 Bumped streamutil package 2025-04-25 13:55:15 +02:00
Kenneth Skovhede 0d5bd3027e Fixed reporting all available tiers 2025-04-24 21:45:06 +02:00
Kenneth Skovhede f393c00030 Fixed throttle support
This moves the throttle support to the StreamUtil throttled stream, which allows multiple streams to share a throttle value, such that the throttle setting is applied to the entire communication from Duplicati, and not for each connection.

This also cleans up a bit in the progress reporting, where the backend manager now keeps track of the "active" transfer and only emits progress on that. Once it finishes, a new transfer is promoted a "active".
2025-04-22 22:54:48 +02:00
Kenneth Skovhede 0a7a1cd689 Added option to set the SQLite page cache
This adds an extra option to allow setting the SQLite page cache size as a regular option.

Prior to this commit it was only possible to set the SQLite page cache size via environment variables.

The option to use environment variables is preserved, and as options from the environment variable are applied after the new setting, environment variables take precedence.

The default value for the new option is to use 1% of the system memory for the page cache. For the restore process, a connection per worker may be made which defaults to half the number of cores, so the maximum amount of memory is 1% * half the CPU cores.

This is just the upper limit, and SQLite may choose not to use all of it.

This fixes #6178
2025-04-22 14:26:46 +02:00
Kenneth Skovhede 8aee23c278 Updated Minio to 6.0.4 2025-04-15 00:00:55 +02:00
Kenneth Skovhede f0f68dfebf Fix locale-sensitive time parsing
On some locales, odd strings would parse as valid full dates, causing relative dates to be incorrectly calculated.

This commit fixes the issues and revisits the DST aware calculations with more tests.
2025-04-08 23:38:36 +02:00
Kenneth Skovhede f91c814a45 Introduce DateTime option type.
This commit adds the `DateTime` option to support validation of the `--time` parameter, which can both be an absolute date and time, or a relative value.

This fixes #6107
2025-04-01 14:17:37 +02:00
Carl Johnsen dd888c2761 Pushed incorrect fix 2025-03-26 13:49:05 +01:00
Carl Johnsen 3e38139953 DateTime can sometimes be a local kind, which doesn't match with TimeSpan.Zero, which is in UTC, and DateTimeOffset requires that they match. 2025-03-26 13:45:50 +01:00
Kenneth Skovhede c57401934d Merge commit '99ad60571ec7ad3b6e613ff7cf7f9829310f9a8e' into feature/allow-trayicon-disconnected 2025-03-25 14:02:27 +01:00
Kenneth SkovhedeandGitHub 5eb1f9edd3 Merge pull request #6077 from duplicati/feature/fix-decoding-windows-paths
Fixed URL parser not treating `file://C:\path` the same as `C:\Path`.
2025-03-25 12:35:56 +01:00
Kenneth Skovhede e056e651f9 Fixed issues with cross-talk options from TrayIcon and Server 2025-03-25 11:36:44 +01:00
Kenneth Skovhede 1a38df7709 Cleaned up some callbacks to not use events with async methods.
Implemented argument validation for the TrayIcon and server startup.
2025-03-25 11:14:03 +01:00
Kenneth SkovhedeandGitHub fcaeea4245 Merge branch 'master' into feature/fix-decoding-windows-paths 2025-03-25 08:55:06 +01:00
Kenneth SkovhedeandGitHub 11f68523b3 Merge branch 'master' into feature/fix-time-parser 2025-03-25 08:52:18 +01:00
Kenneth Skovhede 41d01b8486 Cleaned up the DST aware DateTime parser to be more readable 2025-03-24 21:32:07 +01:00
Kenneth Skovhede fe887d5cf9 Made the datetime parser a bit more readable 2025-03-24 21:28:32 +01:00
Kenneth Skovhede 392901d77a Fixed validator warning on negative timespans
This changes the parse to use custom logic for parsing the timespan, instead of trying to base it on the datetime parser code.

This fixes #954
2025-03-24 21:27:11 +01:00
Kenneth Skovhede c5d5bb356d Also expand paths with file:// prefix 2025-03-24 20:56:32 +01:00
Kenneth Skovhede 53ee9526ca Fixed some nullability warnings 2025-03-24 17:10:15 +01:00
Kenneth Skovhede a685c6c4e5 Fixed URL parser not treating file://C:\path the same as C:\Path.
This fixes #6071
2025-03-24 11:35:04 +01:00
Kenneth Skovhede 631c80d6a8 Cleaned up some option names 2025-03-24 10:17:26 +01:00
Kenneth Skovhede 9d617fe08a Updated TahoeLAFS 2025-03-24 09:15:49 +01:00
Kenneth Skovhede fc927b881f Updated rclone backend 2025-03-22 08:08:54 +01:00
Kenneth Skovhede 9cecee04b9 Updated pCloud 2025-03-21 17:01:37 +01:00
Kenneth Skovhede edb4747181 Merge commit 'ae59ed294f6511ca014386d30c48eaabd27aca5b' into feature/improve-auth-parsing-helper 2025-03-21 10:06:10 +01:00
Kenneth Skovhede 769158c3f0 Upgraded CloudFiles 2025-03-21 10:05:33 +01:00
Kenneth Skovhede 41d2b22015 Adde option names to helper 2025-03-21 09:13:48 +01:00
Kenneth Skovhede a163f53dba Handle stop exceptions
This adds a common way to catch stop exceptions and handles them so error resilient logic does not continue when a stop exception is thrown.

Previously, the logic would only check for `ThreadAbortException` which was used to signal a stop prior to .NET8.
2025-03-20 22:32:04 +01:00
Kenneth Skovhede be8de849fb Mapping timeouts to correct exceptions 2025-03-20 12:02:09 +01:00
Kenneth Skovhede 0247f13ebf Updated box.com 2025-03-20 11:17:35 +01:00
Kenneth Skovhede d1659b7d40 Fixed FTP credentials not being parsed 2025-03-20 10:15:27 +01:00
Kenneth Skovhede 7405bab68f Simplified working with the options helpers 2025-03-19 23:16:37 +01:00
Kenneth Skovhede 6cad935656 Common parsing for auth options 2025-03-19 22:40:09 +01:00
Kenneth Skovhede 8f38c82f1e Changed order of function arguments for improved readability 2025-03-19 15:48:01 +01:00
Kenneth Skovhede 6c7843b332 Unified options
This PR adds a unified way of supplying timeouts to each of the backends.

It also adds an opt-in way of adding commonly used options, so parsing and usage can be standardized across multiple backends.
2025-03-19 15:27:02 +01:00
Kenneth Skovhede e37f20aedd Added retries for HTTP messages
This adds a retry count and a retry delay for posting backup reports via HTTP requests. This will make the report delivery more reliable if the network is unstable or server is briefly unreachable.
2025-03-16 16:52:30 +01:00
marceloduplicatiandGitHub 35da99c64c Merge pull request #6041 from marceloduplicati/feature/scan-root-certificates
Re-work of SSL Validation + Root Certificate feature
2025-03-14 17:44:41 -03:00
Marcelo C. 12f53513d0 Re-work of SSL Validation + Root Certificate feature
Initially the idea was to allow scanning not only the certificate but scan the whole certificate chain for a explicitly supplied hash to be accepted unconditionally.

A review of the validation revealed it was always missing a fallback to the certificate.verify()

Also decided that even when a hash is supplied and matched, the validity date supersedes other criteria except the acceptAll.
2025-03-14 12:09:01 -03:00
Kenneth Skovhede bb1aa8e1f7 Cosmetic cleanup
Removed superfluous namespaces.
Using `var` most places.
Using extension methods for common setup of commands.
2025-03-14 14:34:56 +01:00
Kenneth Skovhede f342d70819 Implemented forced invariant locale on all SQL strings.
This fixes #6023
2025-03-13 23:06:32 +01:00
marceloduplicatiandGitHub 4268eda62d Merge pull request #6030 from marceloduplicati/feature/use-ipv4-v6-auto
Integrating the IPv6 & IPv4 detection
2025-03-12 12:19:04 -03:00
Kenneth SkovhedeandGitHub eac394f0a3 Merge pull request #6011 from duplicati/feature/improved-failure-resilience
Improved failure resilience
2025-03-12 14:48:14 +01:00
Marcelo C. b035c69e4d Integrating the IPv6 & IPv4 detection
It should be noted that I was unable to completely remove IPv4 on Windows 11 to a state where it would not provide the 127.0.0.1 loopback, even when disabling Ipv4 in various ways, including with registry flags.

On ubuntu/linux, after completely disabling ipv4 the ipv6 loopback was returned.
2025-03-11 16:24:15 -03:00
Kenneth Skovhede be16323f24 General cleanup, common database validation exception 2025-03-10 14:38:45 +01:00
Carl Johnsen f77fcc186c Merge remote-tracking branch 'upstream/master' into bugfix/restore-deadlock 2025-03-10 05:50:26 +01:00