Using strong-named assemblies can cause difficulties with the GNU LGPL
license, which allows for one to recombine or relink their application
with modified versions of the code. While one solution is to share the
private key so that people can sign the assemblies themselves, this
would break the trust that is expected from signed assemblies. For now,
the easiest fix is to simply not sign the assemblies. Note that by
doing so, we prevent the code from being referenced from other signed
assemblies.
This also fixes an issue introduced in revision ba94d36a80 ("Added
auto-update for WindowsService and Service."), where the WindowsService
project (signed) referenced the AutoUpdater project (not signed).
We also removed instances of <SignAssembly>false</SignAssembly> to be
consistent with newly created .csproj files that do not contain the
SignAssembly element.
This was motivated by the discussion in issue #2814.
By changing to IEnumerable, it is possible to iterate only a portion of the list, which is useful when not all entries are needed (e.g., when testing a connection).
All existing backends have been updated, and any which were able to be changed to yield return results in a straightforward way now do.
Many backends had a try/catch in the List() method. Due to the fact that yield returns can't be placed within a try/catch block, these have been refactored to either scope the try/catch to the parts that (should) be the only places throwing exceptions, so that exceptions are still caught and handled.
Note that lazy evaluation may cause some changes in behavior - exceptions that were previously thrown at the point of invokation of List() may now be thrown while it is being enumerated.
I believe this will not be problematic though, as the only well-known exception seems to be FolderMissingException, which should be thrown by Test(), but TestList() attempts to enumerate the list to force this exception.
Any places that require the legacy behavior can get it by simply converting the lazy enumerable to a List()
It also makes quota enabled backends return an instance of this interface instead of the quota components separately.
This way, getting quota stats requires only a single remote request on backends like Google Drive and OneDrive.
It is now permitted to specify the target or source path, without the file:// prefix, but ONLY if there is also a "backup" or "restore" argument, otherwise it is not possible to infer what to do.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1538 59da171f-624f-0410-aa54-27559c288bec
Status: fixed
Problem was that the backend also supports urls like: file://user:pass@\\server\path.
Now the username and password is only accepted if it does not contain slash or backslash.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1197 59da171f-624f-0410-aa54-27559c288bec
This flag allows the backends to provide better testing and warning messages.
Update issue #407
Status: Fixed
The backends now check for existing files in the target directory,
and specially looks for any "duplicati-*" files.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@922 59da171f-624f-0410-aa54-27559c288bec