When creating a new backup, a value of DateTime.MinValue can be provided
to the NormalizeDateTimeToEpochSeconds method. If DateTimeOffset is
used, it will convert the provided DateTime to the UTC equivalent, which
may result in a value outside of the allowable bounds.
This reverts the changes from pull request #3919.
This fixes issue #3955.
This was introduced as part of revision b8199ad1c4 ("Fixed handling of
multi-byte characters in both HttpServer and Duplicati") to resolve
issues #1063 and #1085. However, the regex pattern was invalid. This
reverts the pattern to the previous value, which seems more appropriate
since most non-standard encodings are of the form %uxxxx where xxxx is a
4 byte hex string representing a UTF-16 code.
This fixes issue #3737.
- no code changes except those noted below
- projects upgrade to 4.6.2
- wixinstaller project upgraded automatically by VisualStudio
- wixinstaller updated to require 4.6.2
- Library.Encryption changed to Standard2.0 so accommodate update to SharpAesCrypt
Prior to revision 0190a9994e ("Rewrote the throttling implementation to
be more effecient"), the DelayIfRequired method would increment the
offset variable to advance through the buffer. When we modified the
implementation in revision 0190a9994e, we may have forgotten to modify
the offset accordingly.
Adjust buffer offset by amount read so far in the internal Read loop,
so newly read data goes after old data instead of going on top of it.
This fixes issue #3787 read buffer corruptions when throttle is used.
Previously, the FilterExpression.Expand method would forward the filter
group name to the FilterEntry constructor, which would combine the
group's patterns into one large regex filter. This would result in a
significant decrease in performance, as the regex filters are much
slower than the wildcard filters.
Instead, we can first expand the filter group into its constituent
patterns before presenting them to the FilterEntry constructor. This
preserves their wildcard nature and allows us to take advantage of
faster filtering matching algorithms.
This addresses issue #3395.
The mono profiler indicated that a large percentage of the time was
spent allocating the inputPosStack and patternPosStack arrays. By
replacing these with Stacks, we can avoid this unnecessary overhead.