Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
Archivo: ccurl.c Proyecto: inevity/ebgn
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);
}
Ejemplo n.º 4
0
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);
}