diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2015-01-15 13:35:16 +0300 |
---|---|---|
committer | Olivier Goffart <ogoffart@woboq.com> | 2015-01-15 13:36:24 +0300 |
commit | 08d3ae9f0290b264d93f5a5eb30a026e2d5ec725 (patch) | |
tree | 345c1899c2c809c0c3f2c33592611afb570b0fa1 /csync | |
parent | f654c53c35f41e40973c827606c061524cc1b2eb (diff) |
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
Diffstat (limited to 'csync')
-rw-r--r-- | csync/src/csync.c | 2 | ||||
-rw-r--r-- | csync/src/csync.h | 2 | ||||
-rw-r--r-- | csync/src/csync_statedb.c | 3 |
3 files changed, 4 insertions, 3 deletions
diff --git a/csync/src/csync.c b/csync/src/csync.c index 976c38be3..386589ee1 100644 --- a/csync/src/csync.c +++ b/csync/src/csync.c @@ -210,7 +210,6 @@ int csync_update(CSYNC *ctx) { CSYNC_LOG(CSYNC_LOG_PRIORITY_DEBUG, "Journal: %s", ctx->statedb.file); if (csync_statedb_load(ctx, ctx->statedb.file, &ctx->statedb.db) < 0) { - ctx->status_code = CSYNC_STATUS_STATEDB_LOAD_ERROR; rc = -1; return rc; } @@ -287,7 +286,6 @@ int csync_reconcile(CSYNC *ctx) { csync_gettime(&start); if (csync_statedb_load(ctx, ctx->statedb.file, &ctx->statedb.db) < 0) { - ctx->status_code = CSYNC_STATUS_STATEDB_LOAD_ERROR; rc = -1; return rc; } diff --git a/csync/src/csync.h b/csync/src/csync.h index 82b9c223e..64e5a435f 100644 --- a/csync/src/csync.h +++ b/csync/src/csync.h @@ -56,7 +56,7 @@ enum csync_status_codes_e { CSYNC_STATUS_UNSUCCESSFUL, CSYNC_STATUS_NO_LOCK, /* OBSOLETE does not happen anymore */ CSYNC_STATUS_STATEDB_LOAD_ERROR, - CSYNC_STATUS_STATEDB_WRITE_ERROR, + CSYNC_STATUS_STATEDB_CORRUPTED, CSYNC_STATUS_NO_MODULE, CSYNC_STATUS_TIMESKEW, CSYNC_STATUS_FILESYSTEM_UNKNOWN, diff --git a/csync/src/csync_statedb.c b/csync/src/csync_statedb.c index fca504e5a..136b7d492 100644 --- a/csync/src/csync_statedb.c +++ b/csync/src/csync_statedb.c @@ -131,6 +131,7 @@ int csync_statedb_load(CSYNC *ctx, const char *statedb, sqlite3 **pdb) { if (ctx->statedb.db) { CSYNC_LOG(CSYNC_LOG_PRIORITY_NOTICE, "ERR: DB already open"); + ctx->status_code = CSYNC_STATUS_PARAM_ERROR; return -1; } @@ -143,6 +144,7 @@ int csync_statedb_load(CSYNC *ctx, const char *statedb, sqlite3 **pdb) { errmsg ? errmsg : "<no sqlite3 errormsg>"); rc = -1; + ctx->status_code = CSYNC_STATUS_STATEDB_LOAD_ERROR; goto out; } @@ -151,6 +153,7 @@ int csync_statedb_load(CSYNC *ctx, const char *statedb, sqlite3 **pdb) { CSYNC_LOG(CSYNC_LOG_PRIORITY_NOTICE, "ERR: sqlite3 integrity check failed - bail out: %s.", errmsg ? errmsg : "<no sqlite3 errormsg>"); rc = -1; + ctx->status_code = CSYNC_STATUS_STATEDB_CORRUPTED; goto out; } |