Merge branch 'v3-2-test' of ssh://git.samba.org/data/git/samba into v3-2-test
authorSimo Sorce <idra@samba.org>
Fri, 1 Feb 2008 19:24:31 +0000 (14:24 -0500)
committerSimo Sorce <idra@samba.org>
Fri, 1 Feb 2008 19:24:31 +0000 (14:24 -0500)
(This used to be commit 7dbfc7bdc65314466a83e8121b35c9bcb24b2631)

source3/winbindd/winbindd_dual.c
source3/winbindd/winbindd_util.c

index 15ca564c6ac1ff2e63bba81dbffe99033c003057..1f2972f9b2be5b3a6c9dd7c47f7e109b98f3ca34 100644 (file)
@@ -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;
index 10779cd60a5b85e31ad267d2e62b664bedc3b14e..7933ecf63e42391729e6c7176cd5a3b72bc8001f 100644 (file)
@@ -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));
 }