[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Sun Apr 25 02:55:34 MDT 2010


The branch, master has been updated
       via  d41836f... s3: Simplify trustdom_state
       via  13cdaf9... s3: Make "struct trustdom_state" its own talloc context
      from  d61b072... libwbclient: Talloc is no longer used

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


- Log -----------------------------------------------------------------
commit d41836fb62e3059e042bf72d4392c2e85b55c582
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Apr 25 10:36:58 2010 +0200

    s3: Simplify trustdom_state
    
    Don't store information explicitly as boolean flags that can be easily
    retrieved from the domain when it's actually needed.

commit 13cdaf9417ab08425d9b7e244a6830d34147b889
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Apr 25 10:25:55 2010 +0200

    s3: Make "struct trustdom_state" its own talloc context

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

Summary of changes:
 source3/winbindd/winbindd_util.c |   38 ++++++++++++++------------------------
 1 files changed, 14 insertions(+), 24 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c
index 0209a31..83cc36b 100644
--- a/source3/winbindd/winbindd_util.c
+++ b/source3/winbindd/winbindd_util.c
@@ -237,9 +237,7 @@ bool domain_is_forest_root(const struct winbindd_domain *domain)
 ********************************************************************/
 
 struct trustdom_state {
-	TALLOC_CTX *mem_ctx;
-	bool primary;
-	bool forest_root;
+	struct winbindd_domain *domain;
 	struct winbindd_response *response;
 };
 
@@ -249,39 +247,31 @@ static void rescan_forest_trusts( void );
 
 static void add_trusted_domains( struct winbindd_domain *domain )
 {
-	TALLOC_CTX *mem_ctx;
 	struct winbindd_request *request;
 	struct winbindd_response *response;
 	struct trustdom_state *state;
 
-	mem_ctx = talloc_init("add_trusted_domains");
-	if (mem_ctx == NULL) {
+	state = TALLOC_ZERO_P(NULL, struct trustdom_state);
+	if (state == NULL) {
 		DEBUG(0, ("talloc_init failed\n"));
 		return;
 	}
 
-	request = TALLOC_ZERO_P(mem_ctx, struct winbindd_request);
-	response = TALLOC_P(mem_ctx, struct winbindd_response);
-	state = TALLOC_P(mem_ctx, struct trustdom_state);
+	request = TALLOC_ZERO_P(state, struct winbindd_request);
+	response = TALLOC_P(state, struct winbindd_response);
 
-	if ((request == NULL) || (response == NULL) || (state == NULL)) {
+	if ((request == NULL) || (response == NULL)) {
 		DEBUG(0, ("talloc failed\n"));
-		talloc_destroy(mem_ctx);
+		TALLOC_FREE(state);
 		return;
 	}
-
-	state->mem_ctx = mem_ctx;
 	state->response = response;
-
-	/* Flags used to know how to continue the forest trust search */
-
-	state->primary = domain->primary;
-	state->forest_root = domain_is_forest_root(domain);
+	state->domain = domain;
 
 	request->length = sizeof(*request);
 	request->cmd = WINBINDD_LIST_TRUSTDOM;
 
-	async_domain_request(mem_ctx, domain, request, response,
+	async_domain_request(state, domain, request, response,
 			     trustdom_recv, state);
 }
 
@@ -294,7 +284,7 @@ static void trustdom_recv(void *private_data, bool success)
 
 	if ((!success) || (response->result != WINBINDD_OK)) {
 		DEBUG(1, ("Could not receive trustdoms\n"));
-		talloc_destroy(state->mem_ctx);
+		TALLOC_FREE(state);
 		return;
 	}
 
@@ -368,23 +358,23 @@ static void trustdom_recv(void *private_data, bool success)
 	       && !forest_root)
 	*/
 
-	if ( state->primary ) {
+	if (state->domain->primary) {
 		/* If this is our primary domain and we are not in the
 		   forest root, we have to scan the root trusts first */
 
-		if ( !state->forest_root )
+		if (!domain_is_forest_root(state->domain))
 			rescan_forest_root_trusts();
 		else
 			rescan_forest_trusts();
 
-	} else if ( state->forest_root ) {
+	} else if (domain_is_forest_root(state->domain)) {
 		/* Once we have done root forest trust search, we can
 		   go on to search the trusted forests */
 
 		rescan_forest_trusts();
 	}
 
-	talloc_destroy(state->mem_ctx);
+	TALLOC_FREE(state);
 
 	return;
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list