nextcloud-desktop.git
8 years agoCMakeLists.txt: Put -pie as a linker flag were it belongs
Olivier Goffart [Fri, 6 Oct 2017 12:34:22 +0000 (14:34 +0200)]
CMakeLists.txt: Put -pie as a linker flag were it belongs

Fixes warning introduced by PR #6040

8 years agoSettings Dialog: Fix display name compilation for macOS #6078
Markus Goetz [Fri, 6 Oct 2017 10:01:10 +0000 (12:01 +0200)]
Settings Dialog: Fix display name compilation for macOS #6078

8 years agoUse display-name from the ocs call in the settings dialog
Thomas Müller [Thu, 5 Oct 2017 19:08:38 +0000 (21:08 +0200)]
Use display-name from the ocs call in the settings dialog

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Fri, 6 Oct 2017 00:18:35 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoRename detection: File size must be equal
Christian Kamm [Thu, 5 Oct 2017 09:39:35 +0000 (11:39 +0200)]
Rename detection: File size must be equal

Comparison of file sizes for potential conflicts was added in
0eb9401c624f20a128b46f8eb1fa5a984f9ef61e, but did not extend to checking
the file size in case of potential local moves.

This commit adds this check and adds tests for various move+change
scenarios.

8 years agot9.pl: Make more reliable
Christian Kamm [Thu, 5 Oct 2017 12:13:10 +0000 (14:13 +0200)]
t9.pl: Make more reliable

Sometimes the 'touch' didn't change the mtime since too little time had
passed!

8 years agoChangeLog: Re-format and re-order
Markus Goetz [Thu, 5 Oct 2017 11:07:42 +0000 (13:07 +0200)]
ChangeLog: Re-format and re-order

8 years agoChangeLog: More 2.4.0 changes
Markus Goetz [Thu, 5 Oct 2017 10:52:50 +0000 (12:52 +0200)]
ChangeLog: More 2.4.0 changes

8 years agoExcludes: Fix bug with escapes in the regex, add tests
Christian Kamm [Thu, 5 Oct 2017 08:37:50 +0000 (10:37 +0200)]
Excludes: Fix bug with escapes in the regex, add tests

8 years agoExcludes: optimize csync_is_windows_reserved_word
Christian Kamm [Thu, 28 Sep 2017 08:54:58 +0000 (10:54 +0200)]
Excludes: optimize csync_is_windows_reserved_word

8 years agoExcludes: During directory traversal, use QRegularExpression
Markus Goetz [Tue, 26 Sep 2017 10:28:12 +0000 (12:28 +0200)]
Excludes: During directory traversal, use QRegularExpression

On Mac, this halves the time spent in csync_excluded_traversal
when using check_csync_excluded_performance. A similar performance
increase is seen on linux.

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Thu, 5 Oct 2017 00:18:35 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agosqlite: Update bundled version to 3.20.1
Markus Goetz [Wed, 4 Oct 2017 15:12:12 +0000 (17:12 +0200)]
sqlite: Update bundled version to 3.20.1

For OS X and Windows.

8 years agouse IS_DIRECTORY ${CMAKE_SOURCE_DIR}/admin
Jürgen Weigert [Mon, 2 Oct 2017 16:36:35 +0000 (18:36 +0200)]
use IS_DIRECTORY ${CMAKE_SOURCE_DIR}/admin

We need to test presence of admin folder using ${CMAKE_SOURCE_DIR}, or it is always false. Bad for ox, (good for everything else)

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Wed, 4 Oct 2017 00:18:35 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Tue, 3 Oct 2017 00:18:33 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Mon, 2 Oct 2017 00:18:33 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Sun, 1 Oct 2017 00:18:33 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Sat, 30 Sep 2017 00:18:32 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoLinux Hardening
rockihack [Wed, 20 Sep 2017 16:26:06 +0000 (18:26 +0200)]
Linux Hardening

see: https://wiki.debian.org/Hardening#User_Space

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Fri, 29 Sep 2017 00:18:33 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoUpdate clean_tarball.sh
Jürgen Weigert [Thu, 28 Sep 2017 19:09:43 +0000 (21:09 +0200)]
Update clean_tarball.sh

warning against removing sqlite. it is used with Linux with cmake switch on CentOS6
USE_OUR_OWN_SQLITE3=TRUE

8 years agoUpdate CMakeLists.txt
Jürgen Weigert [Wed, 27 Sep 2017 16:37:45 +0000 (18:37 +0200)]
Update CMakeLists.txt

Make admin folder optional. It is needed for osx, but it is deleted from Linux builds for the sake of easier license review as discussed in https://github.com/owncloud/client/issues/6005

8 years agosupport old sqlite before 3.7.7
Jürgen Weigert [Wed, 27 Sep 2017 20:35:12 +0000 (22:35 +0200)]
support old sqlite before 3.7.7

quickfix: define the symbol for backwards compat
or FIXME: better solution #ifdef SQLITE_IOERR_SHMMAP where needed...

8 years agofixup! [tx-robot] updated from transifex
Olivier Goffart [Thu, 28 Sep 2017 16:16:10 +0000 (18:16 +0200)]
fixup! [tx-robot] updated from transifex

8 years agoTest OAuth2
Olivier Goffart [Mon, 25 Sep 2017 16:23:39 +0000 (18:23 +0200)]
Test OAuth2

Include a test for PR #6057

8 years agoSyncEngine: _hasNoneFiles should be set when there are INSTRUCTION_UPDATE_METADATA
Olivier Goffart [Wed, 20 Sep 2017 09:03:37 +0000 (11:03 +0200)]
SyncEngine: _hasNoneFiles should be set when there are INSTRUCTION_UPDATE_METADATA

8 years agoOAuth: fix compilation with old gcc
Olivier Goffart [Thu, 28 Sep 2017 08:54:27 +0000 (10:54 +0200)]
OAuth: fix compilation with old gcc

We need to used QPointer::data in the signal slot connection

Relates to pr #6065

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Thu, 28 Sep 2017 00:18:36 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoUpdater: Rudimentary support for beta channel
Markus Goetz [Sat, 23 Sep 2017 11:48:48 +0000 (13:48 +0200)]
Updater: Rudimentary support for beta channel

So we can get people update from our alpha to the beta and rc

8 years agoFix encoding of version string
Olivier Goffart [Wed, 27 Sep 2017 10:03:16 +0000 (12:03 +0200)]
Fix encoding of version string

8 years agocsync_rename: optimize lookup
Olivier Goffart [Mon, 25 Sep 2017 08:33:12 +0000 (10:33 +0200)]
csync_rename: optimize lookup

Avoid many memory allocations in reconcile

8 years agocsync_reconcile: Optimize reconcile by avoiding alocations
Olivier Goffart [Sun, 24 Sep 2017 19:58:41 +0000 (21:58 +0200)]
csync_reconcile: Optimize reconcile by avoiding alocations

Fix performence regression from commit d66c2b5faecc689c52df23d7dbc44c894b92febc
For every new file we would look up every parent directories. Allocating
a new QByteArreay for every parent riectory just to know if it is in the other
tree is wasting lots of CPU.
Use a ByteArrayRef trick, similar to QStringRef

8 years agoSet CMAKE_INSTALL_RPATH as RPATH for installed executables
Dominik Schmidt [Fri, 22 Sep 2017 08:45:40 +0000 (10:45 +0200)]
Set CMAKE_INSTALL_RPATH as RPATH for installed executables

8 years agoPackaging: Add options for fine-grained builds #5957
Christian Kamm [Fri, 22 Sep 2017 08:32:38 +0000 (10:32 +0200)]
Packaging: Add options for fine-grained builds #5957

Extracted and adjusted from packaging.diff by @jnweiger and @dschmidt

8 years agoPackaging: Adjust APPNAME handling #5957
Christian Kamm [Fri, 22 Sep 2017 08:29:17 +0000 (10:29 +0200)]
Packaging: Adjust APPNAME handling #5957

Extracted and adjusted from packaging.diff by @jnweiger and @dschmidt

8 years agoPackaging: Make check for theme.qrc more specific #5957
Christian Kamm [Fri, 22 Sep 2017 08:28:08 +0000 (10:28 +0200)]
Packaging: Make check for theme.qrc more specific #5957

Extracted and adjusted from packaging.diff by @jnweiger and @dschmidt

8 years agoPackaging: Change directory for docs #5957
Christian Kamm [Fri, 22 Sep 2017 08:25:51 +0000 (10:25 +0200)]
Packaging: Change directory for docs #5957

Extracted and adjusted from packaging.diff by @jnweiger and @dschmidt

8 years agoMove the --version output text to Theme #5957
Christian Kamm [Fri, 22 Sep 2017 08:16:26 +0000 (10:16 +0200)]
Move the --version output text to Theme #5957

Extracted and adjusted from packaging.diff by @jnweiger and @dschmidt

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Wed, 27 Sep 2017 00:18:33 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoUse QDateTime::currentDateTimeUtc instead of the non utc version
Olivier Goffart [Mon, 25 Sep 2017 09:49:11 +0000 (11:49 +0200)]
Use QDateTime::currentDateTimeUtc instead of the non utc version

QDateTime::currentDateTime is terribly slow.

8 years agoOAuth: Fix crash when closing the browser while identifying
Olivier Goffart [Mon, 25 Sep 2017 14:44:33 +0000 (16:44 +0200)]
OAuth: Fix crash when closing the browser while identifying

To reproduce, log in and click "authorize" on the browser, then close
the browser before the client has replied, (but after redirected to localhost,
i.e. when the client is asking the server for the token)

The problem is that socket can be destroyed so we don't need to answer on a
destroyed socket.

8 years agoOwnSQL: don't parse the error message when we are done
Olivier Goffart [Mon, 25 Sep 2017 12:19:48 +0000 (14:19 +0200)]
OwnSQL: don't parse the error message when we are done

8 years agoSyncJournalDb: Reimplement the db_is_empty logic from csync
Jocelyn Turcotte [Thu, 14 Sep 2017 14:34:14 +0000 (16:34 +0200)]
SyncJournalDb: Reimplement the db_is_empty logic from csync

This reduces the initial sync local discovery time from
2.0 to 0.6 seconds in LargeSyncBench on my machine.

8 years agoUse SyncJournalDb in csync
Jocelyn Turcotte [Thu, 14 Sep 2017 13:50:13 +0000 (15:50 +0200)]
Use SyncJournalDb in csync

This gets rid of the csync_statedb sqlite layer and use
the same code and same connection as the rest of the SyncEngine.

Missing functions are added to SyncJournalDb and change a few minor
things (like changing SyncJournalFileRecord::_modtime to be an int64
instead of a QDateTime, like it was in csync).

8 years agoSyncJournalDB: Allow callers of getFileRecord if the query failed
Jocelyn Turcotte [Wed, 13 Sep 2017 17:02:38 +0000 (19:02 +0200)]
SyncJournalDB: Allow callers of getFileRecord if the query failed

The current implementation would return the same value whether the query failed
or if no row would be found. This is something that is currently checked by csync
and needs to be provided if we want to use SyncJournalDB there.

Adjusted all call sites to also check the return value even though they
could still just rely on rec.isValid(), but makes it more explicit as to what
happens for database errors in those cases, if we ever want to gracefully handle
them.

8 years agoSyncJournalDB: Bind phash as a qlonglong instead of a QString
Jocelyn Turcotte [Wed, 6 Sep 2017 09:55:37 +0000 (11:55 +0200)]
SyncJournalDB: Bind phash as a qlonglong instead of a QString

This is what csync does and we don't need to pass it as a string
to let sqlite convert it back to a uint64 later.

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Tue, 26 Sep 2017 00:18:33 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agobandwidthmanager: Fix unregistering devices on delete
Olivier Goffart [Mon, 25 Sep 2017 09:55:18 +0000 (11:55 +0200)]
bandwidthmanager: Fix unregistering devices on delete

from the destroyed signal, qobject_cast won't work because the object
is already destroyed. One must use reinterpret_cast then

8 years agoPropagateUpload: Fix another non-normalized connect that appears while profiling
Olivier Goffart [Mon, 25 Sep 2017 09:58:30 +0000 (11:58 +0200)]
PropagateUpload: Fix another non-normalized connect that appears while profiling

8 years agobenchlargesync: Do several syncs
Olivier Goffart [Mon, 25 Sep 2017 10:48:33 +0000 (12:48 +0200)]
benchlargesync: Do several syncs

Make sure there is already a small sync before so the database is queried.
Make also a sync after to run an update with many files in the database.

8 years agoc_utf8_from_locale: optimize the UTF8 case on Linux
Olivier Goffart [Sat, 23 Sep 2017 12:09:19 +0000 (14:09 +0200)]
c_utf8_from_locale: optimize the UTF8 case on Linux

Avoid converting to a QString as an intermediate step

8 years agocsync: use a unordered_map for the FileMap
Olivier Goffart [Sat, 23 Sep 2017 11:49:30 +0000 (13:49 +0200)]
csync: use a unordered_map for the FileMap

Saves more than 10% of csync_update on LargeSyncBench

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Mon, 25 Sep 2017 00:18:29 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agochsck_vio: fix readdir test by removing it.
Olivier Goffart [Sun, 24 Sep 2017 18:06:08 +0000 (20:06 +0200)]
chsck_vio: fix readdir test by removing it.

The code that was creating the files in the directory was removed in
commit 6906b8d30c846bf0e03f1252b71e169e50786efa. The directory is empty
so the result is expected to be null. It was passing before because the
code was returning an entry for . and ..,  but since commit
35f80bd4390bb3ab92ccd8fa740d96c18ce16e93 this is no longer the case

8 years agocsync_update: fix assert
Olivier Goffart [Sat, 23 Sep 2017 12:01:07 +0000 (14:01 +0200)]
csync_update: fix assert

Amend 1dc44c0f62bb3f6e50156cd08c1a2a82d67c0d0d

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Sun, 24 Sep 2017 00:18:33 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agomacOS: Fix compile
Markus Goetz [Sat, 23 Sep 2017 11:42:39 +0000 (13:42 +0200)]
macOS: Fix compile

8 years agoHttpcreds: Fix double slash in the Request App Password url
Olivier Goffart [Fri, 22 Sep 2017 16:59:48 +0000 (18:59 +0200)]
Httpcreds: Fix double slash in the Request App Password url

Issue #6044

8 years agoOAuth2: Fix double slash in URL
Olivier Goffart [Fri, 22 Sep 2017 16:05:47 +0000 (18:05 +0200)]
OAuth2: Fix double slash in URL

We need to use concatPath to avoid possible double '/' in the URLs if the
account url() ends with '/'.

This has become even more of a problem since commit
d1b8370a4ad21c741da507f64a5dbfe82a3fad05 which was resolving the url after
a redirect where most server actually add a '/' if the url is a folder

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Sat, 23 Sep 2017 00:18:30 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agocsync_vio_local: merge readdir and stat in the same call
Olivier Goffart [Fri, 22 Sep 2017 07:51:22 +0000 (09:51 +0200)]
csync_vio_local: merge readdir and stat in the same call

For the remote this was already done long time ago
For windows, this was already partially done

The goal is to avoid needless conversion of the path to local encoding.

8 years agocsync_update/reconcile: replace CSYNC_LOG with qDebug/qInfo
Olivier Goffart [Thu, 21 Sep 2017 13:45:56 +0000 (15:45 +0200)]
csync_update/reconcile: replace CSYNC_LOG with qDebug/qInfo

CSYNC_LOG has quite an overhead as it uses vsprintf and it might
be run even if the category is disabled

8 years agoSyncEngine: Adjust free space messaging
Christian Kamm [Fri, 22 Sep 2017 09:06:29 +0000 (11:06 +0200)]
SyncEngine: Adjust free space messaging

Before, the way the info message was phrased implied a failure. And
since the large numbers can be hard to compare that can be confusing.

8 years agocsync: remove unused type
Olivier Goffart [Fri, 22 Sep 2017 07:32:29 +0000 (09:32 +0200)]
csync: remove unused type

8 years agoRemotePermissions: Store in a class rather than in a QByteArray to save memory
Olivier Goffart [Tue, 19 Sep 2017 08:53:51 +0000 (10:53 +0200)]
RemotePermissions: Store in a class rather than in a QByteArray to save memory

Create a specific type that parses the permissions so we can store
it in a short rather than in a QByteArray

Note: in RemotePermissions::toString, we make sure the string is not
empty by adding a space, this was already existing before commit
e8f7adc7cacd4f55e26b2dd14464654e82204307 where it was removed by mistake.

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Fri, 22 Sep 2017 00:18:30 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoPort to new signal-slot syntax what cannot be done automatically
Olivier Goffart [Wed, 20 Sep 2017 09:48:13 +0000 (11:48 +0200)]
Port to new signal-slot syntax what cannot be done automatically

Some slot were protected or private but needed to be public.
Some needed a static_cast (can't use qOverload because it is in Qt 5.7)

This is not only a partial change.

8 years agoDiscoveryPhase: use the new syntax in disconnect
Olivier Goffart [Wed, 20 Sep 2017 16:45:00 +0000 (18:45 +0200)]
DiscoveryPhase: use the new syntax in disconnect

Since we used the new syntax in connect, we need to use it in disconnect

8 years agoUse the Qt5 connection syntax (automated with clazy)
Olivier Goffart [Wed, 20 Sep 2017 08:14:48 +0000 (10:14 +0200)]
Use the Qt5 connection syntax (automated with clazy)

This is motivated by the fact that QMetaObject::noralizeSignature takes 7.35%
CPU of the LargeSyncBench. (Mostly from ABstractNetworkJob::setupConnections and
PropagateUploadFileV1::startNextChunk). It could be fixed by using normalized
signature in the connection statement, but i tought it was a good oportunity
to modernize the code.

This commit only contains calls that were automatically converted with clazy.

8 years agotest/stub: add some call required by the next patches
Olivier Goffart [Wed, 20 Sep 2017 14:50:34 +0000 (16:50 +0200)]
test/stub: add some call required by the next patches

As we use the new connection syntax in folderman.cpp, some more symbol
need to be mocked

8 years agoInclude <QAuthenticator> from code that connect to signal that uses it
Olivier Goffart [Wed, 20 Sep 2017 15:14:33 +0000 (17:14 +0200)]
Include <QAuthenticator> from code that connect to signal that uses it

The new connection syntax will need that

8 years agoGui: Use lambda instead of QSignalMapper
Olivier Goffart [Wed, 20 Sep 2017 14:49:41 +0000 (16:49 +0200)]
Gui: Use lambda instead of QSignalMapper

It's simpler, and QSignalMapper is deprecated in Qt 5.10

8 years agoRemove settingsdialog.cpp.Rbt431
Olivier Goffart [Wed, 20 Sep 2017 15:18:37 +0000 (17:18 +0200)]
Remove settingsdialog.cpp.Rbt431

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Thu, 21 Sep 2017 00:18:30 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoChangeLog: More 2.4.0 changes
Markus Goetz [Wed, 20 Sep 2017 12:44:33 +0000 (14:44 +0200)]
ChangeLog: More 2.4.0 changes

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Wed, 20 Sep 2017 00:18:35 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoFix compile with bad strrchr signature
Christian Kamm [Tue, 19 Sep 2017 10:44:59 +0000 (12:44 +0200)]
Fix compile with bad strrchr signature

8 years agoConflicts: Upload them files if env variable says so
Christian Kamm [Mon, 18 Sep 2017 08:23:20 +0000 (10:23 +0200)]
Conflicts: Upload them files if env variable says so

Set OWNCLOUD_UPLOAD_CONFLICT_FILES=1 to trigger this behavior.

Note that this is experimental and unsupported. The real feature is
likely to end up in 2.5.

Uploading conflict files is simply done by removing the pattern from
csync_exclude. The rest here deals with making the conflict notification
ui approximately work.

There are still some concerns about where an uploaded conflict file
appears in the sync protocol and issues list (it should be in both, but
is only in one of them currently!).

See #4557.

8 years agoPrivate links: Retrieve link through propfind property #6020
Christian Kamm [Fri, 15 Sep 2017 12:24:34 +0000 (14:24 +0200)]
Private links: Retrieve link through propfind property #6020

* The sharing ui does a propfind anyway: use that to query the new
property as well!
* For the socket api, asynchronously query the server for the right url
when an action that needs it is triggered.

The old, manually generated URL will be used as fallback in case the
server doesn't support the new property or the property can't be
retrieved for some reason.

Depends on owncloud/core#29021

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Tue, 19 Sep 2017 00:18:38 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoFix the build (make install)
Jocelyn Turcotte [Mon, 18 Sep 2017 13:30:35 +0000 (15:30 +0200)]
Fix the build (make install)

8 years agoGui: Allow to add multiple sync folder connection of the same folder
Olivier Goffart [Thu, 14 Sep 2017 13:09:21 +0000 (15:09 +0200)]
Gui: Allow to add multiple sync folder connection of the same folder

... or child folders

There is also no real reason to forbid the user from syncing the same
folder to multiple location on its hardrive.
A real use case is when the user uncheck a big directory using "choose
what to sync", but would still like to sync a folder within this disabled
tree. The user can now do this with the "add folder" feature

Since 2.3, we even support syncing the same local folder to multiple
remote folder, so why not allow syncing the same remote folder several
times?

Relates to issue #3645

8 years agoSyncJournalDB: Only reset_and_clear_bindings once
Jocelyn Turcotte [Wed, 6 Sep 2017 09:36:45 +0000 (11:36 +0200)]
SyncJournalDB: Only reset_and_clear_bindings once

We only need to do it once between each query execution and
that can be right before the first bind.

8 years agocsync_update: Remove the check for csync_get_statedb_exists
Jocelyn Turcotte [Thu, 14 Sep 2017 11:30:57 +0000 (13:30 +0200)]
csync_update: Remove the check for csync_get_statedb_exists

This always returns true since _csync_statedb_is_empty also always
returns true. This function was initially intended to be a shortcut
in case the database doesn't contain any row, but has been broken since
27fb5d9128c3d326191d5f9f01dac4f715000682 and now won't return false
unless the statement fails.

The _last_db_return_error in _csync_detect_update would take care
of that code path in a more direct and clearer way anyway.

8 years agoMove SyncJournalDB to src/common
Jocelyn Turcotte [Fri, 1 Sep 2017 16:11:43 +0000 (18:11 +0200)]
Move SyncJournalDB to src/common

8 years agoReverse the dependency between SyncJournalFileRecord and SyncFileItem
Jocelyn Turcotte [Wed, 30 Aug 2017 09:17:23 +0000 (11:17 +0200)]
Reverse the dependency between SyncJournalFileRecord and SyncFileItem

This will allow us to also use the SyncJournalDB in csync.

8 years agoMove non-csync-dependent parts of FileSystem to src/common
Jocelyn Turcotte [Wed, 30 Aug 2017 17:34:41 +0000 (19:34 +0200)]
Move non-csync-dependent parts of FileSystem to src/common

This keep the csync-dependent parts in src/libsync, slitting the namespace
over two files.
This will allow moving SyncJournalDB to src/common as well.

8 years agoUpdate sync-algorithm.md
Jocelyn Turcotte [Fri, 15 Sep 2017 10:35:40 +0000 (12:35 +0200)]
Update sync-algorithm.md

The rbtree was replaced by a std::map.

8 years agoChecksums: Clearer behavior and added testing
Christian Kamm [Fri, 15 Sep 2017 11:30:29 +0000 (13:30 +0200)]
Checksums: Clearer behavior and added testing

8 years agoRemove SyncFileItem::_isDirectory
Jocelyn Turcotte [Thu, 24 Aug 2017 15:31:46 +0000 (17:31 +0200)]
Remove SyncFileItem::_isDirectory

It's always equivalent to _type == SyncFileItem::Directory.

8 years agoRemove SyncFileItem::log
Jocelyn Turcotte [Thu, 24 Aug 2017 15:07:22 +0000 (17:07 +0200)]
Remove SyncFileItem::log

This remove the remaining "other" fields of the sync log to save a
bit of memory.

other_etag and other_fileId don't give much information to the users
and other_instruction will always be INST_NONE anyway.

other_modtime and other_size are kept since they are sometimes used.
They were renamed to have a bit more meaningful name.

SyncEngine::checkPermissions will now fetch its information from the
csync trees since they are now preserved until right after this point.

Fixes #3213

8 years agoRemove SyncEngine::_remotePerms
Jocelyn Turcotte [Thu, 24 Aug 2017 14:48:40 +0000 (16:48 +0200)]
Remove SyncEngine::_remotePerms

Now that csync is using a more convenient data structure for
its file trees, wait a little bit longer before destroying them and
fetch the remote permissions from the remote tree there instead.

8 years agoRemove the usage of phash in csync
Jocelyn Turcotte [Wed, 23 Aug 2017 17:30:55 +0000 (19:30 +0200)]
Remove the usage of phash in csync

Only store the path since they represent the same thing, and do the
phash conversion during DB lookup like done in libsync.
We could get rid of everything since we also have an index on the path
column, but since it's the primary key this makes the migration non-trivial.

8 years agoReplace the custom rbtree by a std::map
Jocelyn Turcotte [Wed, 23 Aug 2017 17:16:12 +0000 (19:16 +0200)]
Replace the custom rbtree by a std::map

8 years agocsync: Keep the csync_file_stat_t instances created during discovery
Jocelyn Turcotte [Thu, 17 Aug 2017 17:06:58 +0000 (19:06 +0200)]
csync: Keep the csync_file_stat_t instances created during discovery

Now that they use the same structure, avoid _csync_detect_update
having to recreate another instance and transfer everything manually.
Any instance created during discovery should now be used all the way
up to SyncEngine::treewalkFile.

This also makes sure that the path and types are properly set in that
object instead of having to pass everything as separate parameters.

This gets rid of csync_ftw_flags_e which was now converted from,
and to csync_ftw_type_e, already in the csync_file_stat_t.

Issue #1817

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Mon, 18 Sep 2017 00:18:30 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Sun, 17 Sep 2017 00:18:29 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years ago[tx-robot] updated from transifex
Jenkins for ownCloud [Sat, 16 Sep 2017 00:18:35 +0000 (02:18 +0200)]
[tx-robot] updated from transifex

8 years agoAbstractNetworkJob: Allow relative redirect
Christian Kamm [Fri, 15 Sep 2017 07:24:56 +0000 (09:24 +0200)]
AbstractNetworkJob: Allow relative redirect

Previously all redirects were considered absolute.