diff options
author | Michael Adam <obnox@samba.org> | 2013-09-04 17:43:28 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2013-10-02 00:06:23 +0200 |
commit | 4350bfba4624710e66f0d9775d146086054a97cc (patch) | |
tree | c565314188e0303079d1553393ec98149808c3cf | |
parent | 6e08f5a7924fbf55477a1f53a72f23236c01c1d6 (diff) | |
download | samba-4350bfba4624710e66f0d9775d146086054a97cc.tar.gz samba-4350bfba4624710e66f0d9775d146086054a97cc.tar.bz2 samba-4350bfba4624710e66f0d9775d146086054a97cc.zip |
idmap_autorid: add new function idmap_autorid_setrange()
This allows to directly set a range for a domsid#index pair.
It fails if a stored range is found which is different from
the requested one.
Pair-Programmed-With: Atul Kulkarni <atul.kulkarni@in.ibm.com>
Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Atul Kulkarni <atul.kulkarni@in.ibm.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
-rw-r--r-- | source3/include/idmap_autorid_tdb.h | 9 | ||||
-rw-r--r-- | source3/winbindd/idmap_autorid_tdb.c | 17 |
2 files changed, 26 insertions, 0 deletions
diff --git a/source3/include/idmap_autorid_tdb.h b/source3/include/idmap_autorid_tdb.h index 6ac56b31b9..6f741966d6 100644 --- a/source3/include/idmap_autorid_tdb.h +++ b/source3/include/idmap_autorid_tdb.h @@ -65,6 +65,15 @@ NTSTATUS idmap_autorid_getrange(struct db_context *db, uint32_t *rangenum, uint32_t *low_id); +/** + * Set a range for a domain#index pair to a given + * number. Fail if a different range was already stored. + */ +NTSTATUS idmap_autorid_setrange(struct db_context *db, + const char *domsid, + uint32_t domain_range_index, + uint32_t rangenum); + NTSTATUS idmap_autorid_init_hwm(struct db_context *db, const char *hwm); NTSTATUS idmap_autorid_db_init(const char *path, diff --git a/source3/winbindd/idmap_autorid_tdb.c b/source3/winbindd/idmap_autorid_tdb.c index e5fccae551..4220a9c787 100644 --- a/source3/winbindd/idmap_autorid_tdb.c +++ b/source3/winbindd/idmap_autorid_tdb.c @@ -232,6 +232,23 @@ static NTSTATUS idmap_autorid_addrange(struct db_context *db, return status; } +NTSTATUS idmap_autorid_setrange(struct db_context *db, + const char *domsid, + uint32_t domain_range_index, + uint32_t rangenum) +{ + NTSTATUS status; + struct autorid_range_config range; + + ZERO_STRUCT(range); + fstrcpy(range.domsid, domsid); + range.domain_range_index = domain_range_index; + range.rangenum = rangenum; + + status = idmap_autorid_addrange(db, &range, false); + return status; +} + static NTSTATUS idmap_autorid_getrange_int(struct db_context *db, struct autorid_range_config *range) { |