diff --git a/libs/libblade/src/blade_module_wss.c b/libs/libblade/src/blade_module_wss.c index f7c485b2ff..109082b232 100644 --- a/libs/libblade/src/blade_module_wss.c +++ b/libs/libblade/src/blade_module_wss.c @@ -83,10 +83,11 @@ struct blade_transport_wss_init_s { ks_status_t blade_module_wss_create(blade_module_wss_t **bm_wssP, blade_handle_t *bh); ks_status_t blade_module_wss_destroy(blade_module_wss_t **bm_wssP); -ks_status_t blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh); -ks_status_t blade_module_wss_on_unload(blade_module_t *bm); -ks_status_t blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config); -ks_status_t blade_module_wss_on_shutdown(blade_module_t *bm); +// @todo remove exporting this, it's only temporary until DSO loading is in place so wss module can be loaded +KS_DECLARE(ks_status_t) blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh); +KS_DECLARE(ks_status_t) blade_module_wss_on_unload(blade_module_t *bm); +KS_DECLARE(ks_status_t) blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config); +KS_DECLARE(ks_status_t) blade_module_wss_on_shutdown(blade_module_t *bm); ks_status_t blade_module_wss_listen(blade_module_wss_t *bm, ks_sockaddr_t *addr); void *blade_module_wss_listeners_thread(ks_thread_t *thread, void *data); @@ -153,19 +154,22 @@ static blade_transport_callbacks_t g_transport_wss_callbacks = ks_status_t blade_module_wss_create(blade_module_wss_t **bm_wssP, blade_handle_t *bh) { blade_module_wss_t *bm_wss = NULL; + ks_pool_t *pool = NULL; ks_assert(bm_wssP); ks_assert(bh); - bm_wss = ks_pool_alloc(bm_wss->pool, sizeof(blade_module_wss_t)); + pool = blade_handle_pool_get(bh); + + bm_wss = ks_pool_alloc(pool, sizeof(blade_module_wss_t)); bm_wss->handle = bh; - bm_wss->pool = blade_handle_pool_get(bh); + bm_wss->pool = pool; bm_wss->tpool = blade_handle_tpool_get(bh); blade_module_create(&bm_wss->module, bh, bm_wss, &g_module_wss_callbacks); bm_wss->module_callbacks = &g_module_wss_callbacks; bm_wss->transport_callbacks = &g_transport_wss_callbacks; - + list_init(&bm_wss->connected); ks_q_create(&bm_wss->disconnected, bm_wss->pool, 0); ks_assert(bm_wss->disconnected); @@ -196,7 +200,7 @@ ks_status_t blade_module_wss_destroy(blade_module_wss_t **bm_wssP) return KS_STATUS_SUCCESS; } -ks_status_t blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh) +KS_DECLARE(ks_status_t) blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh) { blade_module_wss_t *bm_wss = NULL; @@ -211,7 +215,7 @@ ks_status_t blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh) return KS_STATUS_SUCCESS; } -ks_status_t blade_module_wss_on_unload(blade_module_t *bm) +KS_DECLARE(ks_status_t) blade_module_wss_on_unload(blade_module_t *bm) { blade_module_wss_t *bm_wss = NULL; @@ -333,7 +337,7 @@ ks_status_t blade_module_wss_config(blade_module_wss_t *bm_wss, config_setting_t return KS_STATUS_SUCCESS; } -ks_status_t blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config) +KS_DECLARE(ks_status_t) blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config) { blade_module_wss_t *bm_wss = NULL; @@ -373,7 +377,7 @@ ks_status_t blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *co return KS_STATUS_SUCCESS; } -ks_status_t blade_module_wss_on_shutdown(blade_module_t *bm) +KS_DECLARE(ks_status_t) blade_module_wss_on_shutdown(blade_module_t *bm) { blade_module_wss_t *bm_wss = NULL; blade_transport_wss_t *bt_wss = NULL; diff --git a/libs/libblade/src/include/blade_module.h b/libs/libblade/src/include/blade_module.h index ef2ba88de7..706a8e892c 100644 --- a/libs/libblade/src/include/blade_module.h +++ b/libs/libblade/src/include/blade_module.h @@ -39,6 +39,12 @@ KS_BEGIN_EXTERN_C KS_DECLARE(ks_status_t) blade_module_create(blade_module_t **bmP, blade_handle_t *bh, void *module_data, blade_module_callbacks_t *module_callbacks); KS_DECLARE(ks_status_t) blade_module_destroy(blade_module_t **bmP); KS_DECLARE(void *) blade_module_data_get(blade_module_t *bm); + +// @todo very temporary, this is just here to get the wss module loaded until DSO is in place +KS_DECLARE(ks_status_t) blade_module_wss_on_load(blade_module_t **bmP, blade_handle_t *bh); +KS_DECLARE(ks_status_t) blade_module_wss_on_unload(blade_module_t *bm); +KS_DECLARE(ks_status_t) blade_module_wss_on_startup(blade_module_t *bm, config_setting_t *config); +KS_DECLARE(ks_status_t) blade_module_wss_on_shutdown(blade_module_t *bm); KS_END_EXTERN_C #endif diff --git a/libs/libblade/test/bladec.c b/libs/libblade/test/bladec.c index 1b7243bca8..b2abc8b11b 100644 --- a/libs/libblade/test/bladec.c +++ b/libs/libblade/test/bladec.c @@ -45,6 +45,7 @@ int main(int argc, char **argv) blade_handle_t *bh = NULL; config_t config; config_setting_t *config_blade = NULL; + blade_module_t *mod_wss = NULL; ks_global_set_default_logger(KS_LOG_LEVEL_DEBUG); @@ -75,7 +76,14 @@ int main(int argc, char **argv) return EXIT_FAILURE; } - // @todo get to wss module callbacks, call onload to kick off registration + if (blade_module_wss_on_load(&mod_wss, bh) != KS_STATUS_SUCCESS) { + ks_log(KS_LOG_ERROR, "Blade WSS module load failed\n"); + return EXIT_FAILURE; + } + if (blade_module_wss_on_startup(mod_wss, config_blade) != KS_STATUS_SUCCESS) { + ks_log(KS_LOG_ERROR, "Blade WSS module startup failed\n"); + return EXIT_FAILURE; + } loop(bh);