svn commit: samba r12527 - in trunk/source: lib passdb sam

vlendec at samba.org vlendec at samba.org
Tue Dec 27 22:42:24 GMT 2005


Author: vlendec
Date: 2005-12-27 22:42:23 +0000 (Tue, 27 Dec 2005)
New Revision: 12527

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12527

Log:
Remove get_free_rid_range. This was called only from within tdb and ldapsam,
both of which defined pdb_rid_algorithm to true. In that case BASE_RID was
chosen.

Volker

Modified:
   trunk/source/lib/smbldap_util.c
   trunk/source/passdb/passdb.c
   trunk/source/sam/idmap_tdb.c


Changeset:
Modified: trunk/source/lib/smbldap_util.c
===================================================================
--- trunk/source/lib/smbldap_util.c	2005-12-27 22:32:49 UTC (rev 12526)
+++ trunk/source/lib/smbldap_util.c	2005-12-27 22:42:23 UTC (rev 12527)
@@ -103,9 +103,6 @@
 	LDAPMessage *result = NULL;
 	int num_result;
 	const char **attr_list;
-	uid_t u_low, u_high;
-	gid_t g_low, g_high;
-	uint32 rid_low, rid_high;
 
 	slprintf (filter, sizeof (filter) - 1, "(&(%s=%s)(objectclass=%s))", 
 		  get_attr_key2string(dominfo_attr_list, LDAP_ATTR_DOMAIN), 
@@ -152,27 +149,17 @@
 			algorithmic_rid_base_string);
 	smbldap_set_mod(&mods, LDAP_MOD_ADD, "objectclass", LDAP_OBJ_DOMINFO);
 	
-	/* add the sambaNext[User|Group]Rid attributes if the idmap ranges are set.
-	   TODO: fix all the places where the line between idmap and normal operations
-	   needed by smbd gets fuzzy   --jerry 2003-08-11                              */
+	/* add the sambaNextUserRid attributes. */
 	
-	if ( lp_idmap_uid(&u_low, &u_high) && lp_idmap_gid(&g_low, &g_high)
-		&& get_free_rid_range(&rid_low, &rid_high) ) 
 	{
+		uint32 rid = BASE_RID;
 		fstring rid_str;
 		
-		fstr_sprintf( rid_str, "%i", rid_low|USER_RID_TYPE );
+		fstr_sprintf( rid_str, "%i", rid );
 		DEBUG(10,("setting next available user rid [%s]\n", rid_str));
 		smbldap_set_mod(&mods, LDAP_MOD_ADD, 
 			get_attr_key2string(dominfo_attr_list, LDAP_ATTR_NEXT_USERRID), 
 			rid_str);
-			
-		fstr_sprintf( rid_str, "%i", rid_low|GROUP_RID_TYPE );
-		DEBUG(10,("setting next available group rid [%s]\n", rid_str));
-		smbldap_set_mod(&mods, LDAP_MOD_ADD, 
-			get_attr_key2string(dominfo_attr_list, LDAP_ATTR_NEXT_GROUPRID), 
-			rid_str);
-		
         }
 
 

Modified: trunk/source/passdb/passdb.c
===================================================================
--- trunk/source/passdb/passdb.c	2005-12-27 22:32:49 UTC (rev 12526)
+++ trunk/source/passdb/passdb.c	2005-12-27 22:42:23 UTC (rev 12527)
@@ -1926,52 +1926,6 @@
 	return result;
 }
 
-/**********************************************************************
-**********************************************************************/
-
-static BOOL get_free_ugid_range(uint32 *low, uint32 *high)
-{
-	uid_t u_low, u_high;
-	gid_t g_low, g_high;
-
-	if (!lp_idmap_uid(&u_low, &u_high) || !lp_idmap_gid(&g_low, &g_high)) {
-		return False;
-	}
-	
-	*low  = (u_low < g_low)   ? u_low  : g_low;
-	*high = (u_high < g_high) ? u_high : g_high;
-	
-	return True;
-}
-
-/******************************************************************
- Get the the non-algorithmic RID range if idmap range are defined
-******************************************************************/
-
-BOOL get_free_rid_range(uint32 *low, uint32 *high)
-{
-	uint32 id_low, id_high;
-
-	if (!pdb_rid_algorithm()) {
-		*low = BASE_RID;
-		*high = (uint32)-1;
-		return True;
-	}
-
-	if (!get_free_ugid_range(&id_low, &id_high)) {
-		return False;
-	}
-
-	*low = algorithmic_pdb_uid_to_user_rid(id_low);
-	if (algorithmic_pdb_user_rid_to_uid((uint32)-1) < id_high) {
-		*high = (uint32)-1;
-	} else {
-		*high = algorithmic_pdb_uid_to_user_rid(id_high);
-	}
-
-	return True;
-}
-
 /*********************************************************************
  Update the bad password count checking the AP_RESET_COUNT_TIME 
 *********************************************************************/

Modified: trunk/source/sam/idmap_tdb.c
===================================================================
--- trunk/source/sam/idmap_tdb.c	2005-12-27 22:32:49 UTC (rev 12526)
+++ trunk/source/sam/idmap_tdb.c	2005-12-27 22:42:23 UTC (rev 12527)
@@ -51,21 +51,19 @@
 
 static NTSTATUS db_allocate_rid(uint32 *rid)
 {
-	uint32 lowrid, highrid;
 	uint32 tmp_rid;
-
-	/* cannot fail since idmap is only called winbindd */
 	
-	get_free_rid_range( &lowrid, &highrid );
+	tmp_rid = BASE_RID;	/* Default if RID_COUNTER is not set */
 	
-	tmp_rid = lowrid;
-	
-	if ( !tdb_change_uint32_atomic(idmap_tdb, "RID_COUNTER", &tmp_rid, RID_MULTIPLIER) ) {
-		DEBUG(3,("db_allocate_rid: Failed to locate next rid record in idmap db\n"));
+	if ( !tdb_change_uint32_atomic(idmap_tdb, "RID_COUNTER",
+				       &tmp_rid, 1) ) {
+		DEBUG(3,("db_allocate_rid: Failed to locate next rid record "
+			 "in idmap db\n"));
 		return NT_STATUS_UNSUCCESSFUL;
 	}
 	
-	if ( tmp_rid > highrid ) {
+	if ( tmp_rid > 0xfffffff0 ) {
+		/* Not sure this limit is right... */
 		DEBUG(0, ("db_allocate_rid: no RIDs available!\n"));
 		return NT_STATUS_UNSUCCESSFUL;
 	}



More information about the samba-cvs mailing list