Klaas Freitag
bf8188e9e8
Create metadata table if not existing.
2013-06-10 11:48:38 +02:00
Klaas Freitag
5852a2dd06
Create an empty metadata table if non exists.
2013-06-07 16:09:07 +02:00
Klaas Freitag
fbfba8bfbb
Add another database integrity check on startup to avoid corrupt dbs.
2013-06-07 16:08:45 +02:00
Klaas Freitag
e4e30e2cdd
Use multibyte version of open in database version check.
2013-06-05 17:59:34 +02:00
Klaas Freitag
126559b2be
For new databases, skip the is-empty check.
2013-05-22 16:10:43 +02:00
Klaas Freitag
4a58cae0b0
Finialize insert statement.
2013-05-22 12:33:09 +02:00
Klaas Freitag
bcdd8b95bf
Allow empty MD5 sum on save, happens with directoires.
2013-05-22 12:33:09 +02:00
Klaas Freitag
69d251630f
Code cleanups, move closedb out of if statements.
2013-05-22 12:33:09 +02:00
Klaas Freitag
673ca36db8
More efficient database writing, do integrity check on db.
2013-05-22 12:33:09 +02:00
Klaas Freitag
68e0dbb18f
Use wide character unlink.
2013-05-22 12:32:25 +02:00
Klaas Freitag
23912a7214
Reworked database writing code. Speed improvement > 50%.
2013-05-20 12:24:55 +02:00
Klaas Freitag
4ad01b35ce
Switch on full synchronous mode for sqlite.
2013-05-20 11:10:27 +02:00
Klaas Freitag
1a648a612e
Merge remote-tracking branch 'ogoffart/rename_folders_merged' into dav
2013-05-13 16:28:31 +02:00
Klaas Freitag
885eaad729
Removed goto from code.
2013-05-13 15:29:29 +02:00
Olivier Goffart
28942e3051
Recreates the statedb if it was corrupted
...
Fixes: https://github.com/owncloud/mirall/issues/595
Some corruptions do not happen when the database is opened, but only on
some querries.
In that case, recreates the database if querries such as DROP or
CREATE fails.
2013-05-13 11:57:25 +02:00
Olivier Goffart
3c87cd71d7
Merge branch 'rename_folders' into dav
...
Conflicts:
modules/csync_owncloud.c
src/csync.c
src/csync.h
src/csync_propagate.c
src/csync_propagate.h
src/csync_statedb.c
src/csync_statedb.h
src/csync_util.c
src/std/c_path.h
2013-05-07 15:24:12 +02:00
Klaas Freitag
4ce67e38d1
Fix printf operator to interpret phash correctly for sqlite3.
2013-05-06 16:27:11 +02:00
Olivier Goffart
b1fc9b2a64
Don't reset the md5 if the mtime change locally.
...
Consider this case when one creates a file with an invalid filename (for
the server) in a directory in the local side.
say: foo/bar/%invalid%.txt
The following would happen:
- in the update for the local parent folder foo/bar/, the md5 is 0
because the mtime has changed
- During the reconcile, we try to send %invalid%, but there will be an
error and nothing will be changed on the server, the etags stay the
same
- We do not do any PROPFIND at the end so we do not fetch the etag
anymore. The md5 is still 0 and will be saved like that in the DB
- Next run, since the etags have not changed on the server, we read
from the DB. But a md5 of 0 in the DB means the folder was removed on
the server. That would remove the local folder (BAD!)
So we load the md5 from the db even if the local mtime change.
That means we need to compare the mtime in the local case rather than
the md5 to see if something has changed.
2013-05-03 19:21:21 +02:00
Klaas Freitag
ab17e2aa8b
Revert "Don't include csync_version.h from csync.h"
...
This reverts commit 5cda5d523c
.
2013-04-26 10:45:14 +02:00
Klaas Freitag
5cda5d523c
Don't include csync_version.h from csync.h
2013-04-26 10:37:45 +02:00
Olivier Goffart
eb38f5beb1
Don't reset the md5 if the mtime change locally.
...
Consider this case when one creates a file with an invalid filename (for
the server) in a directory in the local side.
say: foo/bar/%invalid%.txt
The following would happen:
- in the update for the local parent folder foo/bar/, the md5 is 0
because the mtime has changed
- During the reconcile, we try to send %invalid%, but there will be an
error and nothing will be changed on the server, the etags stay the
same
- We do not do any PROPFIND at the end so we do not fetch the etag
anymore. The md5 is still 0 and will be saved like that in the DB
- Next run, since the etags have not changed on the server, we read
from the DB. But a md5 of 0 in the DB means the folder was removed on
the server. That would remove the local folder (BAD!)
So we load the md5 from the db even if the local mtime change.
That means we need to compare the mtime in the local case rather than
the md5 to see if something has changed.
2013-04-24 14:09:20 +02:00
Klaas Freitag
847c223408
More meaningful logging of read db fails.
2013-04-15 17:47:50 +02:00
Klaas Freitag
4280adc60a
More optimized database handling for csync journal build up.
...
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
2013-04-06 18:11:15 +02:00
Klaas Freitag
34668e42b3
Merge branch 'dav_0.70.5' into dav - WIP
...
Conflicts:
CMakeLists.txt
CPackConfig.cmake
src/csync.h
src/csync_update.c
tests/ownCloud/t1.pl
2013-04-02 14:44:01 +02:00
Olivier Goffart
296011436a
Store the error string in the database when blacklisting
2013-03-28 13:54:01 +01:00
Klaas Freitag
7b7ce3a43c
Remove versions table before new creation.
2013-03-22 11:04:04 +01:00
Olivier Goffart
2205c9a339
Resume chunked upload if conneciton is lost
2013-03-12 11:42:17 +01:00
Olivier Goffart
53ad4a910f
Progress database:
...
Remember about errors, and don't retry if there is more than 3 errors
Conflicts:
src/csync_propagate.c
2013-03-02 15:01:40 +01:00
Olivier Goffart
259b6050bf
Progress database:
...
Remember about errors, and don't retry if there is more than 3 errors
2013-03-01 12:31:20 +01:00
Andreas Schneider
91d92bfa16
log: Add functions to set userdata for the logging callback.
2013-03-01 09:59:55 +01:00
Klaas Freitag
ccc9419a58
Reduce the sqlite_compile errors dramatically.
2013-01-16 16:27:59 +01:00
Daniel Molkentin
49d2fd685b
iconv support
...
This allows for files on mac to automatically be converted to UNC
2012-12-07 13:03:01 +01:00
Olivier Goffart
95edd6a9de
Merge remote-tracking branch 'origin/master' into dav
...
Conflicts:
config/ocsync_log.conf
src/csync.c
src/csync.h
src/csync_config.c
src/csync_log.h
src/csync_private.h
src/csync_statedb.c
tests/csync_tests/check_csync_config.c
2012-12-03 17:32:08 +01:00
Klaas Freitag
01ba8d4a9b
Wide char fixes for exclude, lock and statedb.
2012-11-27 15:39:06 +01:00
Klaas Freitag
a577bf8faa
Add a version table to csyncs database with the current version no.
2012-11-14 17:24:13 +01:00
Klaas Freitag
094554366b
Fix casting to signed data types.
2012-11-14 15:10:44 +01:00
Klaas Freitag
385b48da5c
Commented database copy. Rather let it recreate.
2012-11-14 15:09:16 +01:00
Olivier Goffart
7071a455c5
Use signed hash in SQL request
...
sqlite only handle signed integer, in case of overflow, we numbers are
transformed to floating point, resulting in wierd errors.
2012-11-06 14:05:52 +01:00
Klaas Freitag
2fa07b1dd9
set pointer void to avoid warning on linux compile.
2012-10-31 21:08:40 +01:00
Klaas Freitag
4104737533
Hide the journal database under windows using win32 API.
2012-10-31 20:56:06 +01:00
Andreas Schneider
0179c2249d
statedb: Log an error if we can't open the database.
2012-10-30 11:27:21 +01:00
Andreas Schneider
8a0b4319d3
csync: Add a new logging system.
2012-10-30 11:27:21 +01:00
Klaas Freitag
2bb52ef6f9
Merge branch 'master' into dav - get cmocka tests and database move.
...
Conflicts:
CMakeLists.txt
cmake/Modules/FindCMocka.cmake
src/csync.c
src/csync_exclude.c
src/csync_reconcile.c
src/csync_statedb.c
src/csync_update.c
src/csync_util.c
src/vio/csync_vio.c
tests/CMakeLists.txt
tests/csync_tests/check_csync_exclude.c
tests/csync_tests/check_csync_statedb_load.c
tests/csync_tests/check_csync_statedb_query.c
tests/csync_tests/check_csync_update.c
tests/std_tests/check_std_c_path.c
2012-10-27 19:27:14 +02:00
Klaas Freitag
557b4bbe25
Use LIKE instead of GLOB to find files in dirs in database.
...
This fixes Github issue mirall#25
2012-10-27 12:03:39 +02:00
Andreas Schneider
b4464bd92f
statedb: Don't leak the file descriptior on error.
...
Found by Coverity.
2012-10-19 20:37:13 +02:00
Andreas Schneider
1d8378e307
statedb: Ensure we don't leak memory in csync_statedb_query().
...
Found by Coverity.
2012-10-19 20:37:13 +02:00
Klaas Freitag
4682afc2bc
Added function csync_statedb_get_below_path.
2012-10-16 13:14:04 +02:00
Klaas Freitag
fbb88abe85
Clear memory and fix zero return type for _get_stat_by_hash
2012-10-04 13:03:42 +02:00
Klaas Freitag
2ec0b63f98
Migrate existing database from $HOME/.csync if non exists at config dir.
2012-10-04 13:02:38 +02:00
Klaas Freitag
2af0d6f1a4
Be careful with memory, some fixes for that.
2012-09-26 15:32:38 +02:00
Klaas Freitag
7b16fcf2a4
Avoid useless warnings.
2012-09-26 12:45:24 +02:00
Klaas Freitag
08f7fbbd71
Fix printf argument for win32 platform.
2012-08-30 17:01:52 +03:00
Klaas Freitag
c491e8bb68
Check for valid result count after query.
2012-08-28 14:09:54 +03:00
Klaas Freitag
3b369c8b03
More robust query result access if columns are missing.
2012-08-26 20:07:36 +02:00
Klaas Freitag
5b5fe29eb5
Make sqlite_query function able to deal with multiple row queries.
2012-08-23 17:54:36 +03:00
Klaas Freitag
cf8f31914a
Added a file type column to the database.
2012-08-23 17:53:53 +03:00
Klaas Freitag
a0353249f1
Remove a database column comment that just blows the log file.
2012-08-23 17:44:07 +03:00
Klaas Freitag
0618eb956d
Merge conflicts solved.
2012-08-23 17:40:36 +03:00
Klaas Freitag
ae5394ad75
UniqID based syncing, first WIP state.
2012-08-23 17:38:44 +03:00
Klaas Freitag
8e401e662f
MD5 Support WIP
2012-08-23 17:34:19 +03:00
Klaas Freitag
3ae996c688
Fixed rename support for Win32. Need to use unit64 instead of ino_t.
2012-08-03 18:48:44 +03:00
Klaas Freitag
0bedd5d9a3
Win32: Disabled Query per inode, always returning NULL.
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2012-04-17 10:49:29 +02:00
Klaas Freitag
53263a2685
owncloud: set _fmode variable to set file ops to binary mode.
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
2012-04-17 10:40:21 +02:00
Klaas Freitag
270a4262b4
Win32: Disabled Query per inode, always returning NULL.
2012-04-14 03:13:27 +02:00
Klaas Freitag
b6ad8635d6
owncloud: set _fmode variable to set file ops to binary mode.
2012-04-14 03:13:26 +02:00
Andreas Schneider
f0cf678c0e
Fix config checks.
2012-03-02 17:04:02 +01:00
Christian Jann
e4d8e793f6
added new conflict resolution to libcsync
...
- use the latest version of the two files under its original filename
in both destinations (same as currently implemented)
- additionally, create a copy of the older file under a different name
using the same file extension with appended marker (e.g. "conflict")
and timestamp in both destinations
(e.g. textfile.odt -> textfile_conflict-20100222-105000.odt)
- At the Moment 'textfile_conflict-20100222-105000.odt' is only created
on the side where the conflict has occurred and gets synced to the other side
on the second sync.
2011-04-06 16:57:24 +02:00
Andreas Schneider
fdea54edc5
Fix the vim modlines.
2009-05-13 10:12:07 +02:00
Andreas Schneider
a9150e9e2a
Initialize some variables.
2008-12-23 13:54:57 +01:00
Andreas Schneider
9152e25f8f
Fix the format for the inode number in the mprintf.
2008-12-14 18:27:24 +01:00
Andreas Schneider
f400f1852f
Improve the update detection.
...
Document and fix a problem in getting the phash value.
2008-09-03 09:48:19 +02:00
Andreas Schneider
e5286c7c8a
Rename journal functions to statedb.
2008-07-09 10:10:00 +02:00
Andreas Schneider
88690312d7
Rename the csync_journal files to csync_statedb.
2008-07-09 09:57:19 +02:00