diff options
author | Volker Lendecke <vlendec@samba.org> | 2005-04-15 13:41:49 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:56:38 -0500 |
commit | d3d6126d94d55a69c45b2f7a63a7fa9b561baf48 (patch) | |
tree | ce4e45d5571fb0e1a090b59ffa74a56b8a883334 /source3/groupdb | |
parent | 496c6f088492e3f74bba11da21ffc8855b2eb7f9 (diff) | |
download | samba-d3d6126d94d55a69c45b2f7a63a7fa9b561baf48.tar.gz samba-d3d6126d94d55a69c45b2f7a63a7fa9b561baf48.tar.bz2 samba-d3d6126d94d55a69c45b2f7a63a7fa9b561baf48.zip |
r6351: This is quite a large and intrusive patch, but there are not many pieces that
can be taken out of it, so I decided to commit this in one lump. It changes
the passdb enumerating functions to use ldap paged results where possible. In
particular the samr calls querydispinfo, enumdomusers and friends have
undergone significant internal changes. I have tested this extensively with
rpcclient and a bit with usrmgr.exe. More tests and the merge to trunk will
follow later.
The code is based on a first implementation by Günther Deschner, but has
evolved quite a bit since then.
Volker
(This used to be commit f0bb44ac58e190e19eb4e92928979b0446e611c9)
Diffstat (limited to 'source3/groupdb')
-rw-r--r-- | source3/groupdb/mapping.c | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/source3/groupdb/mapping.c b/source3/groupdb/mapping.c index 6e9d9b8e6c..459c66bdf7 100644 --- a/source3/groupdb/mapping.c +++ b/source3/groupdb/mapping.c @@ -1247,53 +1247,6 @@ NTSTATUS pdb_default_delete_alias(struct pdb_methods *methods, NT_STATUS_OK : NT_STATUS_ACCESS_DENIED; } -NTSTATUS pdb_default_enum_aliases(struct pdb_methods *methods, - const DOM_SID *sid, - uint32 start_idx, uint32 max_entries, - uint32 *num_aliases, - struct acct_info **info) -{ - GROUP_MAP *map; - int i, num_maps; - enum SID_NAME_USE type = SID_NAME_UNKNOWN; - - if (sid_compare(sid, get_global_sam_sid()) == 0) - type = SID_NAME_ALIAS; - - if (sid_compare(sid, &global_sid_Builtin) == 0) - type = SID_NAME_WKN_GRP; - - if (!pdb_enum_group_mapping(type, &map, &num_maps, False) || - (num_maps == 0)) { - *num_aliases = 0; - *info = NULL; - goto done; - } - - if (start_idx > num_maps) { - *num_aliases = 0; - *info = NULL; - goto done; - } - - *num_aliases = num_maps - start_idx; - - if (*num_aliases > max_entries) - *num_aliases = max_entries; - - *info = SMB_MALLOC_ARRAY(struct acct_info, *num_aliases); - - for (i=0; i<*num_aliases; i++) { - fstrcpy((*info)[i].acct_name, map[i+start_idx].nt_name); - fstrcpy((*info)[i].acct_desc, map[i+start_idx].comment); - sid_peek_rid(&map[i].sid, &(*info)[i+start_idx].rid); - } - - done: - SAFE_FREE(map); - return NT_STATUS_OK; -} - NTSTATUS pdb_default_get_aliasinfo(struct pdb_methods *methods, const DOM_SID *sid, struct acct_info *info) |