summaryrefslogtreecommitdiff
path: root/source4/winbind/wb_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/winbind/wb_server.c')
-rw-r--r--source4/winbind/wb_server.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/source4/winbind/wb_server.c b/source4/winbind/wb_server.c
index 03a443ac16..306c8e2add 100644
--- a/source4/winbind/wb_server.c
+++ b/source4/winbind/wb_server.c
@@ -241,19 +241,36 @@ static void winbind_task_init(struct task_server *task)
service->task->lp_ctx,
lp_netbios_name(service->task->lp_ctx), &errstring);
if (!primary_sid) {
- char *message = talloc_asprintf(task, "Cannot start Winbind (standalone configuration): %s", errstring);
+ char *message = talloc_asprintf(task,
+ "Cannot start Winbind (standalone configuration): %s: "
+ "Have you provisioned this server (%s) or changed it's name?",
+ errstring, lp_netbios_name(service->task->lp_ctx));
task_server_terminate(task, message, true);
return;
}
break;
case ROLE_DOMAIN_MEMBER:
+ primary_sid = secrets_get_domain_sid(service,
+ service->task->event_ctx,
+ service->task->lp_ctx,
+ lp_workgroup(service->task->lp_ctx), &errstring);
+ if (!primary_sid) {
+ char *message = talloc_asprintf(task, "Cannot start Winbind (domain member): %s: "
+ "Have you joined the %s domain?",
+ errstring, lp_workgroup(service->task->lp_ctx));
+ task_server_terminate(task, message, true);
+ return;
+ }
+ break;
case ROLE_DOMAIN_CONTROLLER:
primary_sid = secrets_get_domain_sid(service,
service->task->event_ctx,
service->task->lp_ctx,
lp_workgroup(service->task->lp_ctx), &errstring);
if (!primary_sid) {
- char *message = talloc_asprintf(task, "Cannot start Winbind (domain configuration): %s", errstring);
+ char *message = talloc_asprintf(task, "Cannot start Winbind (domain controller): %s: "
+ "Have you provisioned the %s domain?",
+ errstring, lp_workgroup(service->task->lp_ctx));
task_server_terminate(task, message, true);
return;
}