idmap_autorid: add idmap_autorid_getrange()
authorMichael Adam <obnox@samba.org>
Tue, 10 Sep 2013 23:04:13 +0000 (01:04 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 1 Oct 2013 08:49:16 +0000 (10:49 +0200)
Wrapper to idmap_autorid_getrange_int().

Signed-off-by: Michael Adam <obnox@samba.org>
source3/include/idmap_autorid.h
source3/winbindd/idmap_autorid_tdb.c

index f39062f0e4d1a4dbcc47cb38aede0eebd0f7b5df..6ac56b31b976d70ffb10601499642cd1d795c247 100644 (file)
@@ -55,6 +55,16 @@ NTSTATUS idmap_autorid_get_domainrange(struct db_context *db,
                                       struct autorid_range_config *range,
                                       bool read_only);
 
+/**
+ * get the domain range and low_id for the domain
+ * identified by domsid and domain_range_index
+ */
+NTSTATUS idmap_autorid_getrange(struct db_context *db,
+                               const char *domsid,
+                               uint32_t domain_range_index,
+                               uint32_t *rangenum,
+                               uint32_t *low_id);
+
 NTSTATUS idmap_autorid_init_hwm(struct db_context *db, const char *hwm);
 
 NTSTATUS idmap_autorid_db_init(const char *path,
index 54d59bfaff4843e994dc621d25c6491b8b1adbee..18e1501aec50db3fe955c27ff11e11b33eaf12d6 100644 (file)
@@ -174,6 +174,37 @@ done:
        return status;
 }
 
+NTSTATUS idmap_autorid_getrange(struct db_context *db,
+                               const char *domsid,
+                               uint32_t domain_range_index,
+                               uint32_t *rangenum,
+                               uint32_t *low_id)
+{
+       NTSTATUS status;
+       struct autorid_range_config range;
+
+       if (rangenum == NULL) {
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       ZERO_STRUCT(range);
+       fstrcpy(range.domsid, domsid);
+       range.domain_range_index = domain_range_index;
+
+       status = idmap_autorid_getrange_int(db, &range);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       *rangenum = range.rangenum;
+
+       if (low_id != NULL) {
+               *low_id = range.low_id;
+       }
+
+       return NT_STATUS_OK;
+}
+
 NTSTATUS idmap_autorid_get_domainrange(struct db_context *db,
                                       struct autorid_range_config *range,
                                       bool read_only)