From fecdaec41c70916dc8e591c6e98e830c0f5cb0b1 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 19 Apr 2005 07:12:44 +0000 Subject: r6385: Convert checking of egid and secondary egid list into iterator functions so it can be used easily in a for loop. Drops duplicated code from posix_acls.c Jeremy. (This used to be commit 81f30bf5985f5c6dc8399c4695dfa6f14140fde1) --- source3/smbd/uid.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'source3/smbd/uid.c') diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c index 77dc19b87b..d1ecaf6625 100644 --- a/source3/smbd/uid.c +++ b/source3/smbd/uid.c @@ -23,6 +23,29 @@ /* what user is current? */ extern struct current_user current_user; +/**************************************************************************** + Iterator functions for getting all gid's from current_user. +****************************************************************************/ + +gid_t get_current_user_gid_first(int *piterator) +{ + *piterator = 0; + return current_user.gid; +} + +gid_t get_current_user_gid_next(int *piterator) +{ + gid_t ret; + + if (!current_user.groups || *piterator >= current_user.ngroups) { + return (gid_t)-1; + } + + ret = current_user.groups[*piterator]; + (*piterator) += 1; + return ret; +} + /**************************************************************************** Become the guest user without changing the security context stack. ****************************************************************************/ -- cgit