[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-1771-g7dbfc7b

Simo Sorce idra at samba.org
Fri Feb 1 19:28:57 GMT 2008


The branch, v3-2-test has been updated
       via  7dbfc7bdc65314466a83e8121b35c9bcb24b2631 (commit)
       via  9347d34b502bef70cdae8f3e8acd9796dba49581 (commit)
      from  69e8a83093149201c36ffc2b7fadfa469aabf7bd (commit)

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


- Log -----------------------------------------------------------------
commit 7dbfc7bdc65314466a83e8121b35c9bcb24b2631
Merge: 9347d34b502bef70cdae8f3e8acd9796dba49581 69e8a83093149201c36ffc2b7fadfa469aabf7bd
Author: Simo Sorce <idra at samba.org>
Date:   Fri Feb 1 14:24:31 2008 -0500

    Merge branch 'v3-2-test' of ssh://git.samba.org/data/git/samba into v3-2-test

commit 9347d34b502bef70cdae8f3e8acd9796dba49581
Author: Simo Sorce <idra at samba.org>
Date:   Fri Feb 1 13:50:04 2008 -0500

    Fix winbindd running on a Samba DC,
    This patch make sure we do not try to contact smbd in the main dameon
    to avoid deadlocks.
    All the operations that require connecting to smbd are performed in
    the domain child anyway.

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

Summary of changes:
 source/winbindd/winbindd_dual.c |   11 +++++++++++
 source/winbindd/winbindd_util.c |    6 ------
 2 files changed, 11 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/winbindd/winbindd_dual.c b/source/winbindd/winbindd_dual.c
index 15ca564..1f2972f 100644
--- a/source/winbindd/winbindd_dual.c
+++ b/source/winbindd/winbindd_dual.c
@@ -34,6 +34,7 @@
 #define DBGC_CLASS DBGC_WINBIND
 
 extern bool override_logfile;
+extern struct winbindd_methods cache_methods;
 
 /* Read some data from a client connection */
 
@@ -1081,6 +1082,16 @@ static bool fork_domain_child(struct winbindd_child *child)
 			child);
 	}
 
+	/* Special case for Winbindd on a Samba DC,
+	 * We want to make sure the child can connect to smbd
+	 * but not the main daemon */
+
+	if (child->domain && child->domain->internal && IS_DC) {
+		child->domain->internal = False;
+		child->domain->methods = &cache_methods;
+		child->domain->online = False;
+	}
+
 	while (1) {
 
 		int ret;
diff --git a/source/winbindd/winbindd_util.c b/source/winbindd/winbindd_util.c
index 10779cd..7933ecf 100644
--- a/source/winbindd/winbindd_util.c
+++ b/source/winbindd/winbindd_util.c
@@ -82,9 +82,6 @@ static bool is_internal_domain(const DOM_SID *sid)
 	if (sid == NULL)
 		return False;
 
-	if ( IS_DC )
-		return sid_check_is_builtin(sid);
-
 	return (sid_check_is_domain(sid) || sid_check_is_builtin(sid));
 }
 
@@ -93,9 +90,6 @@ static bool is_in_internal_domain(const DOM_SID *sid)
 	if (sid == NULL)
 		return False;
 
-	if ( IS_DC )
-		return sid_check_is_in_builtin(sid);
-
 	return (sid_check_is_in_our_domain(sid) || sid_check_is_in_builtin(sid));
 }
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list