diff options
-rw-r--r-- | src/db/sysdb.c | 31 | ||||
-rw-r--r-- | src/db/sysdb.h | 7 | ||||
-rw-r--r-- | src/providers/data_provider_be.c | 4 | ||||
-rw-r--r-- | src/python/pysss.c | 5 | ||||
-rw-r--r-- | src/tests/auth-tests.c | 6 | ||||
-rw-r--r-- | src/tests/sysdb-tests.c | 6 | ||||
-rw-r--r-- | src/tests/sysdb_ssh-tests.c | 6 | ||||
-rw-r--r-- | src/tools/sss_cache.c | 5 | ||||
-rw-r--r-- | src/tools/sss_seed.c | 6 | ||||
-rw-r--r-- | src/tools/tools_util.c | 4 | ||||
-rw-r--r-- | src/util/domain_info_utils.c | 34 | ||||
-rw-r--r-- | src/util/util.h | 6 |
12 files changed, 60 insertions, 60 deletions
diff --git a/src/db/sysdb.c b/src/db/sysdb.c index 8b200b01..f68c30ac 100644 --- a/src/db/sysdb.c +++ b/src/db/sysdb.c @@ -1242,37 +1242,6 @@ int sysdb_domain_init(TALLOC_CTX *mem_ctx, db_path, false, _ctx); } -errno_t sysdb_init_domain_and_sysdb(TALLOC_CTX *mem_ctx, - struct confdb_ctx *cdb, - const char *domain_name, - const char *db_path, - struct sss_domain_info **_domain, - struct sysdb_ctx **_ctx) -{ - int ret; - struct sss_domain_info *dom; - struct sysdb_ctx *ctx; - - ret = confdb_get_domain(cdb, domain_name, &dom); - if (ret != EOK) { - DEBUG(SSSDBG_OP_FAILURE, ("Error retrieving domain configuration.\n")); - return ret; - } - - ret = sysdb_domain_init(mem_ctx, dom, db_path, &ctx); - if (ret != EOK) { - DEBUG(SSSDBG_OP_FAILURE, ("Error opening cache database.\n")); - return ret; - } - - dom->sysdb = talloc_steal(dom, ctx); - - *_domain = dom; - *_ctx = ctx; - - return EOK; -} - int compare_ldb_dn_comp_num(const void *m1, const void *m2) { struct ldb_message *msg1 = talloc_get_type(*(void **) discard_const(m1), diff --git a/src/db/sysdb.h b/src/db/sysdb.h index d191dd3d..10eec5e6 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -455,13 +455,6 @@ int sysdb_domain_init(TALLOC_CTX *mem_ctx, const char *db_path, struct sysdb_ctx **_ctx); -errno_t sysdb_init_domain_and_sysdb(TALLOC_CTX *mem_ctx, - struct confdb_ctx *cdb, - const char *domain_name, - const char *db_path, - struct sss_domain_info **_domain, - struct sysdb_ctx **_ctx); - /* functions to retrieve information from sysdb * These functions automatically starts an operation * therefore they cannot be called within a transaction */ diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c index 5208b48c..5b6bbc4a 100644 --- a/src/providers/data_provider_be.c +++ b/src/providers/data_provider_be.c @@ -2344,12 +2344,12 @@ int be_process_init(TALLOC_CTX *mem_ctx, goto fail; } - ret = sysdb_init_domain_and_sysdb(ctx, cdb, be_domain, DB_PATH, - &ctx->domain, &ctx->sysdb); + ret = sssd_domain_init(ctx, cdb, be_domain, DB_PATH, &ctx->domain); if (ret != EOK) { DEBUG(SSSDBG_FATAL_FAILURE, ("fatal error opening cache database\n")); goto fail; } + ctx->sysdb = ctx->domain->sysdb; ret = sss_monitor_init(ctx, ctx->ev, &monitor_be_interface, ctx->identity, DATA_PROVIDER_VERSION, diff --git a/src/python/pysss.c b/src/python/pysss.c index 842c1b5e..95cf781d 100644 --- a/src/python/pysss.c +++ b/src/python/pysss.c @@ -800,14 +800,15 @@ static PyObject *PySssLocalObject_new(PyTypeObject *type, return NULL; } - ret = sysdb_init_domain_and_sysdb(self->mem_ctx, self->confdb, "local", - DB_PATH, &self->local, &self->sysdb); + ret = sssd_domain_init(self->mem_ctx, self->confdb, "local", + DB_PATH, &self->local); if (ret != EOK) { talloc_free(mem_ctx); PyErr_SetSssErrorWithMessage(ret, "Could not initialize connection to the sysdb\n"); return NULL; } + self->sysdb = self->local->sysdb; self->lock = DO_LOCK; self->unlock = DO_UNLOCK; diff --git a/src/tests/auth-tests.c b/src/tests/auth-tests.c index ff8b9e1b..7b53c9b9 100644 --- a/src/tests/auth-tests.c +++ b/src/tests/auth-tests.c @@ -134,14 +134,14 @@ static int setup_sysdb_tests(struct sysdb_test_ctx **ctx) return ret; } - ret = sysdb_init_domain_and_sysdb(test_ctx, test_ctx->confdb, "local", - TESTS_PATH, - &test_ctx->domain, &test_ctx->sysdb); + ret = sssd_domain_init(test_ctx, test_ctx->confdb, "local", + TESTS_PATH, &test_ctx->domain); if (ret != EOK) { fail("Could not initialize connection to the sysdb (%d)", ret); talloc_free(test_ctx); return ret; } + test_ctx->sysdb = test_ctx->domain->sysdb; *ctx = test_ctx; return EOK; diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c index a5526280..c2e20c0a 100644 --- a/src/tests/sysdb-tests.c +++ b/src/tests/sysdb-tests.c @@ -145,14 +145,14 @@ static int setup_sysdb_tests(struct sysdb_test_ctx **ctx) return ret; } - ret = sysdb_init_domain_and_sysdb(test_ctx, test_ctx->confdb, "local", - TESTS_PATH, - &test_ctx->domain, &test_ctx->sysdb); + ret = sssd_domain_init(test_ctx, test_ctx->confdb, "local", + TESTS_PATH, &test_ctx->domain); if (ret != EOK) { fail("Could not initialize connection to the sysdb (%d)", ret); talloc_free(test_ctx); return ret; } + test_ctx->sysdb = test_ctx->domain->sysdb; *ctx = test_ctx; return EOK; diff --git a/src/tests/sysdb_ssh-tests.c b/src/tests/sysdb_ssh-tests.c index cb5bd4b3..013a1d43 100644 --- a/src/tests/sysdb_ssh-tests.c +++ b/src/tests/sysdb_ssh-tests.c @@ -130,14 +130,14 @@ static int setup_sysdb_tests(struct sysdb_test_ctx **ctx) return ret; } - ret = sysdb_init_domain_and_sysdb(test_ctx, test_ctx->confdb, "local", - TESTS_PATH, - &test_ctx->domain, &test_ctx->sysdb); + ret = sssd_domain_init(test_ctx, test_ctx->confdb, "local", + TESTS_PATH, &test_ctx->domain); if (ret != EOK) { fail("Could not initialize connection to the sysdb (%d)", ret); talloc_free(test_ctx); return ret; } + test_ctx->sysdb = test_ctx->domain->sysdb; *ctx = test_ctx; return EOK; diff --git a/src/tools/sss_cache.c b/src/tools/sss_cache.c index 5f8450f7..2ab5303a 100644 --- a/src/tools/sss_cache.c +++ b/src/tools/sss_cache.c @@ -398,7 +398,6 @@ errno_t init_domains(struct cache_tool_ctx *ctx, const char *domain) { char *confdb_path; int ret; - struct sysdb_ctx *db_ctx = NULL; confdb_path = talloc_asprintf(ctx, "%s/%s", DB_PATH, CONFDB_FILE); if (confdb_path == NULL) { @@ -414,8 +413,8 @@ errno_t init_domains(struct cache_tool_ctx *ctx, const char *domain) } if (domain) { - ret = sysdb_init_domain_and_sysdb(ctx, ctx->confdb, domain, DB_PATH, - &ctx->domains, &db_ctx); + ret = sssd_domain_init(ctx, ctx->confdb, + domain, DB_PATH, &ctx->domains); if (ret != EOK) { SYSDB_VERSION_ERROR(ret); DEBUG(1, ("Could not initialize connection to the sysdb\n")); diff --git a/src/tools/sss_seed.c b/src/tools/sss_seed.c index aa11ab51..d3c1cb44 100644 --- a/src/tools/sss_seed.c +++ b/src/tools/sss_seed.c @@ -603,7 +603,6 @@ static int seed_init_db(TALLOC_CTX *mem_ctx, TALLOC_CTX *tmp_ctx = NULL; char *confdb_path = NULL; struct confdb_ctx *confdb = NULL; - struct sysdb_ctx *sysdb = NULL; struct sss_domain_info *domain = NULL; int ret = EOK; @@ -628,8 +627,7 @@ static int seed_init_db(TALLOC_CTX *mem_ctx, goto done; } - ret = sysdb_init_domain_and_sysdb(tmp_ctx, confdb, domain_name, - DB_PATH, &domain, &sysdb); + ret = sssd_domain_init(tmp_ctx, confdb, domain_name, DB_PATH, &domain); if (ret != EOK) { SYSDB_VERSION_ERROR(ret); DEBUG(SSSDBG_CRIT_FAILURE, @@ -641,8 +639,8 @@ static int seed_init_db(TALLOC_CTX *mem_ctx, goto done; } - *_sysdb = talloc_steal(mem_ctx, sysdb); *_confdb = talloc_steal(mem_ctx, confdb); + *_sysdb = domain->sysdb; done: talloc_free(tmp_ctx); diff --git a/src/tools/tools_util.c b/src/tools/tools_util.c index 406077c8..b2dc4ff5 100644 --- a/src/tools/tools_util.c +++ b/src/tools/tools_util.c @@ -54,13 +54,13 @@ static int setup_db(struct tools_ctx *ctx) return ret; } - ret = sysdb_init_domain_and_sysdb(ctx, ctx->confdb, "local", DB_PATH, - &ctx->local, &ctx->sysdb); + ret = sssd_domain_init(ctx, ctx->confdb, "local", DB_PATH, &ctx->local); if (ret != EOK) { SYSDB_VERSION_ERROR(ret); DEBUG(1, ("Could not initialize connection to the sysdb\n")); return ret; } + ctx->sysdb = ctx->local->sysdb; talloc_free(confdb_path); return EOK; diff --git a/src/util/domain_info_utils.c b/src/util/domain_info_utils.c index a6aa5c73..cee11eb5 100644 --- a/src/util/domain_info_utils.c +++ b/src/util/domain_info_utils.c @@ -112,3 +112,37 @@ struct sss_domain_info *copy_subdomain(TALLOC_CTX *mem_ctx, return new_subdomain(mem_ctx, subdomain->parent, subdomain->name, subdomain->flat_name, subdomain->domain_id); } + +errno_t sssd_domain_init(TALLOC_CTX *mem_ctx, + struct confdb_ctx *cdb, + const char *domain_name, + const char *db_path, + struct sss_domain_info **_domain) +{ + int ret; + struct sss_domain_info *dom; + struct sysdb_ctx *sysdb; + + ret = confdb_get_domain(cdb, domain_name, &dom); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, ("Error retrieving domain configuration.\n")); + return ret; + } + + if (dom->sysdb != NULL) { + DEBUG(SSSDBG_OP_FAILURE, ("Sysdb context already initialized.\n")); + return EEXIST; + } + + ret = sysdb_domain_init(mem_ctx, dom, db_path, &sysdb); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, ("Error opening cache database.\n")); + return ret; + } + + dom->sysdb = talloc_steal(dom, sysdb); + + *_domain = dom; + + return EOK; +} diff --git a/src/util/util.h b/src/util/util.h index cc5a2baf..df1ee3b0 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -574,6 +574,12 @@ struct sss_domain_info *new_subdomain(TALLOC_CTX *mem_ctx, struct sss_domain_info *copy_subdomain(TALLOC_CTX *mem_ctx, struct sss_domain_info *subdomain); +errno_t sssd_domain_init(TALLOC_CTX *mem_ctx, + struct confdb_ctx *cdb, + const char *domain_name, + const char *db_path, + struct sss_domain_info **_domain); + /* from util_lock.c */ errno_t sss_br_lock_file(int fd, size_t start, size_t len, int num_tries, useconds_t wait); |