diff options
author | Jeremy Allison <jra@samba.org> | 2008-06-25 15:23:32 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-06-25 15:23:32 -0700 |
commit | ae16606a90291664c7e43ea9316af3167a2d7642 (patch) | |
tree | 1bc016b167387e0e0693954f3bc58ebb5a0cc9d5 | |
parent | 7687a225104bbec47a672da60125af6ff580c817 (diff) | |
download | samba-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)
-rw-r--r-- | source3/winbindd/winbindd_passdb.c | 42 |
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, |