diff options
author | Jeremy Allison <jra@samba.org> | 2008-06-26 14:02:39 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-06-26 14:02:39 -0700 |
commit | 120c09b125f656d6d03b979560f3ef6652217691 (patch) | |
tree | c7f5db8defa25852acacb3e1eebaaba4b2bc3e04 /source3/winbindd/winbindd_proto.h | |
parent | 23cafd02d3222b910dbc30a7eab20ebdcc81ab33 (diff) | |
download | samba-120c09b125f656d6d03b979560f3ef6652217691.tar.gz samba-120c09b125f656d6d03b979560f3ef6652217691.tar.bz2 samba-120c09b125f656d6d03b979560f3ef6652217691.zip |
From Steve Danneman @ Isilon.
Attached is the companion patch to
(037b9689d9042a398cb91e4628a82fcdfa913c21), which
made handling of WINBINDD_LIST_GROUPS asynchronous.
Because most all of the list_groups code was reusable, I abstracted it,
and implemented both list_groups and list_users on top of it.
On my large test domain a "wbinfo -u" call went from 70 seconds to 30
seconds with this patch. Plus, the parent process is no longer blocked
from receiving new requests during that time.
Steven Danneman | Software Development Engineer
Isilon Systems P +1-206-315-7500 F +1-206-315-7501
www.isilon.com
(This used to be commit 5188f2861137ff06d5399561d55d7d00c3a08644)
Diffstat (limited to 'source3/winbindd/winbindd_proto.h')
-rw-r--r-- | source3/winbindd/winbindd_proto.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h index 356d4aaf79..84ea67b9ec 100644 --- a/source3/winbindd/winbindd_proto.h +++ b/source3/winbindd/winbindd_proto.h @@ -104,6 +104,15 @@ void winbindd_lookupname_async(TALLOC_CTX *mem_ctx, void *private_data); enum winbindd_result winbindd_dual_lookupname(struct winbindd_domain *domain, struct winbindd_cli_state *state); +void winbindd_listent_async(TALLOC_CTX *mem_ctx, + struct winbindd_domain *domain, + void (*cont)(void *private_data, bool success, + fstring dom_name, char* extra_data), + void *private_data, enum ent_type type); +enum winbindd_result winbindd_dual_list_users(struct winbindd_domain *domain, + struct winbindd_cli_state *state); +enum winbindd_result winbindd_dual_list_groups(struct winbindd_domain *domain, + struct winbindd_cli_state *state); bool print_sidlist(TALLOC_CTX *mem_ctx, const DOM_SID *sids, size_t num_sids, char **result, ssize_t *len); enum winbindd_result winbindd_dual_lookuprids(struct winbindd_domain *domain, @@ -133,16 +142,6 @@ void query_user_async(TALLOC_CTX *mem_ctx, struct winbindd_domain *domain, uint32 group_rid), void *private_data); -void winbindd_listgroups_async(TALLOC_CTX *mem_ctx, - struct winbindd_domain *domain, - void (*cont)(void *private_data, bool success, - fstring dom_name, char* extra_data), - void *private_data); - -enum winbindd_result winbindd_dual_list_groups(struct winbindd_domain *domain, - struct winbindd_cli_state *state); - - /* The following definitions come from winbindd/winbindd_cache.c */ void winbindd_check_cache_size(time_t t); @@ -394,6 +393,7 @@ void winbindd_dsgetdcname(struct winbindd_cli_state *state); void winbindd_check_machine_acct(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_check_machine_acct(struct winbindd_domain *domain, struct winbindd_cli_state *state); +void winbindd_list_ent(struct winbindd_cli_state *state, enum ent_type type); void winbindd_list_trusted_domains(struct winbindd_cli_state *state); enum winbindd_result winbindd_dual_list_trusted_domains(struct winbindd_domain *domain, struct winbindd_cli_state *state); |