r9700: Change DATA_BLOB in ejs back to struct datablob
[kai/samba.git] / source / lib / samba3 / upgrade.c
index 941b0fe1961010d431bc822b659d6673755d681c..eeb77310ecbdbe953e82522fbd780a3939a33430 100644 (file)
@@ -109,16 +109,48 @@ int samba3_upgrade_registry(struct samba3_regdb *regdb, const char *prefix, stru
        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)