Signed-off-by: Jan Friesse <jfriesse@xxxxxxxxxx> --- exec/ipc_glue.c | 13 +++++++++---- exec/main.h | 2 +- exec/service.c | 5 ++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/exec/ipc_glue.c b/exec/ipc_glue.c index fa59a98..ed134fd 100644 --- a/exec/ipc_glue.c +++ b/exec/ipc_glue.c @@ -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)); @@ -818,12 +818,17 @@ void cs_ipcs_service_init(struct corosync_service_engine *service) ipcs_mapper[service->id].id); ipcs_mapper[service->id].inst = qb_ipcs_create(ipcs_mapper[service->id].name, ipcs_mapper[service->id].id, - QB_IPC_NATIVE, + cs_get_ipc_type(), &corosync_service_funcs); 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) diff --git a/exec/main.h b/exec/main.h index 13b7e12..b65f0ae 100644 --- a/exec/main.h +++ b/exec/main.h @@ -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); diff --git a/exec/service.c b/exec/service.c index eaacfbb..58f5bb8 100644 --- a/exec/service.c +++ b/exec/service.c @@ -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 = cs_ipcs_service_init(service_engine); + if (init_result != NULL) { + return (init_result); + } return NULL; } -- 1.7.1 _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss