summaryrefslogtreecommitdiff
path: root/source3/winbindd/wb_lookupname.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-08-27 14:16:22 +0200
committerVolker Lendecke <vl@samba.org>2009-08-27 15:04:09 +0200
commitc4a95f900a64649527a0a299eb52c352c51a2ae7 (patch)
treef7957a00d961325c7e2526ba4a3a68469747ab0c /source3/winbindd/wb_lookupname.c
parent94948f7a401df781ad64090a804a894cf2976a86 (diff)
downloadsamba-c4a95f900a64649527a0a299eb52c352c51a2ae7.tar.gz
samba-c4a95f900a64649527a0a299eb52c352c51a2ae7.tar.bz2
samba-c4a95f900a64649527a0a299eb52c352c51a2ae7.zip
s3:winbind: Remove the manual caching for the async wb_ functions
The generic NDR-based cache in winbindd_dual_ndr.c replaces this.
Diffstat (limited to 'source3/winbindd/wb_lookupname.c')
-rw-r--r--source3/winbindd/wb_lookupname.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/source3/winbindd/wb_lookupname.c b/source3/winbindd/wb_lookupname.c
index 12e1babcda..6251d030be 100644
--- a/source3/winbindd/wb_lookupname.c
+++ b/source3/winbindd/wb_lookupname.c
@@ -41,34 +41,36 @@ struct tevent_req *wb_lookupname_send(TALLOC_CTX *mem_ctx,
struct tevent_req *req, *subreq;
struct wb_lookupname_state *state;
struct winbindd_domain *domain;
- NTSTATUS status;
req = tevent_req_create(mem_ctx, &state, struct wb_lookupname_state);
if (req == NULL) {
return NULL;
}
state->ev = ev;
- state->dom_name = dom_name;
- state->name = name;
state->flags = flags;
- domain = find_lookup_domain_from_name(dom_name);
- if (domain == NULL) {
- DEBUG(5, ("Could not find domain for %s\n", dom_name));
- tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
+ /*
+ * Uppercase domain and name so that we become cache-friendly
+ */
+ state->dom_name = talloc_strdup_upper(state, dom_name);
+ if (tevent_req_nomem(state->dom_name, req)) {
+ return tevent_req_post(req, ev);
+ }
+ state->name = talloc_strdup_upper(state, name);
+ if (tevent_req_nomem(state->name, req)) {
return tevent_req_post(req, ev);
}
- status = wcache_name_to_sid(domain, dom_name, name,
- &state->sid, &state->type);
- if (NT_STATUS_IS_OK(status)) {
- tevent_req_done(req);
+ domain = find_lookup_domain_from_name(state->dom_name);
+ if (domain == NULL) {
+ DEBUG(5, ("Could not find domain for %s\n", state->dom_name));
+ tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
return tevent_req_post(req, ev);
}
subreq = rpccli_wbint_LookupName_send(
- state, ev, domain->child.rpccli, dom_name, name, flags,
- &state->type, &state->sid);
+ state, ev, domain->child.rpccli, state->dom_name, state->name,
+ flags, &state->type, &state->sid);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}