s3: Use any_nt_status_not_ok in winbind
[kai/samba.git] / source3 / winbindd / wb_lookupusergroups.c
index 4e96b45c57443cf2cd812aecde264d26060d3fb4..fb675e35234505558af09a87e4799527ebf8c386 100644 (file)
@@ -20,6 +20,7 @@
 #include "includes.h"
 #include "winbindd.h"
 #include "librpc/gen_ndr/cli_wbint.h"
+#include "../libcli/security/security.h"
 
 struct wb_lookupusergroups_state {
        struct tevent_context *ev;
@@ -36,7 +37,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,16 +45,8 @@ 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);
+       subreq = dcerpc_wbint_LookupUserGroups_send(
+               state, ev, domain->child.binding_handle, &state->sid, &state->sids);
        if (tevent_req_nomem(subreq, req)) {
                return tevent_req_post(req, ev);
        }
@@ -70,16 +62,12 @@ static void wb_lookupusergroups_done(struct tevent_req *subreq)
                req, struct wb_lookupusergroups_state);
        NTSTATUS status, result;
 
-       status = rpccli_wbint_LookupUserGroups_recv(subreq, state, &result);
+       status = dcerpc_wbint_LookupUserGroups_recv(subreq, state, &result);
        TALLOC_FREE(subreq);
-       if (!NT_STATUS_IS_OK(status)) {
+       if (any_nt_status_not_ok(status, result, &status)) {
                tevent_req_nterror(req, status);
                return;
        }
-       if (!NT_STATUS_IS_OK(result)) {
-               tevent_req_nterror(req, result);
-               return;
-       }
        tevent_req_done(req);
 }