summaryrefslogtreecommitdiff
path: root/source4/lib/samba3/idmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/samba3/idmap.c')
-rw-r--r--source4/lib/samba3/idmap.c98
1 files changed, 0 insertions, 98 deletions
diff --git a/source4/lib/samba3/idmap.c b/source4/lib/samba3/idmap.c
deleted file mode 100644
index 3eeb2931a8..0000000000
--- a/source4/lib/samba3/idmap.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- idmap TDB backend
-
- Copyright (C) Tim Potter 2000
- Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003
- Copyright (C) Simo Sorce 2003
- Copyright (C) Jelmer Vernooij 2005
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "lib/tdb/include/tdb.h"
-#include "lib/util/util_tdb.h"
-#include "lib/samba3/samba3.h"
-#include "system/filesys.h"
-#include "libcli/security/security.h"
-
-/* High water mark keys */
-#define HWM_GROUP "GROUP HWM"
-#define HWM_USER "USER HWM"
-
-/* idmap version determines auto-conversion */
-#define IDMAP_VERSION 2
-
-/*****************************************************************************
- Initialise idmap database.
-*****************************************************************************/
-
-NTSTATUS samba3_read_idmap(const char *fn, TALLOC_CTX *ctx, struct samba3_idmapdb *idmap)
-{
- TDB_CONTEXT *tdb;
- TDB_DATA key, val;
- int32_t version;
-
- /* Open idmap repository */
- if (!(tdb = tdb_open(fn, 0, TDB_DEFAULT, O_RDONLY, 0644))) {
- DEBUG(0, ("idmap_init: Unable to open idmap database '%s'\n", fn));
- return NT_STATUS_UNSUCCESSFUL;
- }
-
- idmap->mapping_count = 0;
- idmap->mappings = NULL;
- idmap->user_hwm = tdb_fetch_int32(tdb, HWM_USER);
- idmap->group_hwm = tdb_fetch_int32(tdb, HWM_GROUP);
-
- /* check against earlier versions */
- version = tdb_fetch_int32(tdb, "IDMAP_VERSION");
- if (version != IDMAP_VERSION) {
- DEBUG(0, ("idmap_init: Unable to open idmap database, it's in an old format!\n"));
- return NT_STATUS_INTERNAL_DB_ERROR;
- }
-
- for (key = tdb_firstkey(tdb); key.dptr; key = tdb_nextkey(tdb, key))
- {
- struct samba3_idmap_mapping map;
- const char *k = (const char *)key.dptr;
- const char *v;
-
- if (strncmp(k, "GID ", 4) == 0) {
- map.type = IDMAP_GROUP;
- map.unix_id = atoi(k+4);
- val = tdb_fetch(tdb, key);
- v = (const char *)val.dptr;
- map.sid = dom_sid_parse_talloc(ctx, v);
- } else if (strncmp(k, "UID ", 4) == 0) {
- map.type = IDMAP_USER;
- map.unix_id = atoi(k+4);
- val = tdb_fetch(tdb, key);
- v = (const char *)val.dptr;
- map.sid = dom_sid_parse_talloc(ctx, v);
- } else {
- continue;
- }
-
- idmap->mappings = talloc_realloc(ctx, idmap->mappings, struct samba3_idmap_mapping, idmap->mapping_count+1);
-
- idmap->mappings[idmap->mapping_count] = map;
- idmap->mapping_count++;
- }
-
- tdb_close(tdb);
-
- return NT_STATUS_OK;
-}