void chfsnp_mgr_print_db(LOG *log, const CHFSNP_MGR *chfsnp_mgr) { uint32_t chfsnp_home_dir_num; uint32_t chfsnp_home_dir_pos; uint32_t chfsnp_num; uint32_t chfsnp_id; sys_log(log, "chfsnp mgr db root dir : %s\n", (char *)CHFSNP_MGR_DB_ROOT_DIR_STR(chfsnp_mgr)); sys_log(log, "chfsnp model : %u\n", CHFSNP_MGR_NP_MODEL(chfsnp_mgr)); sys_log(log, "chfsnp 1st hash algo id : %u\n", CHFSNP_MGR_NP_1ST_CHASH_ALGO_ID(chfsnp_mgr)); sys_log(log, "chfsnp 2nd hash algo id : %u\n", CHFSNP_MGR_NP_2ND_CHASH_ALGO_ID(chfsnp_mgr)); sys_log(log, "chfsnp item max num : %u\n", CHFSNP_MGR_NP_ITEM_MAX_NUM(chfsnp_mgr)); sys_log(log, "chfsnp max num : %u\n", CHFSNP_MGR_NP_MAX_NUM(chfsnp_mgr)); chfsnp_home_dir_num = (uint32_t)cvector_size(CHFSNP_MGR_NP_HOME_DIR_VEC(chfsnp_mgr)); for(chfsnp_home_dir_pos = 0; chfsnp_home_dir_pos < chfsnp_home_dir_num; chfsnp_home_dir_pos ++) { CSTRING *chfsnp_home_dir_cstr; chfsnp_home_dir_cstr = cvector_get_no_lock(CHFSNP_MGR_NP_HOME_DIR_VEC(chfsnp_mgr), chfsnp_home_dir_pos); if(NULL_PTR == chfsnp_home_dir_cstr || EC_TRUE == cstring_is_empty(chfsnp_home_dir_cstr)) { sys_log(log, "home dir %u #: (null)\n", chfsnp_home_dir_pos); } else { sys_log(log, "home dir %u #: %.*s\n", chfsnp_home_dir_pos, cstring_get_len(chfsnp_home_dir_cstr), (char *)cstring_get_str(chfsnp_home_dir_cstr)); } } chfsnp_num = (uint32_t)cvector_size(CHFSNP_MGR_NP_VEC(chfsnp_mgr)); for(chfsnp_id = 0; chfsnp_id < chfsnp_num; chfsnp_id ++) { CHFSNP *chfsnp; chfsnp = CHFSNP_MGR_NP(chfsnp_mgr, chfsnp_id); if(NULL_PTR == chfsnp) { sys_log(log, "np %u #: (null)\n", chfsnp_id); } else { chfsnp_print(log, chfsnp); } } return; }
static uint32_t __chfsnp_mgr_get_np_id_of_path(const CHFSNP_MGR *chfsnp_mgr, const uint32_t path_len, const uint8_t *path) { uint32_t chfsnp_num; uint32_t chfsnp_id; ASSERT(CHFSNP_MGR_NP_MAX_NUM(chfsnp_mgr) == cvector_size(CHFSNP_MGR_NP_HOME_DIR_VEC(chfsnp_mgr))); CHFSNP_MGR_NP_HOME_DIR_VEC_LOCK(chfsnp_mgr, LOC_CHFSNPMGR_0023); chfsnp_num = CHFSNP_MGR_NP_MAX_NUM(chfsnp_mgr); for(chfsnp_id = 0; chfsnp_id < chfsnp_num; chfsnp_id ++) { CSTRING *chfsnp_home_dir_cstr; uint32_t chfsnp_home_dir_len; uint8_t *chfsnp_home_dir_str; chfsnp_home_dir_cstr = CHFSNP_MGR_NP_HOME_DIR(chfsnp_mgr, chfsnp_id); if(NULL_PTR == chfsnp_home_dir_cstr || EC_TRUE == cstring_is_empty(chfsnp_home_dir_cstr)) { continue; } chfsnp_home_dir_len = (uint32_t)cstring_get_len(chfsnp_home_dir_cstr); chfsnp_home_dir_str = cstring_get_str(chfsnp_home_dir_cstr); sys_log(LOGSTDOUT, "[DEBUG] __chfsnp_mgr_get_np_id_of_path: %.*s vs %s\n", path_len, (char *)path, (char *)cstring_get_str(chfsnp_home_dir_cstr)); sys_log(LOGSTDOUT, "[DEBUG] __chfsnp_mgr_get_np_id_of_path: path_len %u, chfsnp_home_dir_len %u\n", path_len, chfsnp_home_dir_len); if(path_len < chfsnp_home_dir_len) { continue; } /*now path_len >= chfsnp_home_dir_len*/ if(path_len != chfsnp_home_dir_len && '/' != path[ chfsnp_home_dir_len ]) { continue; } if(0 == BCMP(path, chfsnp_home_dir_str, chfsnp_home_dir_len)) { CHFSNP_MGR_NP_HOME_DIR_VEC_UNLOCK(chfsnp_mgr, LOC_CHFSNPMGR_0024); return (chfsnp_id); } } CHFSNP_MGR_NP_HOME_DIR_VEC_UNLOCK(chfsnp_mgr, LOC_CHFSNPMGR_0025); return (CHFSNP_ERR_ID); }
static size_t __ccurl_write_data( void *buffer, size_t size, size_t nmemb, void *userp) { CSTRING *curl_reply_body; size_t seg_size; curl_reply_body = userp; seg_size = size * nmemb; dbg_log(SEC_0030_CCURL, 9)(LOGSTDNULL, "[DEBUG] __ccurl_write_data enter where curl_reply_body %p\n", curl_reply_body); if(NULL_PTR == curl_reply_body) { dbg_log(SEC_0030_CCURL, 0)(LOGSTDOUT, "error:__ccurl_write_data: curl_reply_body is null\n"); return (0); } dbg_log(SEC_0030_CCURL, 9)(LOGSTDNULL, "[DEBUG] __ccurl_write_data: [1] body %p: str %p, capacity %ld, len %ld\n", curl_reply_body, curl_reply_body->str, curl_reply_body->capacity, curl_reply_body->len); if(EC_TRUE == cstring_is_empty(curl_reply_body)) { cstring_expand_to(curl_reply_body, CCURL_BUFF_INIT_SIZE); } dbg_log(SEC_0030_CCURL, 9)(LOGSTDNULL, "[DEBUG] __ccurl_write_data: [2] body %p: str %p, capacity %ld, len %ld\n", curl_reply_body, curl_reply_body->str, curl_reply_body->capacity, curl_reply_body->len); if(EC_FALSE == cstring_append_chars(curl_reply_body, seg_size, buffer)) { dbg_log(SEC_0030_CCURL, 0)(LOGSTDOUT, "error:__ccurl_write_data: append %d bytes to curl_reply_body %p failed\n", seg_size, curl_reply_body); return (0); } dbg_log(SEC_0030_CCURL, 9)(LOGSTDNULL, "[DEBUG] __ccurl_write_data: [3] body %p: str %p, capacity %ld, len %ld\n", curl_reply_body, curl_reply_body->str, curl_reply_body->capacity, curl_reply_body->len); dbg_log(SEC_0030_CCURL, 9)(LOGSTDNULL, "[DEBUG] __ccurl_write_data leave where curl_reply_body %p len = %ld\n", curl_reply_body, cstring_get_len(curl_reply_body)); /* Return the number of bytes received, indicating to curl that all is okay */ return (seg_size); }
static EC_BOOL __chfsnp_mgr_load_db(CHFSNP_MGR *chfsnp_mgr, int chfsnp_mgr_fd) { UINT32 chfsnp_mgr_db_size; UINT8* chfsnp_mgr_db_buff; UINT32 chfsnp_mgr_db_offset; UINT32 chfsnp_home_dir_num; UINT32 chfsnp_home_dir_pos; uint32_t chfsnp_id; /*init offset*/ chfsnp_mgr_db_offset = 0; /*CHFSNP_MGR_NP_MODEL*/ chfsnp_mgr_db_size = sizeof(uint8_t); chfsnp_mgr_db_buff = (UINT8 *)&(CHFSNP_MGR_NP_MODEL(chfsnp_mgr)); if(EC_FALSE == c_file_load(chfsnp_mgr_fd, &chfsnp_mgr_db_offset, chfsnp_mgr_db_size, chfsnp_mgr_db_buff)) { sys_log(LOGSTDOUT, "error:__chfsnp_mgr_load_db: load np model failed\n"); return (EC_FALSE); } /*CHFSNP_MGR_NP_1ST_CHASH_ALGO_ID*/ chfsnp_mgr_db_size = sizeof(uint8_t); chfsnp_mgr_db_buff = (UINT8 *)&(CHFSNP_MGR_NP_1ST_CHASH_ALGO_ID(chfsnp_mgr)); if(EC_FALSE == c_file_load(chfsnp_mgr_fd, &chfsnp_mgr_db_offset, chfsnp_mgr_db_size, chfsnp_mgr_db_buff)) { sys_log(LOGSTDOUT, "error:__chfsnp_mgr_load_db: load 1st chash algo id failed\n"); return (EC_FALSE); } /*CHFSNP_MGR_NP_2ND_CHASH_ALGO_ID*/ chfsnp_mgr_db_size = sizeof(uint8_t); chfsnp_mgr_db_buff = (UINT8 *)&(CHFSNP_MGR_NP_2ND_CHASH_ALGO_ID(chfsnp_mgr)); if(EC_FALSE == c_file_load(chfsnp_mgr_fd, &chfsnp_mgr_db_offset, chfsnp_mgr_db_size, chfsnp_mgr_db_buff)) { sys_log(LOGSTDOUT, "error:__chfsnp_mgr_load_db: load 2nd chash algo id failed\n"); return (EC_FALSE); } /*CHFSNP_MGR_NP_ITEM_MAX_NUM*/ chfsnp_mgr_db_size = sizeof(uint32_t); chfsnp_mgr_db_buff = (UINT8 *)&(CHFSNP_MGR_NP_ITEM_MAX_NUM(chfsnp_mgr)); if(EC_FALSE == c_file_load(chfsnp_mgr_fd, &chfsnp_mgr_db_offset, chfsnp_mgr_db_size, chfsnp_mgr_db_buff)) { sys_log(LOGSTDOUT, "error:__chfsnp_mgr_load_db: load item max num failed\n"); return (EC_FALSE); } /*CHFSNP_MGR_NP_MAX_NUM*/ chfsnp_mgr_db_size = sizeof(uint32_t); chfsnp_mgr_db_buff = (UINT8 *)&(CHFSNP_MGR_NP_MAX_NUM(chfsnp_mgr)); if(EC_FALSE == c_file_load(chfsnp_mgr_fd, &chfsnp_mgr_db_offset, chfsnp_mgr_db_size, chfsnp_mgr_db_buff)) { sys_log(LOGSTDOUT, "error:__chfsnp_mgr_load_db: load disk max num failed\n"); return (EC_FALSE); } for(chfsnp_id = cvector_size(CHFSNP_MGR_NP_VEC(chfsnp_mgr)); chfsnp_id < CHFSNP_MGR_NP_MAX_NUM(chfsnp_mgr); chfsnp_id ++) { cvector_push_no_lock(CHFSNP_MGR_NP_VEC(chfsnp_mgr), NULL_PTR); } /*CHFSNP_MGR_NP_HOME_DIR_VEC*/ chfsnp_mgr_db_size = sizeof(UINT32); chfsnp_mgr_db_buff = (UINT8 *)&(chfsnp_home_dir_num); if(EC_FALSE == c_file_load(chfsnp_mgr_fd, &chfsnp_mgr_db_offset, chfsnp_mgr_db_size, chfsnp_mgr_db_buff)) { sys_log(LOGSTDOUT, "error:__chfsnp_mgr_load_db: load home dir vec size failed\n"); return (EC_FALSE); } for(chfsnp_home_dir_pos = 0; chfsnp_home_dir_pos < chfsnp_home_dir_num; chfsnp_home_dir_pos ++) { CSTRING *chfsnp_home_dir_cstr; chfsnp_home_dir_cstr = cstring_load(chfsnp_mgr_fd, &chfsnp_mgr_db_offset); if(NULL_PTR == chfsnp_home_dir_cstr) { sys_log(LOGSTDOUT, "error:__chfsnp_mgr_load_db: load home dir %u # failed\n", chfsnp_home_dir_pos); return (EC_FALSE); } if(EC_TRUE == cstring_is_empty(chfsnp_home_dir_cstr)) { cstring_free(chfsnp_home_dir_cstr); cvector_push_no_lock(CHFSNP_MGR_NP_HOME_DIR_VEC(chfsnp_mgr), NULL_PTR); } else { cvector_push_no_lock(CHFSNP_MGR_NP_HOME_DIR_VEC(chfsnp_mgr), (void *)chfsnp_home_dir_cstr); } } return (EC_TRUE); }