Commit 7cb9ca16 authored by Richard Sharpe's avatar Richard Sharpe Committed by Gerald (Jerry) Carter
Browse files

r505: Break out algorithmic_gid_to_sid so that those of us who need it can use it.

(This used to be commit 5d7ee320cca80558a4b71295ef8b7de02f21554a)
parent fc62b9fc
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -1176,6 +1176,24 @@ BOOL local_sid_to_uid(uid_t *puid, const DOM_SID *psid, enum SID_NAME_USE *name_
	return True;
}

/****************************************************************************
 Convert a gid to SID - algorithmic.
****************************************************************************/

DOM_SID *algorithmic_gid_to_sid(DOM_SID *psid, uid_t gid)
{
	if ( !lp_enable_rid_algorithm() )
		return NULL;

	DEBUG(8,("algorithmic_gid_to_sid: falling back to RID algorithm\n"));
	sid_copy( psid, get_global_sam_sid() );
	sid_append_rid( psid, pdb_gid_to_group_rid(gid) );
	DEBUG(10,("algorithmic_gid_to_sid:  gid (%d) -> SID %s.\n",
		(unsigned int)gid, sid_string_static(psid) ));

	return psid;
}

/****************************************************************************
 Convert a gid to SID - locally.
****************************************************************************/
@@ -1199,13 +1217,11 @@ DOM_SID *local_gid_to_sid(DOM_SID *psid, gid_t gid)
		/* fallback to rid mapping if enabled */

		if ( lp_enable_rid_algorithm() ) {
			sid_copy(psid, get_global_sam_sid());
			sid_append_rid(psid, pdb_gid_to_group_rid(gid));

			DEBUG(10,("local_gid_to_sid: Fall back to algorithmic mapping: %u -> %s\n", 
				(unsigned int)gid, sid_string_static(psid)));
				
			return psid;
			return algorithmic_gid_to_sid(psid, gid);
		}
		else
			return NULL;