return !opt_nocache;
}
+bool wb_is_parent = true;
+
/* Main function */
int main(int argc, char **argv, char **envp)
exit(1);
}
+ wb_is_parent = true;
+
/* Setup signal handlers */
if (!winbindd_setup_sig_term_handler(true))
pid_t parent_pid = sys_getpid();
char *lfile = NULL;
+if (wb_is_parent) {
+DEBUG(0,("fork_child_dc_connect called in the parent\n"));
+smb_panic(__location__);
+}
if (domain->dc_probe_pid != (pid_t)-1) {
/*
* We might already have a DC probe
NTSTATUS init_dc_connection(struct winbindd_domain *domain)
{
+if (wb_is_parent) {
+DEBUG(0,("init_dc_connection called in the parent\n"));
+smb_panic(__location__);
+}
if (domain->internal) {
return NT_STATUS_CANT_ACCESS_DOMAIN_INFO;
}
}
if (!domain->internal && domain->conn.cli == NULL) {
+ DEBUG(0,("METZE: domain[%s] without inbound trust\n",
+ domain->name));
+ smb_panic(__location__);
/* happens for trusted domains without inbound trust */
return NT_STATUS_TRUSTED_DOMAIN_FAILURE;
}
struct winbindd_domain *domain;
struct winbindd_child *cl;
+ wb_is_parent = false;
+
if (!NT_STATUS_IS_OK(reinit_after_fork(winbind_messaging_context(),
winbind_event_context(),
true))) {
struct winbindd_response response;
struct winbindd_domain *primary_domain = NULL;
+if (!wb_is_parent) {
+ DEBUG(0,("try to fork a domain[%s] child from a child[%d] parent[%d]\n",
+ child->domain?child->domain->name:"no_domain", sys_getpid(), getppid()));
+ smb_panic(__location__);
+}
+
if (child->domain) {
DEBUG(10, ("fork_domain_child called for domain '%s'\n",
child->domain->name));
* in start-up mode */
if (!(child->domain->internal)) {
set_domain_online_request(child->domain);
- if (!(child->domain->primary)) {
+/* if (!(child->domain->primary)) {
primary_domain->startup = True;
primary_domain->startup_time = time(NULL);
set_domain_online_request(primary_domain);
}
- }
+*/ }
}
/*
* set_dc_type_and_flags_trustinfo()
* for details.
*/
- set_domain_online_request(primary_domain);
+ //set_domain_online_request(primary_domain);
}
child->lockout_policy_event = event_add_timed(