svn commit: samba r9700 - in branches/SAMBA_4_0/source: lib/samba3 scripting/ejs

jelmer at samba.org jelmer at samba.org
Sun Aug 28 01:37:28 GMT 2005


Author: jelmer
Date: 2005-08-28 01:37:27 +0000 (Sun, 28 Aug 2005)
New Revision: 9700

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

Log:
Change DATA_BLOB in ejs back to struct datablob
Support writing idmap mappings to winbind.ldif

Modified:
   branches/SAMBA_4_0/source/lib/samba3/idmap.c
   branches/SAMBA_4_0/source/lib/samba3/samba3.c
   branches/SAMBA_4_0/source/lib/samba3/upgrade.c
   branches/SAMBA_4_0/source/scripting/ejs/mprutil.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/samba3/idmap.c
===================================================================
--- branches/SAMBA_4_0/source/lib/samba3/idmap.c	2005-08-28 00:34:14 UTC (rev 9699)
+++ branches/SAMBA_4_0/source/lib/samba3/idmap.c	2005-08-28 01:37:27 UTC (rev 9700)
@@ -46,7 +46,7 @@
 
 	/* Open idmap repository */
 	if (!(tdb = tdb_open(fn, 0, TDB_DEFAULT, O_RDONLY, 0644))) {
-		DEBUG(0, ("idmap_init: Unable to open idmap database\n"));
+		DEBUG(0, ("idmap_init: Unable to open idmap database '%s'\n", fn));
 		return NT_STATUS_UNSUCCESSFUL;
 	}
 

Modified: branches/SAMBA_4_0/source/lib/samba3/samba3.c
===================================================================
--- branches/SAMBA_4_0/source/lib/samba3/samba3.c	2005-08-28 00:34:14 UTC (rev 9699)
+++ branches/SAMBA_4_0/source/lib/samba3/samba3.c	2005-08-28 01:37:27 UTC (rev 9700)
@@ -107,7 +107,7 @@
 	samba3_read_grouptdb(dbfile, ctx, &ret->group);
 	SAFE_FREE(dbfile);
 
-	asprintf(&dbfile, "%s/idmap.tdb", libdir);
+	asprintf(&dbfile, "%s/winbindd_idmap.tdb", libdir);
 	samba3_read_idmap(dbfile, ctx, &ret->idmap);
 	SAFE_FREE(dbfile);
 

Modified: branches/SAMBA_4_0/source/lib/samba3/upgrade.c
===================================================================
--- branches/SAMBA_4_0/source/lib/samba3/upgrade.c	2005-08-28 00:34:14 UTC (rev 9699)
+++ branches/SAMBA_4_0/source/lib/samba3/upgrade.c	2005-08-28 01:37:27 UTC (rev 9700)
@@ -109,16 +109,48 @@
 	return count;
 }
 
-int samba3_upgrade_sam(struct samba3 *samba3, struct ldb_context *ctx, struct ldb_message ***msgs)
+int samba3_upgrade_sam(struct samba3 *samba3, struct ldb_context *ldb, struct ldb_message ***msgs)
 {
+	int count = 0;
+	struct ldb_message *msg;
+	struct ldb_dn *domaindn = NULL;
+	*msgs = NULL;
+
+	/* Domain */	
+	msg = msg_array_add(ldb, msgs, &count);
+
+	/* FIXME: Guess domain DN by taking ldap bind dn? */
+
 	/* FIXME */
 	return -1;
 }
 
-int samba3_upgrade_winbind(struct samba3 *samba3, struct ldb_context *ctx, struct ldb_message ***msgs)
+int samba3_upgrade_winbind(struct samba3 *samba3, struct ldb_context *ldb, struct ldb_message ***msgs)
 {
-	/* FIXME */
-	return -1;
+	int i;
+	int count = 0;
+	struct ldb_message *msg;
+	struct ldb_dn *basedn = NULL;
+	*msgs = NULL;
+
+	msg = msg_array_add(ldb, msgs, &count);
+
+	msg->dn = basedn; 
+	
+	ldb_msg_add_fmt(ldb, msg, "userHwm", "%d", samba3->idmap.user_hwm);
+	ldb_msg_add_fmt(ldb, msg, "groupHwm", "%d", samba3->idmap.group_hwm);
+
+	for (i = 0; i < samba3->idmap.mapping_count; i++) {
+		char *sid = dom_sid_string(msg, samba3->idmap.mappings[i].sid);
+		msg = msg_array_add(ldb, msgs, &count);
+		
+		msg->dn = ldb_dn_build_child(ldb, "SID", sid, basedn);
+		ldb_msg_add_string(ldb, msg, "SID", sid);
+		ldb_msg_add_fmt(ldb, msg, "type", "%d", samba3->idmap.mappings[i].type);
+		ldb_msg_add_fmt(ldb, msg, "unixID", "%u", samba3->idmap.mappings[i].unix_id);
+	}
+	
+	return count;
 }
 
 int samba3_upgrade_winsdb(struct samba3 *samba3, struct ldb_context *ldb, struct ldb_message ***msgs)

Modified: branches/SAMBA_4_0/source/scripting/ejs/mprutil.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/mprutil.c	2005-08-28 00:34:14 UTC (rev 9699)
+++ branches/SAMBA_4_0/source/scripting/ejs/mprutil.c	2005-08-28 01:37:27 UTC (rev 9700)
@@ -323,7 +323,7 @@
 struct MprVar mprDataBlob(DATA_BLOB blob)
 {
 	struct MprVar res;
-	DATA_BLOB *pblob = talloc(mprMemCtx(), DATA_BLOB);
+	struct datablob *pblob = talloc(mprMemCtx(), struct datablob);
 	*pblob = data_blob_talloc(pblob, blob.data, blob.length);
 
 	res = mprObject("DATA_BLOB");
@@ -337,9 +337,9 @@
 /*
   return a data blob from a mpr var created using mprDataBlob
 */
-struct data_blob *mprToDataBlob(struct MprVar *v)
+struct datablob *mprToDataBlob(struct MprVar *v)
 {
-	return talloc_get_type(mprGetPtr(v, "blob"), struct data_blob);
+	return talloc_get_type(mprGetPtr(v, "blob"), struct datablob);
 }
 
 /*



More information about the samba-cvs mailing list