s3:idmap_tdb: give idmap_domain arg to idmap_tdb_allocate_id and use ctx->db
authorMichael Adam <obnox@samba.org>
Thu, 17 Jun 2010 06:16:05 +0000 (08:16 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 23 Jun 2010 10:22:14 +0000 (12:22 +0200)
instead of alloc_db

source3/winbindd/idmap_tdb.c

index d0575a90d88537be6fafe2cdde5d58cdf1a37260..a51fd1d4c61c7b31188348e23a63c66fc826f2fa 100644 (file)
@@ -400,7 +400,8 @@ done:
        return ret;
 }
 
-static NTSTATUS idmap_tdb_allocate_id(struct unixid *xid)
+static NTSTATUS idmap_tdb_allocate_id(struct idmap_domain *dom,
+                                     struct unixid *xid)
 {
        const char *hwmkey;
        const char *hwmtype;
@@ -408,6 +409,9 @@ static NTSTATUS idmap_tdb_allocate_id(struct unixid *xid)
        uint32_t hwm = 0;
        NTSTATUS status;
        struct idmap_tdb_allocate_id_context state;
+       struct idmap_tdb_context *ctx;
+
+       ctx = talloc_get_type(dom->private_data, struct idmap_tdb_context);
 
        /* Get current high water mark */
        switch (xid->type) {
@@ -415,13 +419,11 @@ static NTSTATUS idmap_tdb_allocate_id(struct unixid *xid)
        case ID_TYPE_UID:
                hwmkey = HWM_USER;
                hwmtype = "UID";
-               high_hwm = idmap_tdb_state.high_uid;
                break;
 
        case ID_TYPE_GID:
                hwmkey = HWM_GROUP;
                hwmtype = "GID";
-               high_hwm = idmap_tdb_state.high_gid;
                break;
 
        default:
@@ -429,12 +431,14 @@ static NTSTATUS idmap_tdb_allocate_id(struct unixid *xid)
                return NT_STATUS_INVALID_PARAMETER;
        }
 
+       high_hwm = dom->high_id;
+
        state.hwm = hwm;
        state.high_hwm = high_hwm;
        state.hwmtype = hwmtype;
        state.hwmkey = hwmkey;
 
-       status = dbwrap_trans_do(idmap_alloc_db, idmap_tdb_allocate_id_action,
+       status = dbwrap_trans_do(ctx->db, idmap_tdb_allocate_id_action,
                                 &state);
 
        if (NT_STATUS_IS_OK(status)) {
@@ -466,7 +470,7 @@ static NTSTATUS idmap_tdb_get_new_id(struct idmap_domain *dom,
                return NT_STATUS_NOT_IMPLEMENTED;
        }
 
-       ret = idmap_tdb_allocate_id(id);
+       ret = idmap_tdb_allocate_id(dom, id);
 
        return ret;
 }