diff options
author | Gerald Carter <jerry@samba.org> | 2004-04-20 02:37:49 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:51:17 -0500 |
commit | f7cf0aaa6f5cb10f2a52b2b76efc0e4dbe6bea91 (patch) | |
tree | c6f53f29576d7e8cf96233c768cfa3dd3d932215 /source3/nsswitch/winbindd_rpc.c | |
parent | 1f7900ebda8a89f71a6e7293b151effbc6c86d6f (diff) | |
download | samba-f7cf0aaa6f5cb10f2a52b2b76efc0e4dbe6bea91.tar.gz samba-f7cf0aaa6f5cb10f2a52b2b76efc0e4dbe6bea91.tar.bz2 samba-f7cf0aaa6f5cb10f2a52b2b76efc0e4dbe6bea91.zip |
r294: checking in volker's winbindd patches; tested on domain members (Samba and AD) as well as on a Samba DC
(This used to be commit 157d53782d6a7d0b7e30676a674ff2a25a15369c)
Diffstat (limited to 'source3/nsswitch/winbindd_rpc.c')
-rw-r--r-- | source3/nsswitch/winbindd_rpc.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/source3/nsswitch/winbindd_rpc.c b/source3/nsswitch/winbindd_rpc.c index 25d5f64df6..7668844920 100644 --- a/source3/nsswitch/winbindd_rpc.c +++ b/source3/nsswitch/winbindd_rpc.c @@ -274,8 +274,9 @@ static NTSTATUS enum_local_groups(struct winbindd_domain *domain, } /* convert a single name to a sid in a domain */ -static NTSTATUS name_to_sid(struct winbindd_domain *domain, +NTSTATUS msrpc_name_to_sid(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, + const char *domain_name, const char *name, DOM_SID *sid, enum SID_NAME_USE *type) @@ -289,14 +290,14 @@ static NTSTATUS name_to_sid(struct winbindd_domain *domain, DEBUG(3,("rpc: name_to_sid name=%s\n", name)); - full_name = talloc_asprintf(mem_ctx, "%s\\%s", domain->name, name); + full_name = talloc_asprintf(mem_ctx, "%s\\%s", domain_name, name); if (!full_name) { DEBUG(0, ("talloc_asprintf failed!\n")); return NT_STATUS_NO_MEMORY; } - DEBUG(3,("name_to_sid [rpc] %s for domain %s\n", name, domain->name )); + DEBUG(3,("name_to_sid [rpc] %s for domain %s\n", name, domain_name )); retry = 0; do { @@ -322,9 +323,10 @@ static NTSTATUS name_to_sid(struct winbindd_domain *domain, /* convert a domain SID to a user or group name */ -static NTSTATUS sid_to_name(struct winbindd_domain *domain, +NTSTATUS msrpc_sid_to_name(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, const DOM_SID *sid, + char **domain_name, char **name, enum SID_NAME_USE *type) { @@ -350,14 +352,9 @@ static NTSTATUS sid_to_name(struct winbindd_domain *domain, if (NT_STATUS_IS_OK(result)) { *type = (enum SID_NAME_USE)types[0]; + *domain_name = domains[0]; *name = names[0]; DEBUG(5,("Mapped sid to [%s]\\[%s]\n", domains[0], *name)); - - /* Paranoia */ - if (!strequal(domain->name, domains[0])) { - DEBUG(1, ("domain name from domain param and PDC lookup return differ! (%s vs %s)\n", domain->name, domains[0])); - return NT_STATUS_UNSUCCESSFUL; - } } return result; @@ -995,8 +992,8 @@ struct winbindd_methods msrpc_methods = { query_user_list, enum_dom_groups, enum_local_groups, - name_to_sid, - sid_to_name, + msrpc_name_to_sid, + msrpc_sid_to_name, query_user, lookup_usergroups, lookup_groupmem, |