summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cleopatre/devkit/plcd/src/plcd_daemon.c76
1 files changed, 42 insertions, 34 deletions
diff --git a/cleopatre/devkit/plcd/src/plcd_daemon.c b/cleopatre/devkit/plcd/src/plcd_daemon.c
index 6daf3fefa8..cf196e6af4 100644
--- a/cleopatre/devkit/plcd/src/plcd_daemon.c
+++ b/cleopatre/devkit/plcd/src/plcd_daemon.c
@@ -219,45 +219,53 @@ plcd_daemon_main (plcd_ctx_t *ctx)
break;
}
}
- if (0 != init_ret)
- {
- syslog (LOG_WARNING, "stack init failed\n");
- exit (EXIT_FAILURE);
- }
-
- /* register to hpav.conf and hpav.info files update */
- if ((LIBSPID_SUCCESS != libspid_system_file_update_register (
- ctx->pid, LIBSPID_HPAV_CONF_PATH, plcd_daemon_signal_handler))
- || (LIBSPID_SUCCESS != libspid_system_file_update_register (
- ctx->pid, LIBSPID_HPAV_INFO_PATH, plcd_daemon_signal_handler)))
- {
- exit (EXIT_FAILURE);
- }
-
- /* register to mcast.info file update */
- if (libspid_system_file_update_register (
- ctx->pid, LIBSPID_MULTICAST_INFO_PATH, plcd_daemon_signal_handler)
- != LIBSPID_SUCCESS)
- {
- exit (EXIT_FAILURE);
- }
- /* Initialize autoswitch timer. */
- plcd_autoswitch_timer_init ();
-
- /* now get all events from plcdrv (i.e. DRV MME-s) */
- while (!exit_requested)
+ if (0 != init_ret)
+ syslog (LOG_ERR, "stack init failed\n");
+ else
{
- if (0 > plcd_stack_event_dispatch (ctx))
+ if (LIBSPID_SUCCESS != libspid_system_file_update_register (
+ ctx->pid, LIBSPID_HPAV_CONF_PATH,
+ plcd_daemon_signal_handler))
+ syslog (LOG_ERR, "libspid register hpav.conf failed\n");
+ else
{
- exit (EXIT_FAILURE);
+ if (LIBSPID_SUCCESS != libspid_system_file_update_register (
+ ctx->pid, LIBSPID_HPAV_INFO_PATH,
+ plcd_daemon_signal_handler))
+ syslog (LOG_ERR, "libspid register hpav.info failed\n");
+ else
+ {
+ if (LIBSPID_SUCCESS != libspid_system_file_update_register (
+ ctx->pid, LIBSPID_MULTICAST_INFO_PATH,
+ plcd_daemon_signal_handler))
+ syslog (LOG_ERR, "libspid register multicast.info failed\n");
+ else
+ {
+ /* Initialize autoswitch timer. */
+ plcd_autoswitch_timer_init ();
+
+ /* now get all events from plcdrv (i.e. DRV MME-s) */
+ while (!exit_requested)
+ {
+ if (0 > plcd_stack_event_dispatch (ctx))
+ {
+ syslog (LOG_ERR, "plcd_stack_event_dispatch failed\n");
+ break;
+ }
+ }
+
+ libspid_system_file_update_unregister (
+ ctx->pid, LIBSPID_MULTICAST_INFO_PATH);
+ }
+ libspid_system_file_update_unregister (
+ ctx->pid, LIBSPID_HPAV_CONF_PATH);
+ }
+ libspid_system_file_update_unregister (
+ ctx->pid, LIBSPID_HPAV_INFO_PATH);
}
+ /* XXX no plcd_stack_unit. */
}
-
- libspid_system_file_update_unregister (ctx->pid, LIBSPID_HPAV_CONF_PATH);
- libspid_system_file_update_unregister (ctx->pid, LIBSPID_HPAV_INFO_PATH);
- libspid_system_file_update_unregister (ctx->pid, LIBSPID_MULTICAST_INFO_PATH);
-
plcd_daemon_close (ctx);
}
}