Check successful initialization of IPC

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
This commit is contained in:
Jan Friesse 2012-11-08 10:58:52 +01:00
parent f508e23096
commit 89809ec80e
3 changed files with 13 additions and 5 deletions

View File

@ -801,14 +801,14 @@ void cs_ipcs_stats_update(void)
}
}
void cs_ipcs_service_init(struct corosync_service_engine *service)
const char *cs_ipcs_service_init(struct corosync_service_engine *service)
{
if (service->lib_engine_count == 0) {
log_printf (LOGSYS_LEVEL_DEBUG,
"NOT Initializing IPC on %s [%d]",
cs_ipcs_serv_short_name(service->id),
service->id);
return;
return NULL;
}
ipcs_mapper[service->id].id = service->id;
strcpy(ipcs_mapper[service->id].name, cs_ipcs_serv_short_name(service->id));
@ -823,7 +823,12 @@ void cs_ipcs_service_init(struct corosync_service_engine *service)
assert(ipcs_mapper[service->id].inst);
qb_ipcs_poll_handlers_set(ipcs_mapper[service->id].inst,
&corosync_poll_funcs);
qb_ipcs_run(ipcs_mapper[service->id].inst);
if (qb_ipcs_run(ipcs_mapper[service->id].inst) != 0) {
log_printf (LOGSYS_LEVEL_ERROR, "Can't initialize IPC");
return "qb_ipcs_run error";
}
return NULL;
}
void cs_ipcs_init(void)

View File

@ -93,7 +93,7 @@ extern void corosync_recheck_the_q_level(void *data);
extern void cs_ipcs_init(void);
extern void cs_ipcs_service_init(struct corosync_service_engine *service);
extern const char *cs_ipcs_service_init(struct corosync_service_engine *service);
extern void cs_ipcs_stats_update(void);

View File

@ -172,7 +172,10 @@ char *corosync_service_link_and_init (
log_printf (LOGSYS_LEVEL_NOTICE,
"Service engine loaded: %s [%d]", service_engine->name, service_engine->id);
cs_ipcs_service_init(service_engine);
init_result = (char *)cs_ipcs_service_init(service_engine);
if (init_result != NULL) {
return (init_result);
}
return NULL;
}