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); } /*
