summaryrefslogtreecommitdiff
path: root/source3/winbindd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-06-25 15:23:32 -0700
committerJeremy Allison <jra@samba.org>2008-06-25 15:23:32 -0700
commitae16606a90291664c7e43ea9316af3167a2d7642 (patch)
tree1bc016b167387e0e0693954f3bc58ebb5a0cc9d5 /source3/winbindd
parent7687a225104bbec47a672da60125af6ff580c817 (diff)
downloadsamba-ae16606a90291664c7e43ea9316af3167a2d7642.tar.gz
samba-ae16606a90291664c7e43ea9316af3167a2d7642.tar.bz2
samba-ae16606a90291664c7e43ea9316af3167a2d7642.zip
Part of fix for #5551. Split out the group enumeration functions to a BUILTIN and a Domain
specific version. Stops the domain groups appearing twice. Jeremy. (This used to be commit 77b99530e0ce0ab0f335d8b22774548d30690550)
Diffstat (limited to 'source3/winbindd')
-rw-r--r--source3/winbindd/winbindd_passdb.c42
1 files changed, 27 insertions, 15 deletions
diff --git a/source3/winbindd/winbindd_passdb.c b/source3/winbindd/winbindd_passdb.c
index ffcf0719be..e4cf029225 100644
--- a/source3/winbindd/winbindd_passdb.c
+++ b/source3/winbindd/winbindd_passdb.c
@@ -72,19 +72,6 @@ static NTSTATUS enum_groups_internal(struct winbindd_domain *domain,
return result;
}
-/* list all domain groups */
-static NTSTATUS enum_dom_groups(struct winbindd_domain *domain,
- TALLOC_CTX *mem_ctx,
- uint32 *num_entries,
- struct acct_info **info)
-{
- return enum_groups_internal(domain,
- mem_ctx,
- num_entries,
- info,
- SID_NAME_DOM_GRP);
-}
-
/* List all local groups (aliases) */
static NTSTATUS enum_local_groups(struct winbindd_domain *domain,
TALLOC_CTX *mem_ctx,
@@ -371,6 +358,18 @@ static NTSTATUS password_policy(struct winbindd_domain *domain,
BUILTIN specific functions.
*********************************************************************/
+/* list all domain groups */
+static NTSTATUS builtin_enum_dom_groups(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ uint32 *num_entries,
+ struct acct_info **info)
+{
+ /* BUILTIN doesn't have domain groups */
+ *num_entries = 0;
+ *info = NULL;
+ return NT_STATUS_OK;
+}
+
/* Query display info for a domain. This returns enough information plus a
bit extra to give an overview of domain users for the User Manager
application. */
@@ -426,6 +425,19 @@ static NTSTATUS builtin_trusted_domains(struct winbindd_domain *domain,
SAM specific functions.
*********************************************************************/
+/* list all domain groups */
+static NTSTATUS sam_enum_dom_groups(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ uint32 *num_entries,
+ struct acct_info **info)
+{
+ return enum_groups_internal(domain,
+ mem_ctx,
+ num_entries,
+ info,
+ SID_NAME_DOM_GRP);
+}
+
static NTSTATUS sam_query_user_list(struct winbindd_domain *domain,
TALLOC_CTX *mem_ctx,
uint32 *num_entries,
@@ -688,7 +700,7 @@ static NTSTATUS sam_trusted_domains(struct winbindd_domain *domain,
struct winbindd_methods builtin_passdb_methods = {
false,
builtin_query_user_list,
- enum_dom_groups,
+ builtin_enum_dom_groups,
enum_local_groups,
name_to_sid,
sid_to_name,
@@ -707,7 +719,7 @@ struct winbindd_methods builtin_passdb_methods = {
struct winbindd_methods sam_passdb_methods = {
false,
sam_query_user_list,
- enum_dom_groups,
+ sam_enum_dom_groups,
enum_local_groups,
name_to_sid,
sid_to_name,