Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • dap/dap-sdk
1 result
Show changes
Commits on Source (3)
......@@ -58,6 +58,9 @@ if(WIN32)
src/win32/*.c
../3rdparty/strptime.c
)
set_source_files_properties(../3rdparty/strptime PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations)
endif()
add_library(${PROJECT_NAME} STATIC ${CORE_SRCS} ${CORE_HEADERS})
......
......@@ -574,7 +574,8 @@ int s_get_obj_by_text_key(MDBX_txn *a_txn, MDBX_dbi a_dbi, MDBX_val *a_key, MDBX
return l_rc;
}
if ( MDBX_SUCCESS != (l_rc = mdbx_cursor_get(l_cursor, a_key, a_data, MDBX_FIRST)) ) {
log_it(L_ERROR, "mdbx_cursor_get: (%d) %s", l_rc, mdbx_strerror(l_rc));
if (l_rc != MDBX_NOTFOUND)
log_it(L_ERROR, "mdbx_cursor_get: (%d) %s", l_rc, mdbx_strerror(l_rc));
return l_rc;
}
size_t l_key_len = strlen(a_text_key) + 1;
......@@ -630,7 +631,8 @@ dap_store_obj_t *l_obj = NULL;
goto ret;
}
if ( MDBX_SUCCESS != (l_rc = mdbx_cursor_get(l_cursor, &l_key, &l_data, MDBX_LAST)) ) {
log_it(L_ERROR, "mdbx_cursor_get: (%d) %s", l_rc, mdbx_strerror(l_rc));
if (l_rc != MDBX_NOTFOUND)
log_it(L_ERROR, "mdbx_cursor_get: (%d) %s", l_rc, mdbx_strerror(l_rc));
goto ret;
}
if (!l_key.iov_len || !l_data.iov_len) /* Not found anything - return NULL */
......@@ -904,7 +906,7 @@ static size_t s_db_mdbx_read_count_store(const char *a_group, dap_global_db_driv
if (l_rc != MDBX_SUCCESS)
log_it(L_ERROR, "mdbx_dbi_stat: (%d) %s", l_rc, mdbx_strerror(l_rc));
else if (!l_stat.ms_entries) /* Nothing to retrieve , table contains no record */
debug_if(g_dap_global_db_debug_more, L_WARNING, "No object (-s) to be retrieved from the group '%s'", a_group);
debug_if(g_dap_global_db_debug_more, L_NOTICE, "No object (-s) to be retrieved from the group '%s'", a_group);
if (!s_txn)
mdbx_txn_commit(l_txn);
return l_rc == MDBX_SUCCESS ? l_stat.ms_entries : 0;
......@@ -1175,7 +1177,8 @@ MDBX_stat l_stat;
break;
}
if ( MDBX_SUCCESS != (l_rc = mdbx_cursor_get(l_cursor, &l_key, &l_data, MDBX_FIRST)) ) {
log_it (L_ERROR, "mdbx_cursor_get FIRST: (%d) %s", l_rc, mdbx_strerror(l_rc));
if (l_rc != MDBX_NOTFOUND)
log_it (L_ERROR, "mdbx_cursor_get FIRST: (%d) %s", l_rc, mdbx_strerror(l_rc));
break;
}
l_obj = l_obj_arr;
......
......@@ -94,6 +94,10 @@ void dap_global_db_cluster_broadcast(dap_global_db_cluster_t *a_cluster, dap_sto
dap_global_db_cluster_t *dap_global_db_cluster_add(dap_global_db_instance_t *a_dbi, const char *a_mnemonim, dap_cluster_uuid_t a_uuid,
const char *a_group_mask, uint32_t a_ttl, bool a_owner_root_access,
dap_global_db_role_t a_default_role, dap_cluster_role_t a_links_cluster_role);
DAP_STATIC_INLINE int dap_global_db_cluster_member_delete(dap_global_db_cluster_t *a_cluster, dap_stream_node_addr_t *a_member_addr)
{
return a_cluster ? dap_cluster_member_delete(a_cluster->role_cluster, a_member_addr) : -2;
}
dap_cluster_member_t *dap_global_db_cluster_member_add(dap_global_db_cluster_t *a_cluster, dap_stream_node_addr_t *a_node_addr, dap_global_db_role_t a_role);
void dap_global_db_cluster_delete(dap_global_db_cluster_t *a_cluster);
void dap_global_db_cluster_notify(dap_global_db_cluster_t *a_cluster, dap_store_obj_t *a_store_obj);
......
......@@ -165,12 +165,16 @@ dap_cluster_member_t *dap_cluster_member_add(dap_cluster_t *a_cluster, dap_strea
* @brief dap_cluster_member_delete
* @param a_member
*/
void dap_cluster_member_delete(dap_cluster_member_t *a_member)
int dap_cluster_member_delete(dap_cluster_t *a_cluster, dap_stream_node_addr_t *a_member_addr)
{
pthread_rwlock_t *l_lock = &a_member->cluster->members_lock;
pthread_rwlock_wrlock(l_lock);
s_cluster_member_delete(a_member);
pthread_rwlock_unlock(l_lock);
dap_return_val_if_fail(a_cluster && a_member_addr, -1);
pthread_rwlock_wrlock(&a_cluster->members_lock);
dap_cluster_member_t *l_member = NULL;
HASH_FIND(hh, a_cluster->members, a_member_addr, sizeof(*a_member_addr), l_member);
if (l_member)
s_cluster_member_delete(l_member);
pthread_rwlock_unlock(&a_cluster->members_lock);
return l_member ? 0 : 1;
}
static void s_cluster_member_delete(dap_cluster_member_t *a_member)
......
......@@ -75,7 +75,7 @@ dap_cluster_t *dap_cluster_by_mnemonim(const char *a_mnemonim);
dap_cluster_member_t *dap_cluster_member_add(dap_cluster_t *a_cluster, dap_stream_node_addr_t *a_addr, int a_role, void *a_info);
dap_cluster_member_t *dap_cluster_member_find_unsafe(dap_cluster_t *a_cluster, dap_stream_node_addr_t *a_member_addr);
int dap_cluster_member_find_role(dap_cluster_t *a_cluster, dap_stream_node_addr_t *a_member_addr);
void dap_cluster_member_delete(dap_cluster_member_t *a_member);
int dap_cluster_member_delete(dap_cluster_t *a_cluster, dap_stream_node_addr_t *a_member_addr);
void dap_cluster_broadcast(dap_cluster_t *a_cluster, const char a_ch_id, uint8_t a_type, const void *a_data, size_t a_data_size,
dap_stream_node_addr_t *a_exclude_aray, size_t a_exclude_array_size);
json_object *dap_cluster_get_links_info_json(dap_cluster_t *a_cluster);
......