s3:winbind: Remove the manual caching for the async wb_ functions
authorVolker Lendecke <vl@samba.org>
Thu, 27 Aug 2009 12:16:22 +0000 (14:16 +0200)
committerVolker Lendecke <vl@samba.org>
Thu, 27 Aug 2009 13:04:09 +0000 (15:04 +0200)
The generic NDR-based cache in winbindd_dual_ndr.c replaces this.

source3/winbindd/wb_group_members.c
source3/winbindd/wb_lookupname.c
source3/winbindd/wb_lookupsid.c
source3/winbindd/wb_lookupuseraliases.c
source3/winbindd/wb_lookupusergroups.c
source3/winbindd/wb_queryuser.c

index 5de4d51e0977407686409af4c55a861c892807ba..f37641bd0d8e6edc22c2c3b2538b14528e407507 100644 (file)
@@ -52,11 +52,6 @@ static struct tevent_req *wb_lookupgroupmem_send(TALLOC_CTX *mem_ctx,
        struct tevent_req *req, *subreq;
        struct wb_lookupgroupmem_state *state;
        struct winbindd_domain *domain;
-       uint32_t num_names;
-       struct dom_sid *sid_mem;
-       char **names;
-       uint32_t *name_types;
-       NTSTATUS status;
 
        req = tevent_req_create(mem_ctx, &state,
                                struct wb_lookupgroupmem_state);
@@ -71,32 +66,6 @@ static struct tevent_req *wb_lookupgroupmem_send(TALLOC_CTX *mem_ctx,
                return tevent_req_post(req, ev);
        }
 
-       status = wcache_lookup_groupmem(domain, state, &state->sid, &num_names,
-                                       &sid_mem, &names, &name_types);
-       if (NT_STATUS_IS_OK(status)) {
-               int i;
-               state->members.members = talloc_array(
-                       state, struct wbint_GroupMember, num_names);
-               if (tevent_req_nomem(state->members.members, req)) {
-                       return tevent_req_post(req, ev);
-               }
-               state->members.num_members = num_names;
-               for (i=0; i<num_names; i++) {
-                       struct wbint_GroupMember *m;
-                       const char *name;
-                       m = &state->members.members[i];
-                       sid_copy(&m->sid, &sid_mem[i]);
-                       name = names[i];
-                       m->name = talloc_move(state->members.members, &name);
-                       m->type = (enum lsa_SidType)name_types[i];
-               }
-               TALLOC_FREE(sid_mem);
-               TALLOC_FREE(names);
-               TALLOC_FREE(name_types);
-               tevent_req_done(req);
-               return tevent_req_post(req, ev);
-       }
-
        subreq = rpccli_wbint_LookupGroupMembers_send(
                state, ev, domain->child.rpccli, &state->sid, type,
                &state->members);
index 12e1babcda8f23b10bda72597535c4c8a4653299..6251d030becbed57447cf30764c23acb06fe0fb5 100644 (file)
@@ -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);
        }
index f258828048f0a85ba556435fcc6860257395f4ae..80e0b80ca132dd4a680286b6000639cb1faaef2b 100644 (file)
@@ -38,8 +38,6 @@ struct tevent_req *wb_lookupsid_send(TALLOC_CTX *mem_ctx,
 {
        struct tevent_req *req, *subreq;
        struct wb_lookupsid_state *state;
-       char *dom_name, *name;
-       NTSTATUS status;
 
        req = tevent_req_create(mem_ctx, &state, struct wb_lookupsid_state);
        if (req == NULL) {
@@ -56,15 +54,6 @@ struct tevent_req *wb_lookupsid_send(TALLOC_CTX *mem_ctx,
                return tevent_req_post(req, ev);
        }
 
-       status = wcache_sid_to_name(state->lookup_domain, sid, state,
-                                   &dom_name, &name, &state->type);
-       if (NT_STATUS_IS_OK(status)) {
-               state->domname = dom_name;
-               state->name = name;
-               tevent_req_done(req);
-               return tevent_req_post(req, ev);
-       }
-
        subreq = rpccli_wbint_LookupSid_send(
                state, ev, state->lookup_domain->child.rpccli,
                &state->sid, &state->type, &state->domname, &state->name);
index e2e5e2da080cfaa93f2ece2bef81fb01804f3d7d..138eca9a819d46bf437a6d21d41c10d38c012ad5 100644 (file)
@@ -37,7 +37,6 @@ struct tevent_req *wb_lookupuseraliases_send(TALLOC_CTX *mem_ctx,
 {
        struct tevent_req *req, *subreq;
        struct wb_lookupuseraliases_state *state;
-       NTSTATUS status;
 
        req = tevent_req_create(mem_ctx, &state,
                                struct wb_lookupuseraliases_state);
@@ -47,14 +46,6 @@ struct tevent_req *wb_lookupuseraliases_send(TALLOC_CTX *mem_ctx,
        state->sids.num_sids = num_sids;
        state->sids.sids = CONST_DISCARD(struct dom_sid *, sids);
 
-       status = wcache_lookup_useraliases(domain, state, num_sids, sids,
-                                          &state->rids.num_rids,
-                                          &state->rids.rids);
-       if (NT_STATUS_IS_OK(status)) {
-               tevent_req_done(req);
-               return tevent_req_post(req, ev);
-       }
-
        subreq = rpccli_wbint_LookupUserAliases_send(
                state, ev, domain->child.rpccli, &state->sids, &state->rids);
        if (tevent_req_nomem(subreq, req)) {
index 4e96b45c57443cf2cd812aecde264d26060d3fb4..99c75b606017e3eb247eb900ca89647eb3941c4c 100644 (file)
@@ -36,7 +36,6 @@ struct tevent_req *wb_lookupusergroups_send(TALLOC_CTX *mem_ctx,
 {
        struct tevent_req *req, *subreq;
        struct wb_lookupusergroups_state *state;
-       NTSTATUS status;
 
        req = tevent_req_create(mem_ctx, &state,
                                struct wb_lookupusergroups_state);
@@ -45,14 +44,6 @@ struct tevent_req *wb_lookupusergroups_send(TALLOC_CTX *mem_ctx,
        }
        sid_copy(&state->sid, sid);
 
-       status = wcache_lookup_usergroups(domain, state, sid,
-                                         &state->sids.num_sids,
-                                         &state->sids.sids);
-       if (NT_STATUS_IS_OK(status)) {
-               tevent_req_done(req);
-               return tevent_req_post(req, ev);
-       }
-
        subreq = rpccli_wbint_LookupUserGroups_send(
                state, ev, domain->child.rpccli, &state->sid, &state->sids);
        if (tevent_req_nomem(subreq, req)) {
index 7a2f1de17bb7405e02d9d4836933181ac3a093c3..d85af78f3e5f32c675d125d53576fb7119221987 100644 (file)
@@ -35,7 +35,6 @@ struct tevent_req *wb_queryuser_send(TALLOC_CTX *mem_ctx,
        struct tevent_req *req, *subreq;
        struct wb_queryuser_state *state;
        struct winbindd_domain *domain;
-       NTSTATUS status;
 
        req = tevent_req_create(mem_ctx, &state, struct wb_queryuser_state);
        if (req == NULL) {
@@ -54,12 +53,6 @@ struct tevent_req *wb_queryuser_send(TALLOC_CTX *mem_ctx,
                return tevent_req_post(req, ev);
        }
 
-       status = wcache_query_user(domain, state, &state->sid, state->info);
-       if (NT_STATUS_IS_OK(status)) {
-               tevent_req_done(req);
-               return tevent_req_post(req, ev);
-       }
-
        subreq = rpccli_wbint_QueryUser_send(state, ev, domain->child.rpccli,
                                             &state->sid, state->info);
        if (tevent_req_nomem(subreq, req)) {