diff options
-rw-r--r-- | source3/include/passdb.h | 5 | ||||
-rw-r--r-- | source3/passdb/pdb_unixid.c | 47 | ||||
-rwxr-xr-x | source3/wscript_build | 3 |
3 files changed, 54 insertions, 1 deletions
diff --git a/source3/include/passdb.h b/source3/include/passdb.h index b22d17aa63..ec724bccfa 100644 --- a/source3/include/passdb.h +++ b/source3/include/passdb.h @@ -917,4 +917,9 @@ NTSTATUS create_builtin_administrators(const struct dom_sid *sid); #include "passdb/machine_sid.h" #include "passdb/lookup_sid.h" +/* The following definitions come from passdb/pdb_unixid.c */ +void unixid_from_uid(struct unixid *id, uint32_t some_uid); +void unixid_from_gid(struct unixid *id, uint32_t some_gid); +void unixid_from_both(struct unixid *id, uint32_t some_id); + #endif /* _PASSDB_H */ diff --git a/source3/passdb/pdb_unixid.c b/source3/passdb/pdb_unixid.c new file mode 100644 index 0000000000..59b157668a --- /dev/null +++ b/source3/passdb/pdb_unixid.c @@ -0,0 +1,47 @@ +/* + * Unix SMB/CIFS implementation. + * IDMAP unixid utility functions + * Copyright (C) Alexander Bokovoy 2012 + * + * 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 "passdb.h" +#include "../librpc/gen_ndr/idmap.h" + +void unixid_from_uid(struct unixid *id, uint32_t some_uid) +{ + if(id) { + id->id = some_uid; + id->type = ID_TYPE_UID; + } +} + +void unixid_from_gid(struct unixid *id, uint32_t some_gid) +{ + if(id) { + id->id = some_gid; + id->type = ID_TYPE_GID; + } +} + +void unixid_from_both(struct unixid *id, uint32_t some_id) +{ + if(id) { + id->id = some_id; + id->type = ID_TYPE_BOTH; + } +} + diff --git a/source3/wscript_build b/source3/wscript_build index e517b402fb..69d988958d 100755 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -216,7 +216,8 @@ PASSDB_SRC = '''${PASSDB_GET_SET_SRC} passdb/passdb.c lib/util_nscd.c lib/winbind_util.c passdb/pdb_util.c passdb/pdb_interface.c passdb/pdb_ldap_schema.c - passdb/pdb_secrets.c''' + passdb/pdb_secrets.c + passdb/pdb_unixid.c''' #FIXME: lib/winbind_util.c probably is not part of PASSDB_SRC GROUPDB_SRC = '''groupdb/mapping.c groupdb/mapping_tdb.c''' |