From ee8da144b33d47eeb11b216d06e479214eb26cd4 Mon Sep 17 00:00:00 2001 From: "manish.r" Date: Fri, 15 Oct 2021 13:52:21 +0530 Subject: [PATCH] Load plugin for sdbd service Change-Id: Ic809b6fdd5894048a03b77774a8de9a4ab21b682 Signed-off-by: manish.r --- src/plugin.c | 16 +++++++++++++++- src/sdb.c | 8 ++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) mode change 100644 => 100755 src/plugin.c diff --git a/src/plugin.c b/src/plugin.c old mode 100644 new mode 100755 index bf41732..2efe7d2 --- a/src/plugin.c +++ b/src/plugin.c @@ -200,6 +200,19 @@ void unload_sdbd_plugin() } } +void unload_sdbd_service_plugin() +{ + if ( plugin_cmd_hashtable ) { + hashtable_destroy ( plugin_cmd_hashtable ); + plugin_cmd_hashtable = NULL; + } + + if ( g_plugin_handle ) { + dlclose ( g_plugin_handle ); + g_plugin_handle = NULL; + } +} + // return 1 if plugin support given command // return 0 if plugin does not support given command int is_supported_by_plugin ( int cmd ) @@ -223,7 +236,6 @@ int request_sync_cmd ( int cmd, parameters* in, parameters* out ) out->number_of_parameter = 0; out->array_of_parameter = NULL; - if ( plugin_cmd_hashtable ) { ret = hashtable_get ( plugin_cmd_hashtable, cmd, &pr ); if ( ret == 1 ) { @@ -238,12 +250,14 @@ int request_sync_cmd ( int cmd, parameters* in, parameters* out ) ret = default_plugin_sync_proc ( cmd, in, out ); } } else { + E("Plugin Command HashTable Does Not Exist"); ret = default_plugin_sync_proc ( cmd, in, out ); } return ret; } + static void request_async_cmd ( int cmd, parameters* in, int out_fd ) { int ret, pr; diff --git a/src/sdb.c b/src/sdb.c index 6db537c..06ad083 100755 --- a/src/sdb.c +++ b/src/sdb.c @@ -1220,6 +1220,12 @@ static void sdb_cleanup(void) unload_sdbd_plugin(); } +static void sdb_service_cleanup(void) +{ + unload_sdbd_service_plugin(); +} + + void start_device_log(void) { int fd; @@ -2190,8 +2196,10 @@ int sdb_main(int server_port) void sdb_main_service() { + load_sdbd_plugin(); init_capabilities(); init_sdk_requirements(); + atexit(sdb_service_cleanup); } int copy_packet(apacket* dest, apacket* src) { -- 2.34.1