diff options
author | Andrew Tridgell <tridge@samba.org> | 2009-09-18 18:05:55 -0700 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2009-09-18 18:05:55 -0700 |
commit | e9a589feac531379e569bc39d803b16179002cfa (patch) | |
tree | 81fcaf840fa0ed4513e4d17d6e20f47434ca5ac5 /source4/cldap_server | |
parent | ade5d43c5ceb915dd2210a735a21fd9bed531dd3 (diff) | |
download | samba-e9a589feac531379e569bc39d803b16179002cfa.tar.gz samba-e9a589feac531379e569bc39d803b16179002cfa.tar.bz2 samba-e9a589feac531379e569bc39d803b16179002cfa.zip |
s4-server: kill main daemon if a task fails to initialise
When one of our core tasks fails to initialise it can now ask for the
server as a whole to die, rather than limping along in a degraded
state.
Diffstat (limited to 'source4/cldap_server')
-rw-r--r-- | source4/cldap_server/cldap_server.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/source4/cldap_server/cldap_server.c b/source4/cldap_server/cldap_server.c index 1a08cd21f9..ee8c76ef2c 100644 --- a/source4/cldap_server/cldap_server.c +++ b/source4/cldap_server/cldap_server.c @@ -187,16 +187,18 @@ static void cldapd_task_init(struct task_server *task) load_interfaces(task, lp_interfaces(task->lp_ctx), &ifaces); if (iface_count(ifaces) == 0) { - task_server_terminate(task, "cldapd: no network interfaces configured"); + task_server_terminate(task, "cldapd: no network interfaces configured", false); return; } switch (lp_server_role(task->lp_ctx)) { case ROLE_STANDALONE: - task_server_terminate(task, "cldap_server: no CLDAP server required in standalone configuration"); + task_server_terminate(task, "cldap_server: no CLDAP server required in standalone configuration", + false); return; case ROLE_DOMAIN_MEMBER: - task_server_terminate(task, "cldap_server: no CLDAP server required in member server configuration"); + task_server_terminate(task, "cldap_server: no CLDAP server required in member server configuration", + false); return; case ROLE_DOMAIN_CONTROLLER: /* Yes, we want an CLDAP server */ @@ -207,21 +209,21 @@ static void cldapd_task_init(struct task_server *task) cldapd = talloc(task, struct cldapd_server); if (cldapd == NULL) { - task_server_terminate(task, "cldapd: out of memory"); + task_server_terminate(task, "cldapd: out of memory", true); return; } cldapd->task = task; cldapd->samctx = samdb_connect(cldapd, task->event_ctx, task->lp_ctx, system_session(cldapd, task->lp_ctx)); if (cldapd->samctx == NULL) { - task_server_terminate(task, "cldapd failed to open samdb"); + task_server_terminate(task, "cldapd failed to open samdb", true); return; } /* start listening on the configured network interfaces */ status = cldapd_startup_interfaces(cldapd, task->lp_ctx, ifaces); if (!NT_STATUS_IS_OK(status)) { - task_server_terminate(task, "cldapd failed to setup interfaces"); + task_server_terminate(task, "cldapd failed to setup interfaces", true); return; } |