diff options
Diffstat (limited to 'source/nsswitch/winbindd_rpc.c')
-rw-r--r-- | source/nsswitch/winbindd_rpc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/nsswitch/winbindd_rpc.c b/source/nsswitch/winbindd_rpc.c index 684ce5ac288..39433419b0b 100644 --- a/source/nsswitch/winbindd_rpc.c +++ b/source/nsswitch/winbindd_rpc.c @@ -331,7 +331,15 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain, int i; *num_groups = 0; - *user_gids = NULL; + + /* First try cached universal groups from logon */ + *user_gids = uni_group_cache_fetch(&domain->sid, user_rid, mem_ctx, num_groups); + if((*num_groups > 0) && *user_gids) { + return NT_STATUS_OK; + } else { + *user_gids = NULL; + *num_groups = 0; + } /* Get sam handle */ if (!(hnd = cm_get_sam_handle(domain->name))) |