diff options
author | Ondrej Kos <okos@redhat.com> | 2012-11-08 14:34:36 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2012-11-19 13:35:55 +0100 |
commit | 4c9a85ab708ec7debecad51e4240e04d8bc6ca4e (patch) | |
tree | bcc2ac0722065b8832bd4073479ba08792888956 /src/tools | |
parent | c475ce7bfa230a0a0167a294317c1120211cbb4c (diff) | |
download | sssd-4c9a85ab708ec7debecad51e4240e04d8bc6ca4e.tar.gz sssd-4c9a85ab708ec7debecad51e4240e04d8bc6ca4e.tar.bz2 sssd-4c9a85ab708ec7debecad51e4240e04d8bc6ca4e.zip |
Display more information on DB version mismatch
https://fedorahosted.org/sssd/ticket/1589
Added check for determining, whether database version is higher or
lower than expected. To distinguish it from other errors it uses
following retun values (further used for appropriate error message):
EMEDIUMTYPE for lower version than expected
EUCLEAN for higher version than expected
When SSSD or one of it's tools fails on DB version mismatch, new error
message is showed suggesting how to proceed.
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/sss_cache.c | 2 | ||||
-rw-r--r-- | src/tools/sss_seed.c | 1 | ||||
-rw-r--r-- | src/tools/tools_util.c | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/src/tools/sss_cache.c b/src/tools/sss_cache.c index 06b0099d..368b1df9 100644 --- a/src/tools/sss_cache.c +++ b/src/tools/sss_cache.c @@ -339,6 +339,7 @@ errno_t init_domains(struct cache_tool_ctx *ctx, const char *domain) ret = sysdb_init_domain_and_sysdb(ctx, ctx->confdb, domain, DB_PATH, &ctx->domains, &db_ctx); if (ret != EOK) { + SYSDB_VERSION_ERROR(ret); DEBUG(1, ("Could not initialize connection to the sysdb\n")); goto fail; } @@ -350,6 +351,7 @@ errno_t init_domains(struct cache_tool_ctx *ctx, const char *domain) } } else { ret = sysdb_init(ctx, ctx->confdb, NULL, false, &ctx->sysdb_list); + SYSDB_VERSION_ERROR(ret); if (ret != EOK) { DEBUG(1, ("Could not initialize connection to the sysdb\n")); goto fail; diff --git a/src/tools/sss_seed.c b/src/tools/sss_seed.c index cd1b2638..af296c73 100644 --- a/src/tools/sss_seed.c +++ b/src/tools/sss_seed.c @@ -631,6 +631,7 @@ static int seed_init_db(TALLOC_CTX *mem_ctx, ret = sysdb_init_domain_and_sysdb(tmp_ctx, confdb, domain_name, DB_PATH, &domain, &sysdb); if (ret != EOK) { + SYSDB_VERSION_ERROR(ret); DEBUG(SSSDBG_CRIT_FAILURE, ("Could not initialize connection to domain '%s' in sysdb.%s\n", domain_name, ret == ENOENT ? " Domain not found." : "")); diff --git a/src/tools/tools_util.c b/src/tools/tools_util.c index 99b79f17..73e94136 100644 --- a/src/tools/tools_util.c +++ b/src/tools/tools_util.c @@ -57,6 +57,7 @@ static int setup_db(struct tools_ctx *ctx) ret = sysdb_init_domain_and_sysdb(ctx, ctx->confdb, "local", DB_PATH, &ctx->local, &ctx->sysdb); if (ret != EOK) { + SYSDB_VERSION_ERROR(ret); DEBUG(1, ("Could not initialize connection to the sysdb\n")); return ret; } |