int init_framer(void); /*!< Provided by frame.c */
int ast_term_init(void); /*!< Provided by term.c */
int astdb_init(void); /*!< Provided by db.c */
-void ast_channels_init(void); /*!< Provided by channel.c */
+int ast_channels_init(void); /*!< Provided by channel.c */
void ast_builtins_init(void); /*!< Provided by cli.c */
int ast_cli_perms_init(int reload); /*!< Provided by cli.c */
int dnsmgr_init(void); /*!< Provided by dnsmgr.c */
threadstorage_init();
- ast_format_attr_init();
- ast_format_list_init();
- ast_rtp_engine_init();
+ if (ast_format_attr_init()) {
+ printf("Failed: ast_format_attr_init\n%s", term_quit());
+ exit(1);
+ }
+ if (ast_format_list_init()) {
+ printf("Failed: ast_format_list_init\n%s", term_quit());
+ exit(1);
+ }
+
+ ast_rtp_engine_init();
ast_autoservice_init();
if (ast_timing_init()) {
exit(1);
}
- ast_channels_init();
+ if (ast_channels_init()) {
+ printf("Failed: ast_channels_init\n%s", term_quit());
+ exit(1);
+ }
if ((moduleresult = load_modules(1))) { /* Load modules, pre-load only */
printf("Failed: load_modules(1)\n%s", term_quit());
}
}
-void ast_channels_init(void)
+int ast_channels_init(void)
{
channels = ao2_container_alloc(NUM_CHANNEL_BUCKETS,
ast_channel_hash_cb, ast_channel_cmp_cb);
+ if (!channels) {
+ return -1;
+ }
ast_cli_register_multiple(cli_channel, ARRAY_LEN(cli_channel));
ast_plc_reload();
ast_register_cleanup(channels_shutdown);
+
+ return 0;
}
/*! \brief Print call group and pickup group ---*/