Merge branch 'v3-2-test' of ssh://git.samba.org/data/git/samba into v3-2-test
[ira/wip.git] / source3 / winbindd / winbindd_dual.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;