diff options
Diffstat (limited to 'source4/winbind')
-rw-r--r-- | source4/winbind/wb_server.c | 21 |
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; } |