mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-27 23:17:13 +03:00
propagator-ng: resume uploads
Currently i think it corrupt the files
This commit is contained in:
parent
0636ae6f28
commit
685bf395be
2 changed files with 18 additions and 17 deletions
|
@ -210,20 +210,17 @@ csync_instructions_e OwncloudPropagator::uploadFile(const SyncFileItem &item)
|
||||||
Q_ASSERT(trans);
|
Q_ASSERT(trans);
|
||||||
state = hbf_splitlist(trans.data(), file.handle());
|
state = hbf_splitlist(trans.data(), file.handle());
|
||||||
|
|
||||||
//FIXME TODO
|
if (const ProgressDatabase::UploadInfo* progressInfo = _progressDb->getUploadInfo(item._file)) {
|
||||||
#if 0
|
if (progressInfo->mtime == item._modtime) {
|
||||||
/* Reuse chunk info that was stored in database if existing. */
|
trans->start_id = progressInfo->chunk;
|
||||||
if (dav_session.chunk_info && dav_session.chunk_info->transfer_id) {
|
trans->transfer_id = progressInfo->transferid;
|
||||||
DEBUG_WEBDAV("Existing chunk info %d %d ", dav_session.chunk_info->start_id, dav_session.chunk_info->transfer_id);
|
}
|
||||||
trans->start_id = dav_session.chunk_info->start_id;
|
_progressDb->remove(item._file);
|
||||||
trans->transfer_id = dav_session.chunk_info->transfer_id;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state == HBF_SUCCESS && _progresscb) {
|
//TODO
|
||||||
ne_set_notifier(dav_session.ctx, ne_notify_status_cb, write_ctx);
|
//ne_set_notifier(dav_session.ctx, ne_notify_status_cb, write_ctx);
|
||||||
_progresscb(write_ctx->url, CSYNC_NOTIFY_START_UPLOAD, 0 , 0, dav_session.userdata);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if( state == HBF_SUCCESS ) {
|
if( state == HBF_SUCCESS ) {
|
||||||
//chunked_total_size = trans->stat_size;
|
//chunked_total_size = trans->stat_size;
|
||||||
/* Transfer all the chunks through the HTTP session using PUT. */
|
/* Transfer all the chunks through the HTTP session using PUT. */
|
||||||
|
@ -245,10 +242,14 @@ csync_instructions_e OwncloudPropagator::uploadFile(const SyncFileItem &item)
|
||||||
if( finished ) {
|
if( finished ) {
|
||||||
_errorString = hbf_error_string(state);
|
_errorString = hbf_error_string(state);
|
||||||
_httpStatusCode = hbf_fail_http_code(trans.data());
|
_httpStatusCode = hbf_fail_http_code(trans.data());
|
||||||
// if (dav_session.chunk_info) {
|
|
||||||
// dav_session.chunk_info->start_id = trans->start_id;
|
if (trans->start_id > 0) {
|
||||||
// dav_session.chunk_info->transfer_id = trans->transfer_id;
|
ProgressDatabase::UploadInfo pi;
|
||||||
// }
|
pi.chunk = trans->start_id;
|
||||||
|
pi.transferid = trans->transfer_id;
|
||||||
|
pi.mtime = item._modtime;
|
||||||
|
_progressDb->setUploadInfo(item._file, pi);
|
||||||
|
}
|
||||||
return CSYNC_INSTRUCTION_ERROR;
|
return CSYNC_INSTRUCTION_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ public:
|
||||||
struct UploadInfo {
|
struct UploadInfo {
|
||||||
int chunk;
|
int chunk;
|
||||||
int transferid;
|
int transferid;
|
||||||
quint64 size;
|
quint64 size; //currently unused
|
||||||
time_t mtime;
|
time_t mtime;
|
||||||
};
|
};
|
||||||
typedef QHash<QString, UploadInfo > UploadInfoHash;
|
typedef QHash<QString, UploadInfo > UploadInfoHash;
|
||||||
|
|
Loading…
Reference in a new issue