summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd_rpc.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-02-13 11:15:40 +0100
committerGünther Deschner <gd@samba.org>2008-02-13 11:18:36 +0100
commitce7d5975b48e538779c5bd10f45677b0ea23ae80 (patch)
tree61e19cda6957238a04fc98336237ea6c6c9e33df /source3/winbindd/winbindd_rpc.c
parent4843df31de6f52b1e790bbd603ff1ac999176ca3 (diff)
downloadsamba-ce7d5975b48e538779c5bd10f45677b0ea23ae80.tar.gz
samba-ce7d5975b48e538779c5bd10f45677b0ea23ae80.tar.bz2
samba-ce7d5975b48e538779c5bd10f45677b0ea23ae80.zip
Convert last caller (in winbindd) to rpccli_samr_EnumDomainAliases.
Guenther (This used to be commit 33a97b447c1875bf1cd5a703871a84a7fb359fec)
Diffstat (limited to 'source3/winbindd/winbindd_rpc.c')
-rw-r--r--source3/winbindd/winbindd_rpc.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/source3/winbindd/winbindd_rpc.c b/source3/winbindd/winbindd_rpc.c
index 53928225fa..585923410f 100644
--- a/source3/winbindd/winbindd_rpc.c
+++ b/source3/winbindd/winbindd_rpc.c
@@ -220,18 +220,21 @@ static NTSTATUS enum_local_groups(struct winbindd_domain *domain,
return result;
do {
- struct acct_info *info2 = NULL;
+ struct samr_SamArray *sam_array = NULL;
uint32 count = 0, start = *num_entries;
TALLOC_CTX *mem_ctx2;
+ int g;
mem_ctx2 = talloc_init("enum_dom_local_groups[rpc]");
- result = rpccli_samr_enum_als_groups( cli, mem_ctx2, &dom_pol,
- &start, 0xFFFF, &info2,
- &count);
-
+ result = rpccli_samr_EnumDomainAliases(cli, mem_ctx2,
+ &dom_pol,
+ &start,
+ &sam_array,
+ 0xFFFF, /* buffer size? */
+ &count);
if (!NT_STATUS_IS_OK(result) &&
- !NT_STATUS_EQUAL(result, STATUS_MORE_ENTRIES) )
+ !NT_STATUS_EQUAL(result, STATUS_MORE_ENTRIES) )
{
talloc_destroy(mem_ctx2);
return result;
@@ -245,7 +248,13 @@ static NTSTATUS enum_local_groups(struct winbindd_domain *domain,
return NT_STATUS_NO_MEMORY;
}
- memcpy(&(*info)[*num_entries], info2, count*sizeof(*info2));
+ for (g=0; g < count; g++) {
+
+ fstrcpy((*info)[*num_entries + g].acct_name,
+ sam_array->entries[g].name.string);
+ (*info)[*num_entries + g].rid = sam_array->entries[g].idx;
+ }
+
(*num_entries) += count;
talloc_destroy(mem_ctx2);