winbind: Maintain a binding handle per domain and always go via wb_domain_request_send()
[samba.git] / source3 / winbindd / winbindd_dual.c
index 21fe3c29fc1cf4e1fe35e845d44d7034caf5c12a..a30ac36a8b0c65b0aadf00f4225c3fb6ba00195f 100644 (file)
@@ -321,10 +321,7 @@ static struct winbindd_child *choose_domain_child(struct winbindd_domain *domain
 
 struct dcerpc_binding_handle *dom_child_handle(struct winbindd_domain *domain)
 {
-       struct winbindd_child *child;
-
-       child = choose_domain_child(domain);
-       return child->binding_handle;
+       return domain->binding_handle;
 }
 
 struct wb_domain_request_state {
@@ -608,8 +605,10 @@ void setup_child(struct winbindd_domain *domain, struct winbindd_child *child,
        child->table = table;
        child->queue = tevent_queue_create(NULL, "winbind_child");
        SMB_ASSERT(child->queue != NULL);
-       child->binding_handle = wbint_binding_handle(NULL, domain, child);
-       SMB_ASSERT(child->binding_handle != NULL);
+       if (domain == NULL) {
+               child->binding_handle = wbint_binding_handle(NULL, NULL, child);
+               SMB_ASSERT(child->binding_handle != NULL);
+       }
 }
 
 void winbind_child_died(pid_t pid)