summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/winbindd/idmap_tdb2.c106
1 files changed, 51 insertions, 55 deletions
diff --git a/source3/winbindd/idmap_tdb2.c b/source3/winbindd/idmap_tdb2.c
index e80d21c9b8..520e1ebe1c 100644
--- a/source3/winbindd/idmap_tdb2.c
+++ b/source3/winbindd/idmap_tdb2.c
@@ -46,10 +46,6 @@ struct idmap_tdb2_context {
#define HWM_USER "USER HWM"
-static NTSTATUS idmap_tdb2_new_mapping(struct idmap_domain *dom,
- struct id_map *map);
-
-
/*
* check and initialize high/low water marks in the db
*/
@@ -427,6 +423,57 @@ done:
return ret;
}
+/**
+ * Create a new mapping for an unmapped SID, also allocating a new ID.
+ * This should be run inside a transaction.
+ *
+ * TODO:
+* Properly integrate this with multi domain idmap config:
+ * Currently, the allocator is default-config only.
+ */
+static NTSTATUS idmap_tdb2_new_mapping(struct idmap_domain *dom, struct id_map *map)
+{
+ NTSTATUS ret;
+
+ if (map == NULL) {
+ ret = NT_STATUS_INVALID_PARAMETER;
+ goto done;
+ }
+
+ if ((map->xid.type != ID_TYPE_UID) && (map->xid.type != ID_TYPE_GID)) {
+ ret = NT_STATUS_INVALID_PARAMETER;
+ goto done;
+ }
+
+ if (map->sid == NULL) {
+ ret = NT_STATUS_INVALID_PARAMETER;
+ goto done;
+ }
+
+ ret = idmap_tdb2_get_new_id(dom, &map->xid);
+ if (!NT_STATUS_IS_OK(ret)) {
+ DEBUG(3, ("Could not allocate id: %s\n", nt_errstr(ret)));
+ goto done;
+ }
+
+ DEBUG(10, ("Setting mapping: %s <-> %s %lu\n",
+ sid_string_dbg(map->sid),
+ (map->xid.type == ID_TYPE_UID) ? "UID" : "GID",
+ (unsigned long)map->xid.id));
+
+ map->status = ID_MAPPED;
+
+ /* store the mapping */
+ ret = idmap_tdb2_set_mapping(dom, map);
+ if (!NT_STATUS_IS_OK(ret)) {
+ DEBUG(3, ("Could not store the new mapping: %s\n",
+ nt_errstr(ret)));
+ }
+
+done:
+ return ret;
+}
+
/*
run a script to perform a mapping
@@ -837,57 +884,6 @@ static NTSTATUS idmap_tdb2_sids_to_unixids(struct idmap_domain *dom, struct id_m
}
-/**
- * Create a new mapping for an unmapped SID, also allocating a new ID.
- * This should be run inside a transaction.
- *
- * TODO:
-* Properly integrate this with multi domain idmap config:
- * Currently, the allocator is default-config only.
- */
-static NTSTATUS idmap_tdb2_new_mapping(struct idmap_domain *dom, struct id_map *map)
-{
- NTSTATUS ret;
-
- if (map == NULL) {
- ret = NT_STATUS_INVALID_PARAMETER;
- goto done;
- }
-
- if ((map->xid.type != ID_TYPE_UID) && (map->xid.type != ID_TYPE_GID)) {
- ret = NT_STATUS_INVALID_PARAMETER;
- goto done;
- }
-
- if (map->sid == NULL) {
- ret = NT_STATUS_INVALID_PARAMETER;
- goto done;
- }
-
- ret = idmap_tdb2_get_new_id(dom, &map->xid);
- if (!NT_STATUS_IS_OK(ret)) {
- DEBUG(3, ("Could not allocate id: %s\n", nt_errstr(ret)));
- goto done;
- }
-
- DEBUG(10, ("Setting mapping: %s <-> %s %lu\n",
- sid_string_dbg(map->sid),
- (map->xid.type == ID_TYPE_UID) ? "UID" : "GID",
- (unsigned long)map->xid.id));
-
- map->status = ID_MAPPED;
-
- /* store the mapping */
- ret = idmap_tdb2_set_mapping(dom, map);
- if (!NT_STATUS_IS_OK(ret)) {
- DEBUG(3, ("Could not store the new mapping: %s\n",
- nt_errstr(ret)));
- }
-
-done:
- return ret;
-}
-
/*
Close the idmap tdb instance
*/