s4:winbind Make the 'no SID found' message even more detailed
[abartlet/samba.git/.git] / source4 / winbind / wb_server.c
index 03a443ac16b941cab2a34ae5bfe0383ff303c982..306c8e2add63073e1e9473bf7a467a5de9df55bd 100644 (file)
@@ -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;
                }