[SCM] Samba Shared Repository - branch v3-2-stable updated - release-3-2-0rc1-26-gb524bc0

Karolin Seeger kseeger at samba.org
Tue Jun 3 06:53:18 GMT 2008


The branch, v3-2-stable has been updated
       via  b524bc0e284806877105ebb62570645efc6f2f56 (commit)
       via  0abc7c7c5738154d833e57433a19b9bb2e3f32cd (commit)
      from  9fd47f8f1e761d321a13987f3ca2f926d7420c37 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-stable


- Log -----------------------------------------------------------------
commit b524bc0e284806877105ebb62570645efc6f2f56
Author: Jeremy Allison <jra at samba.org>
Date:   Mon Jun 2 15:26:37 2008 -0700

    Fix by Bo Yang <boyang at novell.com> for bug with winbindd trusted domain child
    not keeping primary domain online status up to date.
    Jeremy.
    (cherry picked from commit d634d78cdfbfa9e27cf9cb5ada3c5220be257a7f)

commit 0abc7c7c5738154d833e57433a19b9bb2e3f32cd
Author: Jeremy Allison <jra at samba.org>
Date:   Mon Jun 2 18:37:16 2008 -0700

    Fix bug reported by David Eisner <deisner at gmail.com>. When allocating cli
    buffers for large read/write - make sure we take account of the large
    read/write SMB headers as well as the buffer space.
    Jeremy.
    (cherry picked from commit 220bb029a9f32a011c59013076eaeb3a86dc8843)

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

Summary of changes:
 source/libsmb/cliconnect.c      |    6 +++---
 source/winbindd/winbindd_dual.c |   20 ++++++++++++++++++--
 2 files changed, 21 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libsmb/cliconnect.c b/source/libsmb/cliconnect.c
index ae16572..0f17571 100644
--- a/source/libsmb/cliconnect.c
+++ b/source/libsmb/cliconnect.c
@@ -1352,9 +1352,9 @@ bool cli_negprot(struct cli_state *cli)
 		if (cli->capabilities & (CAP_LARGE_READX|CAP_LARGE_WRITEX)) {
 			SAFE_FREE(cli->outbuf);
 			SAFE_FREE(cli->inbuf);
-			cli->outbuf = (char *)SMB_MALLOC(CLI_SAMBA_MAX_LARGE_READX_SIZE+SAFETY_MARGIN);
-			cli->inbuf = (char *)SMB_MALLOC(CLI_SAMBA_MAX_LARGE_READX_SIZE+SAFETY_MARGIN);
-			cli->bufsize = CLI_SAMBA_MAX_LARGE_READX_SIZE;
+			cli->outbuf = (char *)SMB_MALLOC(CLI_SAMBA_MAX_LARGE_READX_SIZE+LARGE_WRITEX_HDR_SIZE+SAFETY_MARGIN);
+			cli->inbuf = (char *)SMB_MALLOC(CLI_SAMBA_MAX_LARGE_READX_SIZE+LARGE_WRITEX_HDR_SIZE+SAFETY_MARGIN);
+			cli->bufsize = CLI_SAMBA_MAX_LARGE_READX_SIZE + LARGE_WRITEX_HDR_SIZE;
 		}
 
 	} else if (cli->protocol >= PROTOCOL_LANMAN1) {
diff --git a/source/winbindd/winbindd_dual.c b/source/winbindd/winbindd_dual.c
index b8c0ab9..29849e9 100644
--- a/source/winbindd/winbindd_dual.c
+++ b/source/winbindd/winbindd_dual.c
@@ -965,6 +965,7 @@ static bool fork_domain_child(struct winbindd_child *child)
 	int fdpair[2];
 	struct winbindd_cli_state state;
 	struct winbindd_domain *domain;
+	struct winbindd_domain *primary_domain = NULL;
 
 	if (child->domain) {
 		DEBUG(10, ("fork_domain_child called for domain '%s'\n",
@@ -1060,10 +1061,13 @@ static bool fork_domain_child(struct winbindd_child *child)
 	}
 
 	/* Ensure we have no pending check_online events other
-	   than one for this domain. */
+	   than one for this domain or the primary domain. */
 
 	for (domain = domain_list(); domain; domain = domain->next) {
-		if (domain != child->domain) {
+		if (domain->primary) {
+			primary_domain = domain;
+		}
+		if ((domain != child->domain) && !domain->primary) {
 			TALLOC_FREE(domain->check_online_event);
 		}
 	}
@@ -1080,6 +1084,18 @@ static bool fork_domain_child(struct winbindd_child *child)
 
 		set_domain_online_request(child->domain);
 
+		if (primary_domain != child->domain) {
+			/* We need to talk to the primary
+			 * domain as well as the trusted
+			 * domain inside a trusted domain
+			 * child.
+			 * See the code in :
+			 * set_dc_type_and_flags_trustinfo()
+			 * for details.
+			 */
+			set_domain_online_request(primary_domain);
+		}
+
 		child->lockout_policy_event = event_add_timed(
 			winbind_event_context(), NULL, timeval_zero(),
 			"account_lockout_policy_handler",


-- 
Samba Shared Repository


More information about the samba-cvs mailing list