The branch, master has been updated
       via  fd3eeb3... s3: async_domain_request is no longer used
       via  d53e345... s3: Convert add_trusted_domains() to 
wb_domain_request_send()
      from  d41836f... s3: Simplify trustdom_state

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit fd3eeb3878c94bfb8d2134dbdc17cfb5279d088c
Author: Volker Lendecke <[email protected]>
Date:   Sun Apr 25 11:42:44 2010 +0200

    s3: async_domain_request is no longer used

commit d53e3450c775a4eae9f5237ec85ed212479fbcbd
Author: Volker Lendecke <[email protected]>
Date:   Sun Apr 25 11:40:30 2010 +0200

    s3: Convert add_trusted_domains() to wb_domain_request_send()

-----------------------------------------------------------------------

Summary of changes:
 source3/winbindd/winbindd_dual.c  |   61 -------------------------------------
 source3/winbindd/winbindd_proto.h |    6 ----
 source3/winbindd/winbindd_util.c  |   41 +++++++++++-------------
 3 files changed, 19 insertions(+), 89 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/winbindd/winbindd_dual.c b/source3/winbindd/winbindd_dual.c
index 073749e..4f314cf 100644
--- a/source3/winbindd/winbindd_dual.c
+++ b/source3/winbindd/winbindd_dual.c
@@ -367,67 +367,6 @@ int wb_domain_request_recv(struct tevent_req *req, 
TALLOC_CTX *mem_ctx,
        return 0;
 }
 
-struct domain_request_state {
-       struct winbindd_domain *domain;
-       struct winbindd_request *request;
-       struct winbindd_response *response;
-       void (*continuation)(void *private_data_data, bool success);
-       void *private_data_data;
-};
-
-static void async_domain_request_done(struct tevent_req *req);
-
-void async_domain_request(TALLOC_CTX *mem_ctx,
-                         struct winbindd_domain *domain,
-                         struct winbindd_request *request,
-                         struct winbindd_response *response,
-                         void (*continuation)(void *private_data_data, bool 
success),
-                         void *private_data_data)
-{
-       struct tevent_req *subreq;
-       struct domain_request_state *state;
-
-       state = TALLOC_P(mem_ctx, struct domain_request_state);
-       if (state == NULL) {
-               DEBUG(0, ("talloc failed\n"));
-               continuation(private_data_data, False);
-               return;
-       }
-
-       state->domain = domain;
-       state->request = request;
-       state->response = response;
-       state->continuation = continuation;
-       state->private_data_data = private_data_data;
-
-       subreq = wb_domain_request_send(state, winbind_event_context(),
-                                       domain, request);
-       if (subreq == NULL) {
-               DEBUG(5, ("wb_domain_request_send failed\n"));
-               continuation(private_data_data, false);
-               return;
-       }
-       tevent_req_set_callback(subreq, async_domain_request_done, state);
-}
-
-static void async_domain_request_done(struct tevent_req *req)
-{
-       struct domain_request_state *state = tevent_req_callback_data(
-               req, struct domain_request_state);
-       struct winbindd_response *response;
-       int ret, err;
-
-       ret = wb_domain_request_recv(req, state, &response, &err);
-       TALLOC_FREE(req);
-       if (ret == -1) {
-               DEBUG(5, ("wb_domain_request returned %s\n", strerror(err)));
-               state->continuation(state->private_data_data, false);
-               return;
-       }
-       *(state->response) = *response;
-       state->continuation(state->private_data_data, true);
-}
-
 static void child_process_request(struct winbindd_child *child,
                                  struct winbindd_cli_state *state)
 {
diff --git a/source3/winbindd/winbindd_proto.h 
b/source3/winbindd/winbindd_proto.h
index 981b2f6..fa1d5f2 100644
--- a/source3/winbindd/winbindd_proto.h
+++ b/source3/winbindd/winbindd_proto.h
@@ -270,12 +270,6 @@ struct tevent_req *wb_domain_request_send(TALLOC_CTX 
*mem_ctx,
 int wb_domain_request_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
                           struct winbindd_response **presponse, int *err);
 
-void async_domain_request(TALLOC_CTX *mem_ctx,
-                         struct winbindd_domain *domain,
-                         struct winbindd_request *request,
-                         struct winbindd_response *response,
-                         void (*continuation)(void *private_data_data, bool 
success),
-                         void *private_data_data);
 void setup_child(struct winbindd_domain *domain, struct winbindd_child *child,
                 const struct winbindd_child_dispatch_table *table,
                 const char *logprefix,
diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c
index 83cc36b..eb471e8 100644
--- a/source3/winbindd/winbindd_util.c
+++ b/source3/winbindd/winbindd_util.c
@@ -238,51 +238,48 @@ bool domain_is_forest_root(const struct winbindd_domain 
*domain)
 
 struct trustdom_state {
        struct winbindd_domain *domain;
-       struct winbindd_response *response;
+       struct winbindd_request request;
 };
 
-static void trustdom_recv(void *private_data, bool success);
+static void trustdom_list_done(struct tevent_req *req);
 static void rescan_forest_root_trusts( void );
 static void rescan_forest_trusts( void );
 
 static void add_trusted_domains( struct winbindd_domain *domain )
 {
-       struct winbindd_request *request;
-       struct winbindd_response *response;
        struct trustdom_state *state;
+       struct tevent_req *req;
 
        state = TALLOC_ZERO_P(NULL, struct trustdom_state);
        if (state == NULL) {
-               DEBUG(0, ("talloc_init failed\n"));
+               DEBUG(0, ("talloc failed\n"));
                return;
        }
+       state->domain = domain;
 
-       request = TALLOC_ZERO_P(state, struct winbindd_request);
-       response = TALLOC_P(state, struct winbindd_response);
+       state->request.length = sizeof(state->request);
+       state->request.cmd = WINBINDD_LIST_TRUSTDOM;
 
-       if ((request == NULL) || (response == NULL)) {
-               DEBUG(0, ("talloc failed\n"));
+       req = wb_domain_request_send(state, winbind_event_context(),
+                                    domain, &state->request);
+       if (req == NULL) {
+               DEBUG(1, ("wb_domain_request_send failed\n"));
                TALLOC_FREE(state);
                return;
        }
-       state->response = response;
-       state->domain = domain;
-
-       request->length = sizeof(*request);
-       request->cmd = WINBINDD_LIST_TRUSTDOM;
-
-       async_domain_request(state, domain, request, response,
-                            trustdom_recv, state);
+       tevent_req_set_callback(req, trustdom_list_done, state);
 }
 
-static void trustdom_recv(void *private_data, bool success)
+static void trustdom_list_done(struct tevent_req *req)
 {
-       struct trustdom_state *state =
-               talloc_get_type_abort(private_data, struct trustdom_state);
-       struct winbindd_response *response = state->response;
+       struct trustdom_state *state = tevent_req_callback_data(
+               req, struct trustdom_state);
+       struct winbindd_response *response;
+       int res, err;
        char *p;
 
-       if ((!success) || (response->result != WINBINDD_OK)) {
+       res = wb_domain_request_recv(req, state, &response, &err);
+       if ((res == -1) || (response->result != WINBINDD_OK)) {
                DEBUG(1, ("Could not receive trustdoms\n"));
                TALLOC_FREE(state);
                return;


-- 
Samba Shared Repository

Reply via email to