1
0
Fork 0
Commit Graph

221 Commits

Author SHA1 Message Date
Markus Goetz 0d5f2b5d31 Propagator: Reset upload blacklist if a chunk suceeds
For #3934
2015-10-16 10:06:45 +02:00
Phil Davis f0e17fd9c0 libtypos comment and message typos for master 2015-10-05 09:05:09 +05:45
Christian Kamm 3cbd63a77a Propagation: Try another sync on 423 Locked #3387
(cherry picked from commit 24c41ed0da)
2015-10-02 14:49:38 +02:00
Christian Kamm 3812fd0866 Checksums: Prepare 'supported checksums' capability #3735
It currently always returns the empty list and thus has no effect.
2015-10-01 15:00:33 +02:00
Christian Kamm 24c41ed0da Propagation: Try another sync on 423 Locked #3387 2015-10-01 13:05:07 +02:00
Christian Kamm 5bd631e8e7 Rename jobCompleted -> itemCompleted.
Because that's what's going on. A job can 'complete an item' or 'finish'.
Note that several jobs could complete the same item: a new directory
will complete on the PropagateRemoteMkdir and the PropagateDirectory
jobs.
2015-08-11 15:19:09 +02:00
Christian Kamm fe42c1a818 Activity: Skip PropagateDirectory jobs #3580
Previously, PropagateDirectory jobs didn't emit the completed() signal.
Now that they do, we need to make sure to not add extra lines to the
protocol widget for them.

To accomplish that, the jobCompleted() signal now also contains the job
that completed the item.
2015-08-11 15:19:09 +02:00
Markus Goetz fd5330b469 Propagator: Log chunk transferid 2015-07-30 17:47:06 +02:00
Markus Goetz f01b7bb5db Propagator: More debug output for downloads/uploads 2015-07-30 14:40:24 +02:00
Olivier Goffart e135d4cccf Merge remote-tracking branch 'origin/1.8' 2015-06-10 13:42:02 +02:00
Christian Kamm 2ed329e025 Improve reporting of server error messages. #3220
In particular the 'unsupported client version' error message
is now visible to the user when trying to connect to a
server that no longer supports the current client version.
2015-06-04 10:07:24 +02:00
Christian Kamm 4c10f1e40c Wizard: Show server error message if possible. #3220 2015-06-03 16:33:09 +02:00
Olivier Goffart 54a42e401b More compilation fixes after the merge 2015-05-26 12:33:19 +02:00
Olivier Goffart 6b27d2e703 Merge remote-tracking branch 'origin/1.8' 2015-05-26 12:28:31 +02:00
Olivier Goffart 3754e6c781 Disable the curruption workaround on mac and windows
The binaries we ship have a patched Qt
2015-05-22 14:19:44 +02:00
Olivier Goffart 6b9e123816 Merge remote-tracking branch 'origin/checksum_1.8' into 1.8 2015-05-22 10:32:37 +02:00
Olivier Goffart 9a02a0f3a8 Recall feature: Fix some style issues 2015-05-21 16:06:52 +02:00
Jakub Moscicki 4e79093f84 recall file prototype 2015-05-21 16:06:52 +02:00
Klaas Freitag 8f277e46d6 TransmissionChecksumming: Remove SyncFileItem dependency. 2015-05-21 15:51:48 +02:00
Klaas Freitag dec3bd4a02 Some more minor cleanups based on the pull request review. 2015-05-20 22:44:12 +02:00
Klaas Freitag 5b5a636cc1 Make TransmissionChecksumValidator child of the job for auto delete.
That way no explicit memory management is needed as the allocation
is freed when the job (parent) is deleted automatically.
2015-05-20 16:54:04 +02:00
Klaas Freitag 17fe4c3b29 PropagateUpload: Fix typo in warn message. 2015-05-20 12:30:00 +02:00
Klaas Freitag c7f759fedf Propagator: Use the TransmissionChecksumValidator class. 2015-05-19 17:09:40 +02:00
Klaas Freitag f016d25b4c Propagate downloads: Handle checksum transmission header.
Read a checksum from the HTTP header, and if its there, compare the
downloaded tmp file against it. In case of corruption, schedule a
redownload.
2015-05-19 17:09:40 +02:00
Klaas Freitag e18fd62f34 Propagator: checksum constants go to propatorjobs header.
So they can be used from both up- and download propagator jobs.
2015-05-19 17:09:40 +02:00
Klaas Freitag 3701fbcbfe PropagateUpload: Add checksum calculation if required by config.
If the config file has an transmissionChecksum entry, a checksum
is added to the PUT requests in a header.
2015-05-19 17:09:39 +02:00
Jocelyn Turcotte ea39e457f5 Fix the build 2015-05-12 10:35:57 +02:00
Daniel Molkentin b54f2b3b31 Merge remote-tracking branch 'origin/1.9'
Conflicts:
	VERSION.cmake
	src/libsync/propagatedownload.cpp
	src/libsync/propagateupload.cpp
2015-05-12 10:03:38 +02:00
Christian Kamm 79ac61684c Propagator: Overwrite local data only if unchanged. #3156 2015-05-07 14:43:33 +02:00
Jocelyn Turcotte a6500d8068 Work around the Qt PUT corruption bug with Qt < 5.4.2 #2425
Since QNonContiguousByteDeviceThreadForwardImpl::reset will
call UploadDevice::reset with a BlockingQueuedConnection, this
allows us to reset the HTTP channel along with its buffers
before they get the chance to be reused with a subsequent request.
2015-05-06 16:56:50 +02:00
Christian Kamm 509b83e73e Time estimation: Avoid a progress reset before finish. #2328
The current algorithm doesn't care much, but resetting progress
to 0 just before completing a job is confusing anyway.
2015-04-22 10:45:41 +02:00
Jocelyn Turcotte 12d7484b85 Pass SyncFileItems by pointer instead of by value
Use a QSharedPointer to keep the same ownership and
continue passing the SyncFileItems as a const& when
ownership isn't taken. This allows sharing the same
allocations between the jobs and the result vectors.

This saves about 20MB of memory (off 120MB) once all
jobs are created.
2015-04-18 14:26:40 +02:00
Markus Goetz b6fe5d2cff Propagator: Debug output regarding OC-ETag
We can remove this in some time, but currently it is interesting
to see for what server setup is no ETag but an OC-ETag.
2015-03-27 13:16:11 +01:00
Jocelyn Turcotte 3c9acdf724 Fix a crash when accessing a dangling UploadDevice pointer #2984
This is largely a guess, but this is the only place where we use
a QIODevice to push data through QNAM and that the QIODevice isn't
a direct child of the QNetworkReply.

Fix the issue by making sure that we don't go back to the event loop
and possibly handle network events between the destruction of the
upload QIODevice and the QNetworkReply, which might lead to QNAM
dereferencing a dangling QIODevice pointer.
2015-03-23 16:14:54 +01:00
Markus Goetz c42c9f0002 Propagator: Add comment 2015-03-13 15:48:35 +01:00
Christian Kamm 1dd3488973 Uploads: Fix big seeks on Windows. #2954 2015-03-12 13:18:08 +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
Markus Goetz 131cf63d8d Propagator: Don't use 0,0 progress signals.
They seemed to have messed up the calculation sometimes for
the last chunk.
2015-03-03 17:46:57 +01:00
Olivier Goffart ccbeb86140 Fix build of the legacy propagator 2015-03-03 10:05:38 +01:00
Klaas Freitag 05624e3fc8 FileSystem: Remove QFileInfo based implementations.
QFileInfo has to be refreshed if the underlying file has been
modified in between. That is dangerous so ckamm and me decided
to eliminate the QFileInfo based implementations.

This was triggered by a bug that the client uploaded files that
it should not have.
2015-02-27 15:27:49 +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
Christian Kamm c37792f58f Propagator: Upload files with future timestamps. #2880 2015-02-26 11:00:06 +01:00
Christian Kamm f88398e776 lnk files: Fix exists() calls. #2792 2015-02-25 11:50:32 +01:00
Olivier Goffart 063271e978 propagateupload: Disable parallel chunk upload for owncloud < 8
Issue #2743
2015-02-12 14:50:42 +01:00
Christian Kamm 9ba88f6baf Windows: Sync .lnk files correctly. #2792 2015-02-12 11:27:58 +01:00
Markus Goetz 1e57432aae Propagator: Fix crash
This crash was uncovered when testing parallel chunks when one chunk
finished the upload. The propagate was then finished with the other
UploadDevices still being in-flight in the QNAM.
2015-02-06 11:19:41 +01:00
Volkan Gezer eaa9c4fdf8 json capital 2015-02-05 20:41:08 +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 fe51ada1e8 Don't require NEON with Qt 5.4 2015-01-23 17:11:34 +01:00
Christian Kamm 0af5574951 Propagate upload: code cleanup 2015-01-14 15:20:02 +01:00
Olivier Goffart 0ae9055ea6 Propagator upload: Fix UploadDevice::seek 2015-01-14 15:08:09 +01:00
Markus Goetz a544133d73 Propagator: Guard access to BandwidthManager
Shouls fix #2623
2015-01-14 14:28:47 +01:00
Christian Kamm b3c02798a3 Propagator: Use FILE_SHARE_DELETE on Windows. #2070 #2597 2015-01-14 14:16:05 +01:00
Olivier Goffart 3ec19ee355 Propatage upload: Preload the chunk in memory and close the file
This should solve #2675 and #1981

By preloading the chunks in memory before sending them, we don't keep the
file open and therefore we let other program open the file for writing.

If the file is modified between two chunks, we detect that and abort anyway
2015-01-14 13:46:51 +01:00
Olivier Goffart 6a0c9fdd34 Propagate upload: Change the default chunk size to 5MiB and make chunk upload parallel
The server is slow to process each chunk. As a result the time between
the chunks is not neglectible. Therefore we gain a lot of time by
uploading the chunks in parallel. So the bandwitdh is used when the
server is waiting between chunks.
2015-01-14 13:46:51 +01:00
Olivier Goffart 7f1593c5d7 PropagateUpload: The PUTJob owns the chunk device, so make it a QScopedPointer instead of a QSharedPointer 2015-01-14 13:46:51 +01:00
Daniel Molkentin c3468b7ed6 Merge remote-tracking branch 'origin/master' into accountstate
Conflicts:
	src/gui/owncloudsetupwizard.cpp
	src/gui/owncloudsetupwizard.h
	src/libsync/propagatedownload.cpp
	src/libsync/propagatedownload.h
2015-01-08 15:33:39 +01:00
Olivier Goffart ab0bc75e43 PropagateUploadFileQNAM::slotUploadProgress: Fix inverted condition
( Apply this commit 2d8053a9df )
2015-01-05 17:32:12 +01:00
Christian Kamm 38ebfec1fb Use global Account/AccountState less.
* Use a shared pointer to Account everywhere to ensure
  the instance stays alive long enough for a sync to terminate
* Folder is now tied to an AccountState
* SyncEngine and OwncloudPropagator tie to an Account and use that
  for all jobs they run

Issue: Since the setup wizard currently always replaces the
account, it will always wipe all folder definitions, even when
the actual changes to the account were minor.
2014-12-18 15:39:51 +01:00
Christian Kamm 53d5de685c Merge remote-tracking branch 'origin/1.7'
Conflicts:
	src/gui/folder.cpp
	src/gui/folder.h
	src/libsync/networkjobs.cpp
	src/libsync/owncloudpropagator.h
	src/libsync/propagatedownload.cpp
2014-12-10 13:01:36 +01:00
Daniel Molkentin a42709f814 Namespace fixes 2014-12-02 14:20:13 +01:00
Olivier Goffart fb3f5d86cf Fix compilation after merge 2014-12-01 14:41:39 +01:00
Olivier Goffart 3253cc38b2 Propagator upload: Mark error while opening the file as SoftError
Because otherwise a lot of error are shown to the user when
the user deletes a directory that is syncing

Task #1981
2014-12-01 12:22:52 +01:00
Olivier Goffart 734db6f932 propagate Upload: Let the poll job count for a job
In order to avoid that there are many concurrent poll jobs that takes
all the QNAM channel and causes timeouts of queued jobs
2014-11-24 13:33:13 +01:00
Olivier Goffart d76e3c0488 Parallel chunk upload: abort all chunks if one of them errors out 2014-11-24 12:05:25 +01:00
Olivier Goffart c0de20dda0 UploadDevice: reduce debug verbosity 2014-11-24 12:05:25 +01:00
Olivier Goffart 1113980b20 Propagator: Change the scheduler
It still needs to be a bit optimized, but it allows to paralelized jobs between directories

(this is required to paralelize the mkcol)
2014-11-18 17:35:31 +01:00
Olivier Goffart 14f5e8e32e Move all the neon code to the _legacy files 2014-11-14 16:13:50 +01:00
Olivier Goffart 506ba022f1 Split propagator_qnam.cpp into propagateupload.cpp and propagatedownload.cpp 2014-11-11 12:17:10 +01:00