summaryrefslogtreecommitdiff
path: root/server/confdb
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2009-02-16 20:25:16 -0500
committerSimo Sorce <idra@samba.org>2009-02-20 18:09:29 -0500
commitb8f07efe5d98071777e3a2863688c8269a7912e4 (patch)
tree66693078c86c7d6ed289bce3f6aebbd9c6125ea7 /server/confdb
parent2d151b22408e78e4b556000125cfc5abe068c846 (diff)
downloadsssd-b8f07efe5d98071777e3a2863688c8269a7912e4.tar.gz
sssd-b8f07efe5d98071777e3a2863688c8269a7912e4.tar.bz2
sssd-b8f07efe5d98071777e3a2863688c8269a7912e4.zip
Completely rework the nss interface to be able to use 2
types of domains: modern and legacy modern uses member/meberof, legacy uses memberUid for group memberships. Rework the proxy backend to use the legacy style as that's the format the data comes in (trying to convert would require too many transformations and increased the number of queries). Add support for fetching groups in nss. Add support for enumerating users and groups (requires to enable enumeration in config) both in nss and in the proxy provider. Remove confdb_get_domain_basedn() and substitute with generic calls in the nss init function. Store a domain structure in the btree not the basedn so that we can add enumeration flags. Also make sure NSS understand how to make multiple calls on enumerations, also make passing the domian parameter always mandatory, passing in domain=* is not valid anymore. This work fixes also a few memory, degfault, and logic bugs found while testing all nss functions (there are still some to fix that are less critical and much harder to find yet).
Diffstat (limited to 'server/confdb')
-rw-r--r--server/confdb/confdb.c15
-rw-r--r--server/confdb/confdb.h4
2 files changed, 0 insertions, 19 deletions
diff --git a/server/confdb/confdb.c b/server/confdb/confdb.c
index 28f25176..95df0367 100644
--- a/server/confdb/confdb.c
+++ b/server/confdb/confdb.c
@@ -635,18 +635,3 @@ done:
talloc_free(tmp_ctx);
return ret;
}
-
-int confdb_get_domain_basedn(struct confdb_ctx *cdb,
- TALLOC_CTX *mem_ctx,
- const char *domain,
- char **basedn)
-{
- char *section;
- int ret;
-
- section = talloc_asprintf(mem_ctx, "config/domains/%s", domain);
- ret = confdb_get_string(cdb, mem_ctx, section, "basedn", "cn=local", basedn);
-
- talloc_free(section);
- return ret;
-}
diff --git a/server/confdb/confdb.h b/server/confdb/confdb.h
index e6dd0d47..d117d043 100644
--- a/server/confdb/confdb.h
+++ b/server/confdb/confdb.h
@@ -52,7 +52,3 @@ int confdb_init(TALLOC_CTX *mem_ctx,
int confdb_get_domains(struct confdb_ctx *cdb,
TALLOC_CTX *mem_ctx,
char ***values);
-int confdb_get_domain_basedn(struct confdb_ctx *cdb,
- TALLOC_CTX *mem_ctx,
- const char *domain,
- char **basedn);