Commit Graph
100 Commits
Author SHA1 Message Date
Olivier Goffart 458f336405 PropagateDownload: Read the mtime from the file system after writing it
Because file system like FAT only have two second accuracy and would result
in a upload if the mtime in the database is not the same as the one that was
downloaded

Issue #3103
2015-04-15 15:50:20 +02:00
Olivier Goffart 9d88ef5432 Restore submodule 2015-04-13 13:03:46 +02:00
Olivier Goffart c917251e9e Reconcile: Fix clang warning
csync_reconcile.c:159:26: warning: address of array 'tmp->path' will always evaluate to 'true' [-Wpointer-bool-conversion]
                if( tmp->path ) {
                ~~  ~~~~~^~~~

csync_file_stat_s::path is an array so it is never null
What was meant here is to check if the string was not empty
2015-04-09 15:06:48 +02:00
Olivier Goffart e15b9b5358 Merge remote-tracking branch into 1.8 2015-04-07 10:42:27 +02:00
Olivier Goffart 1617c9d482 PropfindJob: fix xml parsing
It would only find the first property
2015-04-07 10:35:27 +02:00
Olivier Goffart 50ba73860c Merge remote-tracking branch into 1.8 2015-04-07 08:02:55 +02:00
Olivier Goffart f4e2c84111 AccountState: Fix uninitialized memory access spotted by valgrind
QuotaInfo's constructor uses the AccountState's _state which is
initialized after
2015-04-06 16:21:05 +02:00
Olivier Goffart 71d9f23068 theme: fix compilation of libsync without QtGui 2015-04-03 11:27:06 +02:00
Olivier Goffart dafc2d2b73 Sync engine: Check the blacklist for the right tree
When the operation is download, we have a INSTRUCTION_NONE for the local
tree, but we should not check the blacklist just yet.
2015-03-24 12:23:04 +01:00
Olivier Goffart 9c05150c12 SSLButton: Fix a crash
Made with danimo.
Attempt to fix a crash seen on breakpad reports.
(cc06b990-0c10-40eb-bcec-4d3902150320)
2015-03-23 18:30:53 +01:00
Olivier Goffart 4df455f2e0 Add-folder Wizard: Select the newly created folder 2015-03-23 16:50:37 +01:00
Olivier Goffart 653a00d63d Add-folder wizard: Make sure there is a scrollbar if folder names are too long
Fixes #2962
2015-03-23 16:32:41 +01:00
Olivier Goffart e81d1ab9b8 application: --confdir option with invalid direcotry now exit
Show an error and exit if an invalid directory (eg, a file) is passed to --confdir

Fixes: #2453
2015-03-23 15:02:27 +01:00
Olivier Goffart 4a01644625 Disable parallel uploads for server versions <= 8.0.2
Issue #2938
2015-03-11 11:31:51 +01:00
Olivier Goffart 46d5d22f72 PropagateUpload: also read the OC-ErrorString header from the poll job 2015-03-04 12:01:41 +01:00
Olivier Goffart 97c221d860 PropagateUpload: add a few comments 2015-03-04 12:00:55 +01:00
Olivier Goffart 4d85f1daec setup wizard: use a PROPFIND instead of a GET on the webdav url
In order to initiate the conneciton, we should not send a GET on the
webdav URL because that is not a valid webdav command on a collection.

Issue #2911
2015-03-03 16:03:53 +01:00
Olivier Goffart ccbeb86140 Fix build of the legacy propagator 2015-03-03 10:05:38 +01:00
Olivier Goffart b43e0f5ebd Do not ask for the password when the check server job times up
QNetworkReply::OperationCanceledError may be both because of anthentication
error (because the HTTPCredentials abort the reply) or because of a timeout
(the timer abort the reply). We should only ask for the password if the
reply was canceled because the password was wrong.
2015-03-03 09:21:24 +01:00
Olivier Goffart bd6769a3fd LsColJob: one must now specify the properties
So the discovery phase don't ask for the quota, and the selective sync
don't ask for all the other properties

Issue #2906
2015-03-02 11:03:25 +01:00
Olivier Goffart d8b6e00fe7 Propagator: Let network propagator job understand a new header OC-ErrorString
This allows the server to send a readable error string in many cases
2015-02-26 15:53:09 +01:00
Olivier Goffart 276dd50650 Update GetGitRevisionDescription.cmake
From https://github.com/rpavlik/cmake-modules
2015-02-20 10:11:30 +01:00
Olivier Goffart 5e1aa7d383 SyncEngine: Fix move would re-upload the file
Because SyncJournalDb::postSyncCleanup was deleting the entries in the database
2015-02-19 15:00:37 +01:00
Olivier Goffart e1871eb325 libsync: Fix qWarning in SyncEngine::slotJobCompleted saying we cannot find the sync item when moving
We need to compare against the original file name, that's why it's there
2015-02-19 13:13:45 +01:00
Olivier Goffart 66fc8e9e27 Merge branch 'master' into 1.8 2015-02-19 11:32:16 +01:00
Olivier Goffart 1998b602b9 SyncEngine: better merge of the renames node
The same file is on the two sync trees under different names in case of a rename
We must therefore use the rename target as the key in the _syncItemMap to ensure
that the trees are correctly merged.

Also use the same UTF-8 decoding for the target than for the actual file in order
to catch invalid utf-8 in the rename target
2015-02-18 12:41:06 +01:00
Olivier Goffart 193fca4a8b SyncFileItem::operator<: must return false when two items are equal
Fixes #2852
2015-02-18 12:41:06 +01:00
Olivier Goffart fb77cd5f7e SyncEngine: Fix detection of the server reconfiguration
Some files might be kept (like the default files)
The files should be considered as NONE only if they are NONE on both trees

issue #2847
2015-02-17 16:44:13 +01:00
Olivier Goffart 9351c7485f Try another way to fix the build 2015-02-17 14:04:16 +01:00
Olivier Goffart d43b82dc82 Fix compilation with clang
The compilation error was

 account.h:140:113: error: expected ')'
 const QList< QPair<QString, QString> > &queryItems = QList< QPair<QString, QString> >());
                                                                                   ^
followed by more errors.

The problem is because the compiler has hard time disambiguiating the comma

int foo(const QPair<int, int> &p = QPair<int, int>());
                                            ^
It is indeed quite hard for the compiler to know if this comma is a separation
between complate arguments or the separation between arguments of the functions.

Use the C++11 construct instead which does not need commas
2015-02-17 11:09:45 +01:00
Olivier Goffart ce195bd599 SyncEngine: add an getter to the journal 2015-02-17 11:08:16 +01:00
Olivier Goffart c0c8a22fa3 SyncEngine: pass a non-const reference to the SyncFileItemVector in aboutToPropagate
That way, users of the library  can change the contents of the sync item vector.
2015-02-17 11:08:16 +01:00
Olivier Goffart 151228b2a6 Fix build when compiling libsync without QtGui
Utility must stay QtGui-free, move the hidpiFileName to the theme which
is the only part in libsync which uses it, and already has #ifdefs
2015-02-16 10:24:42 +01:00
Olivier Goffart d6bdbf9f34 Logger: use qFormatLogMessage with Qt 5.4 so it respects the Qt logging preferences 2015-02-14 14:23:01 +01:00
Olivier Goffart 04bb67ef45 Fix Qt4 build
The automatic registration of metatype only came with qt5
2015-02-13 21:41:09 +01:00
Olivier Goffart a7c97388a9 Fix Qt4 build for another error 2015-02-12 20:16:02 +01:00
Olivier Goffart 86c480ee09 Fix Qt4 build 2015-02-12 20:10:31 +01:00
Olivier Goffart 0184a00151 PropagateDirectory: make the code a bit more readable
Do not call slotSubJobFinished when there is are no sub jobs because
no sub jobs were finished.  Instead just call a finalize method
2015-02-12 20:00:04 +01:00
Olivier Goffart b9161aa06c libsync: Fix a case in which canceling the sync would result in some folder never being sync'ed
The problem occurs because of the sorting of items when we have things like

bigfolder
bigfolder/bigsubfolder
bigfolder-2

Then, because dashes come before slash in ascii, the bigfolder-2 would come before its content
and the propagator would thinkg bigfolder is empty and save the etag before it is processed

Should fix issue #2832
2015-02-12 20:00:04 +01:00
Olivier Goffart 063271e978 propagateupload: Disable parallel chunk upload for owncloud < 8
Issue #2743
2015-02-12 14:50:42 +01:00
Olivier Goffart 438c4fe72e Account: put the server version in the account 2015-02-12 14:50:42 +01:00
Olivier Goffart 4f202e5f4c Fix TokenCredentials compilation 2015-02-11 18:10:01 +01:00
Olivier Goffart 51337a10af LSCOL job: Fix getting the list of folders when there are non-ascii
Task #2795
2015-02-08 12:23:47 +01:00
Olivier Goffart eedb5d0dae Revert "cmake: Clearly Define qtmain.lib link policy on Windows"
It make jenkins fail with the error:

CMake Error at CMakeLists.txt:3 (cmake_policy):
  Policy "CMP0020" is not known to this version of CMake.

This reverts commit 6d380c8548.
2015-02-06 17:46:57 +01:00
Olivier Goffart 6e8527e66d Wizard: Show the remote folder name when the theme has one
Relates to issue #2788
2015-02-06 14:50:52 +01:00
Olivier Goffart 70c8803a79 SelectiveSync: show a message in case of error or if there is no subfolder
Usefull when the folder does not exist (for example in case the theme
has a defaultServerFolder that does not yet exist, #2788)

But also to avoid confusion (issue #2663)
2015-02-06 12:27:54 +01:00
Olivier Goffart 0d2fb0754c Wizard: Fix the advanced setup page when the theme has a defaultServerFolder
Especially the selective sync dialog

Task #2788
2015-02-06 12:27:54 +01:00
Olivier Goffart 2a88f5083c t6.pl: Add a test that re-upload a chunked file with lot of chunks 2015-02-06 10:23:20 +01:00
Olivier Goffart 5ec793e045 propagateupload: Save the mtime given by the server in the reply to GET
There could be a race condition if the file was updated on the server
between the discovery and the propagate phase. By taking the mtime from
the server, we make sure that we do not have a race.

This is tested by t6.pl with BIG3.file because the script was modifying
the file between the two phases
2015-02-06 10:23:20 +01:00
Olivier Goffart 3169a6f170 SelectiveSync: change the wording of the dialog on the wizard
Have different wording depending on the wizardSelectiveSyncDefaultNothing theme option

Relates to #2580
2015-02-05 16:22:04 +01:00
Olivier Goffart 856df4c5f6 libsync: Get the capabilities and store it in the account 2015-02-05 15:42:56 +01:00
Olivier Goffart 34237f604e JsonApiJob: Refactor out of the shibbolethuserjob 2015-02-05 15:42:01 +01:00
Olivier Goffart 21345b81f1 wizard: fix the EntityExistJob URL
We need to add the davPath in there.
Otherwise there will be a redirect which will break shiboleth
(We want to only enter the password once)

Issue #2739 and #2780
2015-02-05 12:53:04 +01:00
Olivier Goffart 3dd8ce08b8 Parallel chunk upload: Fix a off-by-one while saving the done chunk in the DB
We should assume that the chunk currently uploading is NOT done (hence the -1)

il task 405
2015-02-04 18:52:26 +01:00
Olivier Goffart 11f1229c31 Fix Qt4 build 2015-02-04 18:04:50 +01:00
Olivier Goffart ca56e5d9ca SyncEngine: Fix crash
We must check if 'it' is not == to begin() before doing it-1
Also i believe the logic was reversed if it was begin()

Task #2765
2015-02-04 14:52:41 +01:00
Olivier Goffart 68ec24797b Add some define.
Since Qt5.4, on release build, qDebug do not provide anymore the line
number unless we define QT_MESSAGELOGCONTEXT

Also define QT_USE_QSTRINGBUILDER while i'm on it (free optimisation)
2015-02-04 13:43:02 +01:00
Olivier Goffart 26132fd14e owncloudconnectionmethoddialog: typo 2015-02-04 13:42:49 +01:00
Olivier Goffart ca68ccd76a Fix Qt4 build 2015-02-03 20:04:04 +01:00
Olivier Goffart 1f9d7c41e8 owncloudconnectionmethoddialog: Change order of buttons, fix wording, and add the URL 2015-02-03 17:55:01 +01:00
Olivier Goffart 52d330d8e5 csync: add neon include directories 2015-02-03 16:00:55 +01:00
Olivier Goffart db6214e090 SyncEngine: Do not assert when the neon session is 0
It can now be 0 if neon is not in used

Issue #2755
2015-01-30 01:05:46 +01:00
Olivier Goffart 22d3a4a48f csync_owncloud: don't deref null pointer 2015-01-28 14:16:33 +01:00
Olivier Goffart d70e146c1f Merge remote-tracking branch 'origin/ssl_client_cert'
Conflicts:
	CMakeLists.txt
	csync/src/CMakeLists.txt
	csync/src/csync_owncloud.c
2015-01-28 14:13:40 +01:00
Olivier Goffart b0dbb49ca8 Shib: fix broken signal/slot connections 2015-01-26 16:23:43 +01:00
Olivier Goffart 3169833cd7 gui: Still give a decent experience if there is no system tray
Helps for tasks #1138, #2023, #2123
2015-01-26 13:00:45 +01:00
Olivier Goffart fb79211514 Merge remote-tracking branch 'remotes/origin/win_context_menu' 2015-01-23 18:02:55 +01:00
Olivier Goffart 502e7081cf Make it compile with neon 2015-01-23 17:59:07 +01:00
Olivier Goffart dcba129a98 Make it compile without neon 2015-01-23 17:56:46 +01:00
Olivier Goffart b856266e91 Remove neon link flag when not required 2015-01-23 17:35:17 +01:00
Olivier Goffart fe51ada1e8 Don't require NEON with Qt 5.4 2015-01-23 17:11:34 +01:00
Olivier Goffart a999884adf osx integration: adapt to socket api changes 2015-01-23 16:13:16 +01:00
Olivier Goffart 807277c0ae Socket API: Do not broadcast the shared menu entry on all socket when one connects to the socket API
Now we reply to the command SHARE_MENU_TITLE
2015-01-23 16:09:38 +01:00
Olivier Goffart 0af97156c9 Windows shell integration: Make the share entry work by adding a Sleep
Timeouts don't work with named pipe, so wait for 50ms to let time
for the client to answer
2015-01-23 15:43:03 +01:00
Olivier Goffart 560759ede8 Windows shell integration: Reduce the timeout time of WaitNamedPipe
This is maybe what causes the troubles of task #2576
2015-01-22 16:30:02 +01:00
Olivier Goffart 0f98a90858 Wizard: Add an option in the theme to default to nothing selected in the selective sync
Issue #2580
2015-01-22 15:57:55 +01:00
Olivier Goffart 3c26bfa618 Propagate Remote mkdir: save the fileid to the database early
It's important so that if we delete or rename  a diectory that is being
uploaded, this is properly detected
2015-01-22 15:11:04 +01:00
Olivier Goffart 168c89aba7 Wizard: fix spacing 2015-01-22 15:11:03 +01:00
Olivier Goffart 5860e5a46b Exclude *.tmp (as requested in #2424 ) 2015-01-22 14:08:31 +01:00
Olivier Goffart f2a7e0b28f Selective sync dialog: give a proper size by default 2015-01-21 15:37:00 +01:00
Olivier Goffart 0e86ceff73 Connection Validator: let the user cancel the password dialog
And don't ask for the password again if this happens
2015-01-21 15:33:51 +01:00
Olivier Goffart c91de092e5 Setup wizard: Fix the http fallback logic
Also don't allow to go back from the advanced settings page because
this break everything
2015-01-21 15:33:51 +01:00
Olivier Goffart d8b621d05f LsColJob: fix getting the sizes when the path contains %-encoded chars 2015-01-21 12:04:54 +01:00
Olivier Goffart 5c2298fa37 Discovery phase: fix a few warnings 2015-01-20 18:50:03 +01:00
Olivier Goffart 08043bed21 csync_update: Leave a margin of 1sec when comparing the time for the timezone changes
Because FAT has a bad resolution, when the timezone is changed, there may be
one second of difference.

Issue #2438
2015-01-20 18:34:24 +01:00
Olivier Goffart 22ad34fa0e Merge branch '1.7'
Conflicts:
	admin/win/nsi/l10n/French.nsh
	src/mirall/propagator_qnam.cpp
2015-01-15 17:58:43 +01:00
Olivier Goffart ce0e7e4a5d Propagator download: Do not assume the server do not support ranges if we cannot parse the Content-Range header
There are several reason why start==0
* The Content-Range header was not present
* We can't parse it
* Or it is actually 0

If we can't parse it, we cannot assume anything and must error out.
So only in the first case we should discard the temporary file and continue.

Issue #2708
2015-01-15 17:56:49 +01:00
Olivier Goffart 907b79d3b8 Utility: Use appropriate unit when converting from bytes to human readable units
We must not use the SI units if we use power of 2

I believe that we should use SI units and power of 10
But since the server still use power of 2, we need to show the same numbers

But at least we use the proper standard IEC unit that are explicit
2015-01-15 14:06:17 +01:00
Olivier Goffart 863731fd6a Revert "Utility: Use SI units"
This reverts commit 7445fa7ef7.
and commit f654c53c35.

The server still use wrong powers, so we still need to use the same
2015-01-15 13:56:51 +01:00
Olivier Goffart c9f1b3229b Add Folder Wizard: fix wording
(Relates #2663)
2015-01-15 13:55:48 +01:00
Olivier Goffart 2b8b204cfc SelectiveSyncDialog::estimatedSize: return qint64 because -1 in case of error 2015-01-15 13:07:16 +01:00
Olivier Goffart 264471af43 csync: cleanup some unused error code 2015-01-15 12:19:06 +01:00
Olivier Goffart e31514f769 csync propfind: Rename the directDownload property
The owncloud server has a different name because if it was named the same
it would break the 1.7 client

Issue #2614
2015-01-15 11:52:55 +01:00
Olivier Goffart 08d3ae9f02 csync_statedb: Have more granular error reporting when the loaddb fails
In order to distiguish error from sqlite_open or from the integrity check

Issue #2673
2015-01-15 11:36:24 +01:00
Olivier Goffart f654c53c35 fixing testOctetsToString 2015-01-15 09:58:40 +01:00
Olivier Goffart ac0e8b1fe1 Qt 4 fix 2015-01-14 16:30:10 +01:00
Olivier Goffart da0f7317b4 Wizard: Show the size of the folders that will be downloaded
Part of #2580
2015-01-14 16:11:07 +01:00
Olivier Goffart 0ae9055ea6 Propagator upload: Fix UploadDevice::seek 2015-01-14 15:08:09 +01:00
Olivier Goffart 885aafcea3 SelectiveSync dialog: Show the sizes of the folder 2015-01-14 15:08:09 +01:00
Olivier Goffart 7445fa7ef7 Utility: Use SI units 2015-01-14 15:08:09 +01:00