From fda6c2145323f8cce05015aabd07cc41d754f4cd Mon Sep 17 00:00:00 2001 From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net> Date: Thu, 18 Feb 2021 21:12:43 +0700 Subject: [PATCH] [*] Fixed notify server [+] Close sqlite3 on exit --- .../server/notify_server/src/dap_notify_srv.c | 4 ++++ .../dap_chain_global_db_driver_sqlite.c | 24 ++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/dap-sdk/net/server/notify_server/src/dap_notify_srv.c b/dap-sdk/net/server/notify_server/src/dap_notify_srv.c index efab63b63c..b324fb7d5d 100644 --- a/dap-sdk/net/server/notify_server/src/dap_notify_srv.c +++ b/dap-sdk/net/server/notify_server/src/dap_notify_srv.c @@ -118,6 +118,8 @@ struct dap_events_socket * dap_notify_server_create_inter() */ int dap_notify_server_send_f_inter(uint32_t a_worker_id, const char * a_format,...) { + if(!s_notify_server_queue_inter) // If not initialized - nothing to notify + return 0; if(a_worker_id>= dap_events_worker_get_count()){ log_it(L_ERROR,"Wrong worker id %u for send_f_inter() function", a_worker_id); return -10; @@ -139,6 +141,8 @@ int dap_notify_server_send_f_inter(uint32_t a_worker_id, const char * a_format,. */ int dap_notify_server_send_f_mt(const char * a_format,...) { + if(!s_notify_server_queue) // If not initialized - nothing to notify + return 0; va_list va; va_start(va, a_format); size_t l_str_size=dap_vsnprintf(NULL,0,a_format,va); diff --git a/modules/global-db/dap_chain_global_db_driver_sqlite.c b/modules/global-db/dap_chain_global_db_driver_sqlite.c index 56854f8354..e912aad9d3 100644 --- a/modules/global-db/dap_chain_global_db_driver_sqlite.c +++ b/modules/global-db/dap_chain_global_db_driver_sqlite.c @@ -121,11 +121,13 @@ int dap_db_driver_sqlite_init(const char *a_filename_db, dap_db_driver_callbacks int dap_db_driver_sqlite_deinit(void) { - pthread_rwlock_wrlock(&s_db_rwlock); - dap_db_driver_sqlite_close(s_db); - pthread_rwlock_unlock(&s_db_rwlock); - s_db = NULL; - return sqlite3_shutdown(); + if (s_db){ + pthread_rwlock_wrlock(&s_db_rwlock); + dap_db_driver_sqlite_close(s_db); + pthread_rwlock_unlock(&s_db_rwlock); + s_db = NULL; + return sqlite3_shutdown(); + } } // additional function for sqlite to convert byte to number @@ -514,7 +516,9 @@ char *dap_db_driver_sqlite_make_table_name(const char *a_group_name) */ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj) { - if(!a_store_obj || !a_store_obj->group) + if ( !s_db) + return -666; + if(!a_store_obj || !a_store_obj->group ) return -1; char *l_query = NULL; char *l_error_message = NULL; @@ -632,6 +636,9 @@ static void fill_one_item(const char *a_group, dap_store_obj_t *a_obj, SQLITE_RO */ dap_store_obj_t* dap_db_driver_sqlite_read_last_store_obj(const char *a_group) { + if ( !s_db) + return -666; + dap_store_obj_t *l_obj = NULL; char *l_error_message = NULL; sqlite3_stmt *l_res; @@ -681,6 +688,8 @@ dap_store_obj_t* dap_db_driver_sqlite_read_cond_store_obj(const char *a_group, u sqlite3_stmt *l_res; if(!a_group) return NULL; + if ( !s_db) + return -666; char * l_table_name = dap_db_driver_sqlite_make_table_name(a_group); // no limit @@ -753,6 +762,9 @@ dap_store_obj_t* dap_db_driver_sqlite_read_store_obj(const char *a_group, const sqlite3_stmt *l_res; if(!a_group) return NULL; + if ( !s_db) + return -666; + char * l_table_name = dap_db_driver_sqlite_make_table_name(a_group); // no limit uint64_t l_count_out = 0; -- GitLab