您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ws_strdup函数代码示例

51自学网 2021-06-03 10:08:02
  C++
这篇教程C++ ws_strdup函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ws_strdup函数的典型用法代码示例。如果您正苦于以下问题:C++ ws_strdup函数的具体用法?C++ ws_strdup怎么用?C++ ws_strdup使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ws_strdup函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ws_add_res_struct_string

/***************************************************************************** 函 数 名  : ws_add_res_struct_string 功能描述  : 该接口提供给web service钩子函数,用于添加web service结果参数             本函数增加一个字符串类型结构参数 输入参数  : ws_env     ---- web service执行环境             ws_req_res ---- web service参数结构             name       ---- 参数名称,外面分配空间             value      ---- 参数值 输出参数  : 无 返 回 值  : ERROR_SUCCESS			    添加成功             ERROR_SYSTEM    添加失败 调用函数  :  被调函数  :  ============================================================================ 修改历史      :  1.日    期   : 2008年8月8日         修改内容   : 新生成函数*****************************************************************************/u_int32_t ws_add_res_struct_string(WS_ENV* ws_env, WS_REQ_RES* ws_req_res,                           const char* name, const char* value){    WS_PARA *para;//http_out("/nws_add_res_struct_string:%s, %s", name, value);    if((NULL == ws_env) || (NULL == ws_req_res))    {        return ERROR_SYSTEM;    }    if (ws_req_res->res_count >= MAX_RES_STRUCT_PARA_COUNT)    {        WEB_SEND_DEBUG_s("The max response parameter is reached.");        return ERROR_SYSTEM;    }    para = &(ws_req_res->response[ws_req_res->res_count++]);    para->type = WS_PARA_TYPE_STRING;    para->name = ws_strdup(ws_env, name);    para->data = ws_strdup(ws_env, value);    return ERROR_SUCCESS;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:41,


示例2: ws__getDnsmasqInfo

int ws__getDnsmasqInfo(WS_ENV* ws_env, struct ws__getDnsmasqInfoResponse *ret){    CONFIG * cfg = NULL;    cfg = config_load(CFG_DNS_PATH);    if(NULL == cfg)    {        return ws_send_soap_error(ws_env, "Open dns config file failed.");    }    if(config_getint(cfg, "dnsmasq_switch", 0))    {        ret->ret.dnsmasqstat = ws_strdup(ws_env, "enable");    }    else    {        ret->ret.dnsmasqstat = ws_strdup(ws_env, "disable");    }    config_free(cfg);    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:21,


示例3: ws__getFluxConfig

/******************************************************************************* 函数名称  : ws__getFluxConfig 功能描述  : 获得流量分析配置 输入参数  : 无 输出参数  : 无 返 回 值  : WS_OK                      ----操作成功             flux_manage_error_code     ----操作失败-------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者   : zhangfaqi 修改目的   : 创建函数 修改日期   : 2011-4-30*******************************************************************************/s32 ws__getFluxConfig(WS_ENV* ws_env, struct ws__getFluxConfigResponse *ret){    sqlite3              *db = NULL;    sqlite3_res          res;    s32                  ws_ret = WS_OK;    s32                  sql_ret = SQLITE_OK;    const s8*            err_info;    s8                   *tmpStr;    db = sqlite3_open_ex(1, FLUX_MANAGE_DBFILE);    if ( NULL == db )    {        ws_ret = ERR_FLUX_MANAGE_OPEN_DB_FAILD;        goto label_ret;    }    /* 查询流量是否开启配置 */    snprintf(g_sqlite_sql_buf, SQLITE_SQL_BUF_SIZE,         "SELECT * FROM " FLUX_MANAGE_TAB_CONFIG);    if ( SQLITE_OK != sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res) )    {        ws_ret = ERR_FLUX_MANAGE_EXEC_SQL_FAILD;        goto label_ret;    }    /* 数据库只有一条配置,所以取第一条即可 */    sql_ret += sqlite3_get_s32_ex(res, 0, FLUX_MANAGE_CONFIG_ENABLE, &(ret->ret.flag));    sql_ret += sqlite3_get_s32_ex(res, 0, FLUX_MANAGE_CONFIG_TYPE,   &(ret->ret.logType));    sql_ret += sqlite3_get_s32_ex(res, 0, FLUX_MANAGE_CONFIG_PORT,   &(ret->ret.serverPort));    sql_ret += sqlite3_get_str_ex(res, 0, FLUX_MANAGE_CONFIG_IP,     &tmpStr);    ret->ret.serverIp = ws_strdup(ws_env, tmpStr);        if ( SQLITE_OK != sql_ret )    {        ws_ret = ERR_FLUX_MANAGE_GET_RES_FAILD;        goto label_ret;    }label_ret:    sqlite3_res_free_ex(res);    res = NULL;    sqlite3_close_ex(db);    db = NULL;        if (WS_OK != ws_ret)	{	    err_info = flux_manage_error_str(ws_ret);  		return  ws_send_soap_error(ws_env, err_info);	}    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:65,


示例4: ws__mldEnableIfGet

/****************************************************************************** 函数名称: ws__mldEnableIfGet 功能描述: 取得mld显示信息 输入参数: ret:结果集 输出参数: ret:结果集 返 回 值: 0表示返回成功-------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者: 刘晓贺 修改目的: 新生成函数 修改日期: 2011-2-14*******************************************************************************/s32 ws__mldEnableIfGet(WS_ENV * ws_env, struct ws__getIp6McastMldEnableIfResponse *ret){    s32 i = 0;    s32 num = 0;    s8 *ifname = NULL;    s32 result = 0;    sqlite3 *db = NULL;    sqlite3_res res = NULL;    struct Ip6McastMldEnableIf *data = NULL;    db = sqlite3_open_ex(1, IP_MC_CFG_DB);    if(NULL == db)    {        return ws_send_soap_error(ws_env, "open basic db failed!");    }    result = sqlite3_exec_query_ex(db, "select count(*) as count from tb_basic_interface_info;", &res);    if(SQLITE_OK != result)    {		sqlite3_close_ex(db);        return ws_send_soap_error(ws_env, "sqlite3_exec_query_ex error!");    }      /*获取当前数据库中的记录数*/    sqlite3_get_s32_ex(res, 0, "count", &num);    /*释放结果集,多次查询时,每次都需要释放*/    sqlite3_res_free_ex(res);    res = NULL;        data = (struct Ip6McastMldEnableIf *)ws_malloc(ws_env, num * sizeof(struct Ip6McastMldEnableIf));    result = sqlite3_exec_query_ex(db, "select * from tb_basic_interface_info;", &res);    if(SQLITE_OK != result)    {		sqlite3_close_ex(db);        return ws_send_soap_error(ws_env, "sqlite3_exec_query_ex error!");    }    for(i = 0; i < num; i++)    {        sqlite3_get_str_ex(res, i, "ifname", &ifname);        data[i].ifname = ws_strdup(ws_env, ifname);            }        /*释放结果集,多次查询时,每次都需要释放*/    sqlite3_res_free_ex(res);    res = NULL;        sqlite3_close_ex(db);    ret->ret.sum = num;    ret->ret.res_USCOREcount = num;    ret->ret.__size = num;    ret->ret.__ptrres = data;        return SQLITE_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:64,


示例5: ws__getAvSigsType

s32 ws__getAvSigsType(WS_ENV *soap, struct ws__getAvSigsListType *ret){    sqlite3 *dba_con = NULL;    sqlite3_res dba_res = NULL;    u32 count = 0;    u32 i = 0;    s8 *tmp = NULL;    struct AvSigsType *Info = NULL;    dba_con = sqlite3_open_ex(1, AV_DESC_DBFILE);    if (NULL == dba_con)    {        return WS_OK;    }    snprintf(g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), "SELECT COUNT(*) AS count FROM tb_av_description_category;");    sqlite3_exec_query_ex(dba_con, g_sqlite_sql_buf, &dba_res);    sqlite3_get_u32_ex(dba_res, 0, "count", &count);    ret->ret.sum = (s32)count;    ret->ret.res_USCOREcount = ret->ret.__size = (s32)count;    if(0 == count)    {        goto label_ret;    }    Info = (struct AvSigsType *)ws_malloc(soap, count * sizeof(struct AvSigsType));    if(NULL == Info)    {        goto label_ret;    }    ret->ret.__ptrres = Info;    sqlite3_res_free_ex(dba_res);    dba_res = NULL;    snprintf(g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf),  "SELECT * FROM tb_av_description_category;");    sqlite3_exec_query_ex(dba_con, g_sqlite_sql_buf, &dba_res);    for(i = 0; i < count; i++)    {        sqlite3_get_s32_ex(dba_res, (s32)i, "category_id", &Info[i].value);        sqlite3_get_str_ex(dba_res, (s32)i, "category_name", &tmp);        Info[i].name= ws_strdup(soap, tmp);    }label_ret:    sqlite3_res_free_ex(dba_res);    dba_res = NULL;    sqlite3_close_ex(dba_con);	dba_con = NULL;    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:52,


示例6: cwmp_node_get_TrapDestination

/******************************************************************************* 函数名称  : cwmp_node_get_TrapDestination  功能描述  : 取得Trap接收主机的IP 输入参数  : ws_env     运行环境 输出参数  : get_value  返回值             get_type   返回类型 返 回 值  : 执行成功返回ERR_SUCCESS             否则返回失败-------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者  : 雷宁 修改目的  : 新函数 修改日期  : 2010-03-26*******************************************************************************/u32 cwmp_node_get_TrapDestination(WS_ENV* ws_env, s8** get_value, u32 *get_type){    char str[STRSIZE]={0};    if(!ERROR_SUCCESS == getSnmpTrapDesIp(str))    {        return ERR_CWMP_INTERNAL;    }	*get_value = ws_strdup(ws_env, str);    *get_type = CWMP_VALUE_TYPE_STRING;        return ERROR_SUCCESS;    }
开发者ID:millken,项目名称:zhuxianB30,代码行数:27,


示例7: cwmp_node_get_ReadWriteCommunity

/******************************************************************************* 函数名称  : cwmp_node_get_ReadWriteCommunity  功能描述  : 取得SNMP读写口令 输入参数  : ws_env     运行环境 输出参数  : get_value  返回值             get_type   返回类型 返 回 值  : 执行成功返回ERR_SUCCESS             否则返回失败-------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者  : 雷宁 修改目的  : 新函数 修改日期  : 2010-03-16*******************************************************************************/u32 cwmp_node_get_ReadWriteCommunity(WS_ENV* ws_env, s8** get_value, u32 *get_type){    char str[STRSIZE]={0};    if(!ERROR_SUCCESS == snmp_get_sysRwCommon(str, STRSIZE))    {        return ERR_CWMP_INTERNAL;    }	*get_value = ws_strdup(ws_env, str);    *get_type = CWMP_VALUE_TYPE_STRING;        return ERROR_SUCCESS;    }
开发者ID:millken,项目名称:zhuxianB30,代码行数:27,


示例8: cwmp_node_get_contract

/******************************************************************************* 函数名称  : cwmp_node_get_contract  功能描述  : 取得SNMP联系人信息 输入参数  : ws_env     运行环境 输出参数  : get_value  返回值             get_type   返回类型 返 回 值  : 执行成功返回ERR_SUCCESS             否则返回失败-------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者  : 雷宁 修改目的  : 新函数 修改日期  : 2010-03-16*******************************************************************************/u32 cwmp_node_get_contract(WS_ENV* ws_env, s8** get_value, u32 *get_type){    char str[STRSIZE]={0};    if(!ERROR_SUCCESS == snmp_get_syscontact(str, STRSIZE))    {        return ERR_CWMP_INTERNAL;    }	*get_value = ws_strdup(ws_env, str);    *get_type = CWMP_VALUE_TYPE_STRING;        return ERROR_SUCCESS;    }
开发者ID:millken,项目名称:zhuxianB30,代码行数:27,


示例9: ws_add_req_para_string

/***************************************************************************** 函 数 名  : ws_add_req_para_string 功能描述  : 该接口提供给display/submit流程,用于调用web service             本函数增加一个字符串类型请求参数             字符串空间在外面分配 输入参数  : ws_env     ---- web service执行环境             ws_req_res ---- web service参数结构             name       ---- 参数名称,外面分配空间             value      ---- 参数值 输出参数  : 无 返 回 值  : ERROR_SUCCESS			    添加成功             ERROR_SYSTEM    添加失败 调用函数  :  被调函数  :  ============================================================================ 修改历史      :  1.日    期   : 2008年8月8日         修改内容   : 新生成函数*****************************************************************************/u_int32_t ws_add_req_para_string(WS_ENV* ws_env, WS_REQ_RES* ws_req_res,                           const char* name, const char* value){    WS_PARA *para;    if((NULL == ws_env) || (NULL == ws_req_res))    {        return ERROR_SYSTEM;    }    if (ws_req_res->req_count >= MAX_REQ_PARA_COUNT)    {        char err_string[512] = {0};        snprintf(err_string, sizeof(err_string), "The max number of web service parameter is %d", MAX_REQ_PARA_COUNT);        SubEnv__set_err(err_string);        return ERROR_SYSTEM;    }    para = &(ws_req_res->request[ws_req_res->req_count++]);    para->type = WS_PARA_TYPE_STRING;    para->name = ws_strdup(ws_env, name);    para->data = ws_strdup(ws_env, value);        return ERROR_SUCCESS;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:44,


示例10: tinfotostatus

/***************************************************************************** 函 数 名  : tinfotostatus 功能描述  : 交换机:把后两个结构体的值赋给第一个结构体。现定每个聚合组最多8个物理端口,因此list长度为1024存ifindex列表远够。 输入参数  : struct port_aggr_bondInfo* aggr_Info             ---- 赋值的结构体                              struct port_aggr_statusInfo* bond_Info         ----  赋值的结构体 输出参数  : struct AggrStatus* aggrStatus             ---- 被赋值结构体 返 回 值  : ERR_OK             ---- 执行成功             ws_new_soap_fault  ---- 执行失败 ----------------------------------------------------------------------------- 最近一次修改记录: 修改作者: liuguang 修改目的: 生成新函数 修改日期: 2009年9月30日*****************************************************************************/void tinfotostatus(WS_ENV* soap, struct AggrStatus* aggrStatus, struct port_aggr_bondInfo* aggr_Info, struct port_aggr_statusInfo* bond_Info){    s8 name[IFNAMSIZ];    char iflist[1024];    s8  dev_id[32];    aggrStatus->aggrID      = (s32)aggr_Info->aggrID;    aggrStatus->aggrType    = (s32)aggr_Info->aggrType;    aggrStatus->aggrHash    = (s32)aggr_Info->aggrHash;    aggrStatus->aggrName = ws_strdup(soap, aggr_Info->aggrName);    snprintf(dev_id, sizeof(dev_id), "%X,%02X:%02X:%02X:%02X:%02X:%02X", bond_Info->aggrDevID.sys_priority,        bond_Info->aggrDevID.sys_mac_addr.mac_addr_value[0],        bond_Info->aggrDevID.sys_mac_addr.mac_addr_value[1],        bond_Info->aggrDevID.sys_mac_addr.mac_addr_value[2],        bond_Info->aggrDevID.sys_mac_addr.mac_addr_value[3],        bond_Info->aggrDevID.sys_mac_addr.mac_addr_value[4],        bond_Info->aggrDevID.sys_mac_addr.mac_addr_value[5]);    aggrStatus->aggrDevID1 = ws_strdup(soap, dev_id);    if(BOND_STATIC == aggr_Info->aggrType)    {        aggrStatus->aggrDevID2  = ws_strdup(soap, "------");    }    else    {        snprintf(dev_id, sizeof(dev_id), "%X,%02X:%02X:%02X:%02X:%02X:%02X", bond_Info->partner_aggrDevID.sys_priority,            bond_Info->partner_aggrDevID.sys_mac_addr.mac_addr_value[0],            bond_Info->partner_aggrDevID.sys_mac_addr.mac_addr_value[1],            bond_Info->partner_aggrDevID.sys_mac_addr.mac_addr_value[2],            bond_Info->partner_aggrDevID.sys_mac_addr.mac_addr_value[3],            bond_Info->partner_aggrDevID.sys_mac_addr.mac_addr_value[4],            bond_Info->partner_aggrDevID.sys_mac_addr.mac_addr_value[5]);        aggrStatus->aggrDevID2 = ws_strdup(soap, dev_id);    }    /* 不存在或未添加 */    if (0xFFFF == bond_Info->min_port || 0xFFFE == bond_Info->min_port)    {        aggrStatus->aggrMinPort = "";    }    else    {        snprintf(name, sizeof(name), "%d", IFM_GET_ETH_IFINDEX(bond_Info->min_port));        aggrStatus->aggrMinPort = ws_strdup(soap, name);    }    iflist[0] = '/0';    port_aggr_u8toeth_string(iflist, bond_Info->select_ports);    aggrStatus->aggrSelPort = ws_strdup(soap, iflist);    iflist[0] = '/0';    port_aggr_u8toeth_string(iflist, bond_Info->unselect_ports);    aggrStatus->aggrUnsPort = ws_strdup(soap, iflist);    return;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:67,


示例11: ws__getBgpGlobalInfo

s32 ws__getBgpGlobalInfo(WS_ENV * ws_env, s32 afi, s32 safi, struct BgpGlobalInfoRespone * ret){    web_bgp_global_info_t info;    memset(ret,0,sizeof(struct BgpGlobalInfoRespone));    if( 1 != socket_api_request(WEB_BGP_APICMD_GET_GLO,NULL,0,&info,sizeof(web_bgp_global_info_t)) )        return ws_send_soap_error(ws_env,"send getBgpGlobalInfo command error!");    ret->ret.state = info.state;    ret->ret.asid = info.asid ;    ret->ret.disEBGP=info.disEBGP;    ret->ret.disIBGP=info.disIBGP;    ret->ret.disLOCAL=info.disLOCAL;    ret->ret.settype= info.settype;    ret->ret.ebgpmaxpath = info.ebgpmaxpath;    ret->ret.ibgpmaxpath = info.ibgpmaxpath;    ret->ret.grState= info.grState;    ret->ret.grRestart = info.grRestartTime;    ret->ret.grStale  = info.grStaleTime ;    ret->ret.rtid = ws_strdup(ws_env, inet_ntoa(info.rtid));    ret->ret.redis= ws_strdup(ws_env,(s8*)info.redis);    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:23,


示例12: ws__getLocalUserInfoSync

/***************************************************************************** 函 数 名      : ws__getLocalUserInfoSync 功能描述  : 本地用户远程同步 输入参数  : soap       ---- web service执行环境 输出参数  : ret        ---- 返回结果 返 回 值      : WS_OK      ---- 执行成功 -------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者   : 仇俊杰 修改目的   : 新添加函数 修改日期   : 2011-2-22*****************************************************************************/int ws__getLocalUserInfoSync(WS_ENV* ws_env, struct getLocalUserRemoteSyncResponse * ret){	CONFIG * cfg = NULL;    cfg = config_load(LOCAL_USER_CFG_PATH);    if (NULL == cfg)    {        return ws_send_soap_error (ws_env, "Open file failed!");    }    ret->ret.umcPort = config_getint(cfg, "umc_port", 80);	ret->ret.umcIp = ws_strdup (ws_env, config_get(cfg, "umc_ip", "127.0.0.1"));    config_free(cfg);        return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:27,


示例13: ws__getBgpAggInfo

s32 ws__getBgpAggInfo(WS_ENV * ws_env,s32 afi, s32 safi, s32 nstart, s32 nsize, struct BgpAggInfoRespone * ret ){    struct BgpAggInfo * out = NULL;    web_bgp_aggregate_info_t * info = (void*)buff;    s32 count ,i ;    s32 sum = 0 , max = 0;    u8  iptrans[INET6_ADDRSTRLEN];    u8 *ipret=NULL;        if( socket_api_write(WEB_BGP_APICMD_GET_AGG,NULL,0) < 0 )        return ws_send_soap_error(ws_env,"send command error!");    do{        count = socket_api_read(WEB_BGP_APICMD_GET_AGG,info,SOCKET_API_BUFFER_SIZE);        if( count <= 0 )        {            break;        }        if( max < sum + count )        {            void * tmp = ws_malloc(ws_env,(sum + count)*sizeof(struct BgpAggInfo));            if( out != NULL )            {                memcpy(tmp,out,sum * sizeof(struct BgpAggInfo));                ws_free(ws_env,out);            }            out = tmp ;            max = sum + count ;        }        for(i=0;i<count;i++)        {            ipret = (u8*)inet_ntop((s32)info[i].p.family,(void*)&info[i].p.u,(s8*)iptrans,INET6_ADDRSTRLEN);            if( ipret == NULL )                 continue;            out[sum].addr = ws_strdup(ws_env,(s8*)ipret);            out[sum].mask = info[i].p.prefixlen;            out[sum].sonly= info[i].summary_only;            out[sum].asset=info[i].as_set;            sum++;        }    }while( ! socket_api_check_flag(SOCKET_API_FLAG_LASTONE) );    ret->ret.sum = sum ;    ret->ret.__ptrres = out ;    ret->ret.__size = sum ;    ret->ret.res_USCOREcount = sum ;    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:50,


示例14: ws__getHotbConfig

/******************************************************************************* 函数名称  : ws__getHotbConfig 功能描述  : 获取双机热备配置信息 输入参数  : soap       ---- web service执行环境 输出参数  : ret        ---- 返回结果 返 回 值  : WS_OK        ---- 执行成功             soapFault  ---- 执行失败--------------------------------------------------------------------------------  最近一次修改记录  :  修改作者  : 吕进  修改目的  : 双机热备配置页面整改  修改日期  : 2010年10月8日 *******************************************************************************/int ws__getHotbConfig(WS_ENV* soap, struct ws__getHotbConfigResponse *ret){    int retcode;    struct hotb_config_s hotb_cfg;    s32 hotbakmode = 0;    retcode = hotb_get_config(&hotb_cfg);       //vsm    s8 vsm_port_name[INTERFACE_NAME_MAX_LENGTH] = {0};    s8* show_name;    s8 state[HOTB_STATE_LEN];        if( 0 == retcode)    {        // 根据双机热备配置信息,获取双机热备配置类型        if (HOTB_SWITCH_ON == hotb_cfg.hotb_switch && HOTB_SILENCE_MODE_ON == hotb_cfg.silenece_mode)        {            ret->ret.hotbakType = HOTB_SILENCE_HOTBAK;        }        else if (HOTB_SWITCH_NON_ON == hotb_cfg.hotb_switch && HOTB_NOT_SUPPORT_NO_SYMMETRY_ROUTE == hotb_cfg.supportNoSymmetryRoute)        {            ret->ret.hotbakType = HOTB_ORDINARY_HOTBAK;        }        else if (HOTB_SWITCH_ON == hotb_cfg.hotb_switch && HOTB_NOT_SUPPORT_NO_SYMMETRY_ROUTE == hotb_cfg.supportNoSymmetryRoute)        {            ret->ret.hotbakType = HOTB_ADVANCED_HOTBAK;        }        else if (HOTB_SWITCH_ON == hotb_cfg.hotb_switch && HOTB_SUPPORT_NO_SYMMETRY_ROUTE == hotb_cfg.supportNoSymmetryRoute)        {            ret->ret.hotbakType = HOTB_NON_SYMMETRY_HOTBAK;        }        else        {            ret->ret.hotbakType = HOTB_CLOSE;        }        ret->ret.ip = ws_strdup(soap, hotb_cfg.hotb_ip);                ifm_name2stack(hotb_cfg.hotb_ifname, vsm_port_name, sizeof(vsm_port_name), &show_name);        ret->ret.ifname = ws_strdup(soap, show_name);                hotb_get_bak_mod(&hotbakmode);                ret->ret.hotbakmode = hotbakmode;		ret->ret.syncname = ws_strdup(soap, hotb_cfg.sync_port);            }    else    {        ret->ret.hotbakType = HOTB_CLOSE;        ret->ret.ip = ws_strdup(soap, "");		ret->ret.ifname = ws_strdup(soap, "");        ret->ret.hotbakmode = 0;    }        hotb_silence_get_state(state);    ret->ret.state = ws_strdup(soap, state);        return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:70,


示例15: rlt_get_rule_by_policyid

s32 rlt_get_rule_by_policyid(WS_ENV* soap,sqlite3 *db,struct RltRuleInfo *rule_info_list, u32 policyId){    s32 sql_ret                         = SQLITE_OK;        sqlite3_res res                     = NULL;    s32 res_row;	s8 * unit;        snprintf(g_sqlite_sql_buf, SQLITE_SQL_BUF_SIZE, "SELECT * FROM tb_rlimit_rule where policy_id=%u;", policyId);    sql_ret += sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res);    while ( SQLITE_OK == (sql_ret += sqlite3_res_next_ex(res, &res_row)) && SQLITE_RES_END != res_row )    {        sql_ret += sqlite3_get_s32_ex(res, res_row, "policy_id", &(rule_info_list[res_row].policyId));        sql_ret += sqlite3_get_s32_ex(res, res_row, "rule_id", &(rule_info_list[res_row].ruleId));        sql_ret += sqlite3_get_s32_ex(res, res_row, "app_group_id", &(rule_info_list[res_row].appId));        sql_ret += sqlite3_get_s32_ex(res, res_row, "cir", &(rule_info_list[res_row].cir));				if (SQLITE_OK != sql_ret)		{										break;		}				sql_ret += sqlite3_get_str_ex(res, res_row, "unit", &unit);		rule_info_list[res_row].unit = ws_strdup(soap,unit);		        if (SQLITE_OK != sql_ret)        {        	            break;        }						    }		    sqlite3_res_free_ex(res);	res = NULL;    if (SQLITE_OK != sql_ret)    {    	        return ERROR_FAIL;    }    return ERROR_SUCCESS;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:49,


示例16: ws_bc_add_function

WsBool ws_bc_add_function(WsBc *bc, WsUInt8 *index_return, char *name,                          WsUInt8 num_arguments, WsUInt8 num_locals,                          WsUInt32 code_size, unsigned char *code){    WsBcFunction *nf;    /* First, add the function to the function pool. */    nf = ws_realloc(bc->functions,                    (bc->num_functions + 1) * sizeof(WsBcFunction));    if (nf == NULL)        return WS_FALSE;    bc->functions = nf;    bc->functions[bc->num_functions].num_arguments = num_arguments;    bc->functions[bc->num_functions].num_locals = num_locals;    bc->functions[bc->num_functions].code_size = code_size;    bc->functions[bc->num_functions].code = ws_memdup(code, code_size);    if (bc->functions[bc->num_functions].code == NULL)        return WS_FALSE;    /* Save the index of the function. */    *index_return = bc->num_functions++;    /* For external functions (which have name), add a name entry to the       function name pool. */    if (name) {        WsBcFunctionName *nfn;        nfn = ws_realloc(bc->function_names,                         ((bc->num_function_names + 1)                          * sizeof(WsBcFunctionName)));        if (nfn == NULL)            return WS_FALSE;        bc->function_names = nfn;        bc->function_names[bc->num_function_names].index = *index_return;        bc->function_names[bc->num_function_names].name = ws_strdup(name);        if (bc->function_names[bc->num_function_names].name == NULL)            return WS_FALSE;        bc->num_function_names++;    }    /* All done. */    return WS_TRUE;}
开发者ID:christophgysin,项目名称:kannel,代码行数:49,


示例17: ws__getAcceptCtrlVlanInfo

/***************************************************************************** 函 数 名  : ws__getAcceptCtrlVlanInfo 功能描述  : 获取端口的接收控制vlan列表 输入参数  : 输出参数  : 返 回 值  : WS_OK         		---- 执行成功             else	            ---- 执行失败 ----------------------------------------------------------------------------- 最近一次修改记录: 修改作者: wuyang 修改目的: 生成新函数 修改日期: 2011年10月31日*****************************************************************************/int ws__getAcceptCtrlVlanInfo(WS_ENV* soap, struct ws_getAcceptVlanInfoResponse* ret){    u32 sys_error_code;    s32 count;    s32 i;    s8 vlan_str[SMART_LINK_VLAN_LEN] ={0};    accept_vlan_s* accept_vlan;    struct AcceptVlanInfo* AcceptVlan;    sys_error_code = smart_link_dba_get_accept_vlan_count(&count);    if (ERROR_SUCCESS != sys_error_code)    {        return ws_send_soap_error(soap, smart_link_error_str(sys_error_code));    }    if (0 == count)    {        return WS_OK;    }    accept_vlan = (accept_vlan_s*)ws_malloc(soap, (u32)count * sizeof(accept_vlan_s));    if (NULL == accept_vlan)    {        return ws_send_soap_error(soap, smart_link_error_str(ERR_SMART_LINK_FAIL_MALLOC));    }    AcceptVlan = (struct AcceptVlanInfo*)ws_malloc(soap, (u32)count * sizeof(struct AcceptVlanInfo));    if (NULL == AcceptVlan)    {        return ws_send_soap_error(soap, smart_link_error_str(ERR_SMART_LINK_FAIL_MALLOC));    }    sys_error_code = smart_link_dba_get_accept_vlan_info(count, accept_vlan);    if (ERROR_SUCCESS != sys_error_code)    {        return ws_send_soap_error(soap, smart_link_error_str(sys_error_code));    }    for (i = 0; i < count; i++)    {        AcceptVlan[i].AcceptPort = accept_vlan[i].ifindex;        vlan_bitmap_to_string(accept_vlan[i].accept_ctrl_vlan, vlan_str);        AcceptVlan[i].AcceptCtrlVlan = ws_strdup(soap, vlan_str);    }    ret->ret.sum             = count;    ret->ret.res_USCOREcount = count;    ret->ret.__size          = count;	ret->ret.__ptrres		 = AcceptVlan;    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:62,


示例18: ws__mailCfgget

s32 ws__mailCfgget(WS_ENV *soap, struct ws__getpdfCfg *ret){    sqlite3 *dba_con = NULL;    sqlite3_res dba_res = NULL;    s8* tmp = NULL;    FILE *fp = NULL;    u8 buf[64] = {0};        dba_con = sqlite3_open_ex(1, "/config/db/ssa_cfg.db");    if (dba_con == NULL)    {        return WS_OK;    }    snprintf(g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), "SELECT * FROM tb_pdf_mail_cfg");    sqlite3_exec_query_ex(dba_con, g_sqlite_sql_buf, &dba_res);    sqlite3_get_str_ex(dba_res, 0, "server_ip", &tmp);    ret->ret.serverIp = ws_strdup(soap, tmp);    sqlite3_get_str_ex(dba_res, 0, "mail_username", &tmp);    ret->ret.mailUsrname= ws_strdup(soap, tmp);    sqlite3_get_str_ex(dba_res, 0, "password", &tmp);    ret->ret.password= ws_strdup(soap, tmp);    sqlite3_get_str_ex(dba_res, 0, "mail_addr", &tmp);    ret->ret.mailAddr = ws_strdup(soap, tmp);    sqlite3_get_str_ex(dba_res, 0, "time", &tmp);    ret->ret.time = ws_strdup(soap, tmp);        sqlite3_res_free_ex(dba_res);    sqlite3_close_ex(dba_con);    fp = fopen("/tmp/pdfname", "r");    if (fp == NULL)    {        ret->ret.pdfName = ws_strdup(soap, "");        return WS_OK;    }        fread(buf, 64, 1, fp);    ret->ret.pdfName = ws_strdup(soap, (s8*)buf);    fclose(fp);    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:45,


示例19: ws__showBgpNeighbor

s32 ws__showBgpNeighbor(WS_ENV * ws_env,s32 afi, s32 safi,s32 nstart, s32 nsize,struct BgpShowNeighborResponse * ret){    s8 temp[SU_ADDRSTRLEN];    s32 count = 0 , i = 0;    s32 sum = 0 ;    s32 max = 0;    struct BgpShowNeighbor * out = NULL;    web_bgp_neighbor_show_info_t * info = (void*)buff;    if( socket_api_write(WEB_BGP_APICMD_SHOW_NBR,NULL,0) < 0 )        return ws_send_soap_error(ws_env,"send command error!");    do{        count = socket_api_read(WEB_BGP_APICMD_SHOW_NBR,info,SOCKET_API_BUFFER_SIZE);        if( count <= 0 )        {            break;        }        if( max < sum + count )        {            void * tmp = ws_malloc(ws_env,(sum + count)*sizeof(struct BgpShowNeighbor));            if( out != NULL )            {                memcpy(tmp,out,sum * sizeof(struct BgpShowNeighbor));                ws_free(ws_env,out);            }            out = tmp ;            max = sum + count ;        }        for(i=0;i<count;i++)        {            out[sum].hostip = ws_strdup(ws_env, sockunion2str(&(info[i].su), temp, SU_ADDRSTRLEN) ) ;            out[sum].asid   = info[i].asid ;            out[sum].hostid = ws_strdup(ws_env,inet_ntoa(info[i].id));            out[sum].state  = ws_strdup(ws_env,bgp_status_msg[(s32)info[i].state]);            out[sum].localinterface = ws_strdup(ws_env,inet_ntoa(info[i].nexthop));            out[sum].uptime = ws_strdup(ws_env,web_time_dump(info[i].t_uptime));            out[sum].overtime = ws_strdup(ws_env,web_time_dump(info[i].t_dead));            sum++;        }    }while( ! socket_api_check_flag(SOCKET_API_FLAG_LASTONE) );    ret->ret.sum = sum ;    ret->ret.__ptrres = out ;    ret->ret.__size = sum ;    ret->ret.res_USCOREcount = sum ;    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:49,


示例20: cwmp_node_get_PeriodicInformTime

 /******************************************************************************* 函数名称  : cwmp_node_get_PeriodicInformTime  功能描述  : 取得CPE连接ACS的某一个绝对时间 输入参数  : ws_env     运行环境 输出参数  : get_value  返回值             get_type   返回类型 返 回 值  : 执行成功返回ERR_SUCCESS             否则返回失败-------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者  : 雷宁 修改目的  : 新函数 修改日期  : 2010-03-09*******************************************************************************/u32 cwmp_node_get_PeriodicInformTime(WS_ENV* ws_env, s8** get_value, u32 *get_type){        CONFIG * cfg = NULL;    const s8 *time_config = NULL;    s8 time_str[32] = {0};    time_t PeriodicInformTime;        struct tm *time_cur;            cfg = config_load(CWMP_CONF_FILE_PATH);    if (NULL != cfg)    {               time_config = config_get(cfg, "time", NULL);        if(NULL == time_config)        {         /* cft在上面load时已经分配空间,下面往配置文件写time时还会给分配空间,但并没有释放,            会存在内存泄漏,所以在这里释放空间并且重新加载配置文件*/            config_free(cfg);            cfg = config_load(CWMP_CONF_FILE_PATH);                           time(&PeriodicInformTime);                          time_cur = gmtime(&PeriodicInformTime);            if( NULL != time_cur)            {                snprintf(time_str,32,"%04d-%02d-%02d %02d:%02d:%02d",                (1900+time_cur->tm_year),(1+time_cur->tm_mon),time_cur->tm_mday,time_cur->tm_hour,time_cur->tm_min,time_cur->tm_sec);                time_str[strlen(time_str)]='/0';            }            cfg = config_set(cfg, "time", time_str);            config_store(cfg, CWMP_CONF_FILE_PATH);        }        else        {            snprintf(time_str,32,"%s",time_config);        }           }           *get_value = ws_strdup(ws_env, time_str);            *get_type = CWMP_VALUE_TYPE_STRING;    config_free(cfg);    return ERROR_SUCCESS;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:56,


示例21: ws__securityZoneGetNames

s32 ws__securityZoneGetNames(WS_ENV *soap, s8 *vfwName, struct ws__getTextResponse *ret){    s32 ws_ret = WS_OK;    sqlite3 *db = NULL;    s8  sql[128+1];    sqlite3_res res = NULL;    s8  *tmp_str = NULL;    	if (NULL == (db = sqlite3_open_ex(1, DATABASE_SECURITY_ZONE_PATH)))    { 		ws_ret = ERROR_SECURITY_FAILEDOPEN;		goto label_ret;    }        if (vfwName && vfwName[0] != '/0')        snprintf(sql, 128, "SELECT group_concat(securityName) AS names FROM tb_securityZone WHERE vfw_name='%s'", vfwName);    else        snprintf(sql, 128, "SELECT group_concat(securityName) AS names FROM tb_securityZone");    sqlite3_exec_query_ex(db, sql, &res);    if (SQLITE_OK != sqlite3_get_str_ex(res, 0, "names", &tmp_str))    {        ws_ret = ERROR_SECURITY_GETRES;        goto label_ret;    }    ret->ret.text = ws_strdup(soap, tmp_str);    label_ret:    sqlite3_res_free_ex(res);    sqlite3_close_ex(db);        if (WS_OK != ws_ret)    {        ret->ret.text = "";        return ws_send_soap_error(soap, g_securityzone_error[ws_ret]);    }        return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:40,


示例22: ws__getPoeIlimit

/***************************************************************************** 函 数 名  : ws__getPoeIlimit 功能描述  : 获取poe设备的电流信息 输入参数  : ws_env         ---- web service执行环境 输出参数  :  ret            ---- 得到poe 设备信息 返 回 值     : ERROR_SUCCESS         ---- 执行成功             ws_new_soap_fault---- 执行失败 ----------------------------------------------------------------------------- 最近一次修改记录: 修改作者: ninglijun 修改目的: 生成新函数 修改日期: 2012年09月14日*****************************************************************************/int ws__getPoeIlimit(WS_ENV* ws_env, struct ws__getPoeIlimitResponse * ret){    drv_poe_dev_info_s * dev_info = NULL;    struct PoeIlimit * wspoeilimit = NULL;    s32 res,i,num;    s8 buff[32];        dev_info = (drv_poe_dev_info_s*)ws_malloc(ws_env, sizeof(drv_poe_dev_info_s));    if (NULL == dev_info)    {        return ws_send_soap_error(ws_env, poe_error_str(ERR_POE_FAIL_MALLOC));    }       res = poe_syscall_get_poe_dev_info(dev_info);    if(ERROR_SUCCESS != res)    {        return ws_send_soap_error(ws_env, poe_error_str(ERR_POE_FAIL_SYSCALL));    }     num = dev_info->poe_port_cust_ilimit_valid_num;    ret->ret.sum = dev_info->poe_port_cust_ilimit_valid_num;    ret->ret.res_USCOREcount = dev_info->poe_port_cust_ilimit_valid_num;    ret->ret.__size = dev_info->poe_port_cust_ilimit_valid_num;        wspoeilimit = (struct PoeIlimit *)ws_malloc(ws_env, num * sizeof(struct PoeIlimit));    if (NULL == wspoeilimit)    {        return ws_send_soap_error(ws_env, poe_error_str(ERR_POE_FAIL_MALLOC));    }    for(i = 0 ; i < num ; i++)    {        snprintf(buff,sizeof(buff),"%d",(dev_info->poe_port_cust_ilimit_value[i] / 1000));        wspoeilimit[i].poeIlimitVlaue= ws_strdup(ws_env, buff);        wspoeilimit[i].count = i;    }    ret->ret.__ptrres = wspoeilimit;        return ERROR_SUCCESS;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:53,


示例23: ws_hash_put

WsBool ws_hash_put(WsHashPtr hash, const char *name, void *data){    WsHashItem *i;    size_t h = count_hash(name);    for (i = hash->items[h]; i; i = i->next) {        if (strcmp(i->name, name) == 0) {            /* Found it. */            /* Destroy the old item */            if (hash->destructor)                (*hash->destructor)(i->data, hash->destructor_context);            i->data = data;            return WS_FALSE;        }    }    /* Must create a new mapping. */    i = ws_calloc(1, sizeof(*i));    if (i == NULL)        return WS_FALSE;    i->name = ws_strdup(name);    if (i->name == NULL) {        ws_free(i);        return WS_FALSE;    }    i->data = data;    /* Link it to our hash. */    i->next = hash->items[h];    hash->items[h] = i;    return WS_TRUE;}
开发者ID:Phonebooth,项目名称:kannel,代码行数:39,


示例24: ws__getdsLiteDhcpName

s32 ws__getdsLiteDhcpName(WS_ENV* ws_env, struct ws__getDsliteDhcpResponse *ret){	u32 dhcp_num;	u8 i;	tb_dhcpv6_pool_aftr_Info_s *aftrname = NULL;	aftrname = dhcp_v6_server_aftr_db_get(&dhcp_num);	if(NULL == aftrname)	{		return ws_send_soap_error(ws_env, "IP6 get dhcp configuration error!");	}	ret->ret.sum = ret->ret.res_USCOREcount = ret->ret.__size = dhcp_num;	ret->ret.__ptrres = (struct dhcpshow *)ws_malloc(ws_env, sizeof(struct dhcpshow) * dhcp_num);	if(NULL == ret->ret.__ptrres)	{		return ws_send_soap_error(ws_env, "ws_malloc error!");	}	for(i=0; i<dhcp_num; i++)	{		ret->ret.__ptrres[i].name = ws_strdup(ws_env, aftrname[i].aftr_name);	}	free(aftrname);	return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:23,


示例25: ws__getArpCheatList

//.........这里部分代码省略.........	{		sql_len += snprintf(sql + sql_len, 2048-(u32)sql_len, " and  attacktime <= '%s'", endTime);	}	/* 方便越界定位 */	sql[2048 - 1] = '/0';	/* 打开一个连接,出错则返回 */	db = sqlite3_open_ex(1, "/log/dblog/arpsafety_log.db");	if ( NULL == db )	{		return	ws_send_soap_error(ws_env, "operated failed.");	}	if(sql[0] == '/0')	{		snprintf(sql_query, sizeof(sql_query), "select count(*) as count from tb_arpsafety_log;");	}	else	{		snprintf(sql_query, sizeof(sql_query), "select count(*) as count from tb_arpsafety_log where %s;", sql);	}	if (SQLITE_OK != sqlite3_exec_query_ex(db, sql_query, &res))	{		goto label_ret;	}	if (SQLITE_OK != sqlite3_get_s32_ex(res, 0, "count", &total_count))	{		goto label_ret;	}	sqlite3_res_free_ex(res);	res = NULL;	if(sql[0] == '/0')	{		snprintf(sql_query, sizeof(sql_query), "select * from tb_arpsafety_log limit %d, %d;", offset, count);	}	else	{		snprintf(sql_query, sizeof(sql_query), "select * from tb_arpsafety_log where %s limit %d, %d;", sql, offset, count);	}	if (SQLITE_OK != sqlite3_exec_query_ex(db, sql_query, &res))	{		goto label_ret;	}	if(-1 == count)		count = total_count;	tmp_arpCheatInfo = (struct ArpCheatInfo*)ws_malloc(ws_env, count * sizeof(struct ArpCheatInfo));	for(i = 0; i < count; i++)	{		if(SQLITE_OK != sqlite3_get_s32_ex(res, i, "id", &(tmp_arpCheatInfo[i].id)))		{			goto label_ret;		}		if(SQLITE_OK != sqlite3_get_str_ex(res, i, "ip", &ip))		{			goto label_ret;		}		tmp_arpCheatInfo[i].ip = ws_strdup(ws_env, ip);		if(SQLITE_OK != sqlite3_get_str_ex(res, i, "real_mac", &oldMac))		{			goto label_ret;		}				tmp_arpCheatInfo[i].oldMac = ws_strdup(ws_env, oldMac);		if(SQLITE_OK != sqlite3_get_str_ex(res, i, "cheat_mac", &newMac))		{			goto label_ret;		}		tmp_arpCheatInfo[i].newMac = ws_strdup(ws_env, newMac);		if(SQLITE_OK != sqlite3_get_str_ex(res, i, "attacktime", &date))		{			goto label_ret;		}		tmp_arpCheatInfo[i].date = ws_strdup(ws_env, date);	}	ret->ret.sum = total_count;    ret->ret.__size = count;    ret->ret.res_USCOREcount = count;	ret->ret.__ptrres = tmp_arpCheatInfo;label_ret:	if (NULL != res)	{		sqlite3_res_free_ex(res);		res = NULL;	}	if (NULL != db)	{		sqlite3_close_ex(db);		db = NULL;	}		return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:101,


示例26: ws__getArpPortCfgList

s32 ws__getArpPortCfgList(WS_ENV* ws_env, struct ws__getArpPortCfgResponse* ret){    struct ArpPortCfgInfo *arpPortCfgInfo = NULL;    sqlite3 *              db = NULL;    sqlite3_res            res = NULL;      sqlite3_res            state_res = NULL;    s32                    ws_ret = WS_OK;    const s8 *             err_info = NULL;    u32                    if_count = 0;    s8                     tmp_str[32] = {0};    u32                    tmp_int = 0;    u32                    i = 0;        db = sqlite3_open_ex(2, IFMODE_DBFILE, CFG_ARPPORTCFG_DBFILE);    if (NULL == db)    {        ws_ret = ERR_ARPSAFETY_OPEN_DB_FAILD;        goto label_ret;    }    snprintf(g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), 		"select count(ifindex) as count from ("                "select l3.ifindex from tb_port_l3 as l3 "                "union all "                "select l2.ifindex from tb_port_l2 as l2 "                "union all "                "select vlan.ifindex from tb_vlan as vlan where vlan.ifindex!=0) as Temp;");    if (SQLITE_OK != sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res))    {        ws_ret = ERR_ARPSAFETY_EXEC_SQL_FAILD;        goto label_ret;    }    if (SQLITE_OK != sqlite3_get_u32_ex(res, 0, "count", &if_count))    {        ws_ret = ERR_ARPSAFETY_GET_RES_FAILD;        goto label_ret;    }    sqlite3_res_free_ex(res);    res = NULL;    ret->ret.sum = if_count;    ret->ret.__size = if_count;    ret->ret.res_USCOREcount = if_count;        arpPortCfgInfo = (struct ArpPortCfgInfo *)ws_malloc(ws_env, if_count*sizeof(struct ArpPortCfgInfo));    if (NULL == arpPortCfgInfo)    {        ws_ret = ERR_ARPSAFETY_MALLOC_FAILD;        goto label_ret;    }    ret->ret.__ptrres = arpPortCfgInfo;        snprintf(g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), 		"select ifindex from("                "select l3.ifindex from tb_port_l3 as l3 "                "union all "                "select l2.ifindex from tb_port_l2 as l2 "                "union all "                "select vlan.ifindex from tb_vlan as vlan where vlan.ifindex!=0) as Temp order by ifindex;");    if (SQLITE_OK != sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res))    {        ws_ret = ERR_ARPSAFETY_EXEC_SQL_FAILD;        goto label_ret;    }    for (i=0; i<if_count; i++)    {         if (SQLITE_OK != sqlite3_get_s32_ex(res, i, "ifindex", &arpPortCfgInfo[i].portIndex))        {            ws_ret = ERR_ARPSAFETY_GET_RES_FAILD;            goto label_ret;        }        if(ERROR_SUCCESS != if_get_name_by_index(tmp_str, sizeof(tmp_str),arpPortCfgInfo[i].portIndex))		{			ws_ret = ERR_ARPSAFETY_GET_RES_FAILD;            goto label_ret;		}	    arpPortCfgInfo[i].portName = ws_strdup(ws_env, tmp_str);		        snprintf(g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), "SELECT count(*) as count FROM "CFG_ARPPORT_TAB_TABLENAME" where portName='%s';",            arpPortCfgInfo[i].portName);        if (SQLITE_OK != sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &state_res))        {            ws_ret = ERR_ARPSAFETY_GET_RES_FAILD;            goto label_ret;        }        if (SQLITE_OK != sqlite3_get_u32_ex(state_res, 0, "count", &tmp_int))        {            ws_ret = ERR_ARPSAFETY_GET_RES_FAILD;            goto label_ret;        }        sqlite3_res_free_ex(state_res);        state_res = NULL;                if (0 == tmp_int)        {            arpPortCfgInfo[i].state = 0;        }        else        {            arpPortCfgInfo[i].state = 1;//.........这里部分代码省略.........
开发者ID:millken,项目名称:zhuxianB30,代码行数:101,


示例27: ws__getArpList

/******************************************************************************* 函数名称  : ws__getArpList 功能描述  : web service实现函数,从数据面获取学习得到的Macip地址 输入参数  : ws_env       ---- web service执行环境 输出参数  : 无 返 回 值  : WS_OK      ---- 执行成功             soapFault  ---- 执行失败-------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者   :      zhangfaqi 修改目的   :      新添加函数 修改日期   :      2011-04-02*******************************************************************************/s32 ws__getArpList(WS_ENV* ws_env,  s32 offset, s32 count, struct ws__getArpListResponse *ret){    arp_item_t       *item_buf;    struct ArpInfo  *arp_Info;        const s8*         err_info;    struct in_addr   IP;        u32               i;    u32               ws_ret = ERROR_SUCCESS;    u32               number;                   /* arp记录总条数 */	s8                *inside_name = NULL;      /* 接口名 */	s32               offset_left = 0;          /* 分页偏移量 */    s32               count_left = 0;           /* 分页每页显示数 */    char              *mac_addr = NULL;         /* MAC地址临时变量 */    /* 获取数据面macip表项的条数 */    if (ERROR_SUCCESS != arp_get_num(&number))    {        ws_ret = ERR_ARPSAFETY_GET_DATA_FAILD;        goto label_ret;    }    /* 为获取到的数据面macip表象分配内存 */    item_buf = (arp_item_t *)ws_malloc(ws_env, number * sizeof(arp_item_t));    if (NULL == item_buf)    {        ws_ret = ERR_ARPSAFETY_MALLOC_FAILD;        goto label_ret;    }    /* 获取数据面所有arp表项*/    ws_ret = arp_get_items(item_buf, &number);    if (ws_ret != ERROR_SUCCESS)    {        ws_ret = ERR_ARPSAFETY_GET_DATA_FAILD;        goto label_ret;    }    arp_Info = (struct ArpInfo*)ws_malloc(ws_env, number * sizeof(struct ArpInfo));    /* 分页取出 */	for( i = 0; i < number; i++ )    {        /* 偏移量计数 */    	offset_left++;		if (count_left < count && offset_left > offset)        {			mac_addr = (char *)malloc(MAC_ADDR_LENGTH);            /* 转换mac地址格式 */            snprintf (mac_addr,MAC_ADDR_LENGTH, MACSTR, MAC2STR(item_buf[i].mac_addr));            /* IP地址 */            IP.s_addr = item_buf[i].ip;            inside_name = (s8*)malloc(INTERFACE_NAME_MAX_LENGTH);            /* 更新端口 */            if_get_name_by_index(inside_name, 32, (s32)(item_buf[i].inport_index));	        arp_Info[count_left].inPort = ws_strdup(ws_env, inside_name);            arp_Info[count_left].ip     = ws_strdup(ws_env,inet_ntoa(IP));	        arp_Info[count_left].mac    = ws_strdup(ws_env,mac_addr);			arp_Info[count_left].vlanId = (s32)item_buf[i].vlan_id;	        arp_Info[count_left].type   = (s32)item_buf[i].type;            free(inside_name);            free(mac_addr);            /* 提取出的记录计数 */			count_left++;        }    }	ret->ret.sum             = offset_left;    ret->ret.res_USCOREcount = count_left;     ret->ret.__size          = count_left;    ret->ret.__ptrres        = arp_Info;label_ret:    if (WS_OK != ws_ret)        {            err_info = arpsafety_error_str(ws_ret);            return  ws_send_soap_error(ws_env,err_info);        }    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:94,


示例28: ws__getArpSendList

/******************************************************************************* 函数名称  : ws__getArpSendList 功能描述  : web service实现函数,得到数据库黑名单防护的初始状态 输入参数  : ws_env       ---- web service执行环境 输出参数  : 无 返 回 值  : WS_OK      ---- 执行成功             soapFault  ---- 执行失败-------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者   :      zhangfaqi 修改目的   :      新添加函数 修改日期   :      2011-04-01*******************************************************************************/s32 ws__getArpSendList(WS_ENV* ws_env, struct ws__getArpSendListResponse *ret){    struct ArpSendInfo*    arpsendlistInfo;    sqlite3*                db = NULL;    sqlite3_res             res = NULL;	s32                     ws_ret = ERROR_SUCCESS;    s32                     sql_ret = SQLITE_OK;    s8*                     tmpstr = NULL;    const s8*               err_info;    s32                     record_num,i;        /* 连接数据库 */    db = sqlite3_open_ex(1, CFG_ARPSAFETY_DBFILE);    if ( NULL == db )    {        ws_ret = ERR_ARPSAFETY_OPEN_DB_FAILD;        goto label_ret;     }    if ( SQLITE_OK != sqlite3_exec_query_ex(db, "SELECT count(*) AS count FROM  "CFG_ARPSAFETY_TAB_TABLENAME";", &res) )    {        ws_ret = ERR_ARPSAFETY_EXEC_SQL_FAILD;        goto label_ret;    }    if ( SQLITE_OK != sqlite3_get_s32_ex(res, 0, "count", &record_num) )    {        ws_ret = ERR_ARPSAFETY_GET_RES_FAILD;        goto label_ret;    }    /* 设置总数的引用返回 */    ret->ret.sum = (s32)record_num;    /* 为返回结果分配内存 */    arpsendlistInfo = (struct ArpSendInfo *)ws_malloc(ws_env,                    record_num * sizeof(struct ArpSendInfo));    if (NULL == arpsendlistInfo)    {        ws_ret = ERR_ARPSAFETY_MALLOC_FAILD;        goto label_ret;     }    /* 释放结果集 */	sqlite3_res_free_ex(res);	res = NULL;    	if ( SQLITE_OK != sqlite3_exec_query_ex(db, "SELECT * FROM  "CFG_ARPSAFETY_TAB_TABLENAME" ORDER BY "CFG_ARPSAFETY_COL_ID" ASC;", &res) )	{        ws_ret = ERR_ARPSAFETY_EXEC_SQL_FAILD;		goto label_ret;	}    for( i = 0; i < record_num; i++ )    {        sql_ret += sqlite3_get_s32_ex(res, i, CFG_ARPSAFETY_COL_ID,         &arpsendlistInfo[i].id);		sql_ret += sqlite3_get_s32_ex(res, i, CFG_ARPSAFETY_COL_TIMESLOT,   &arpsendlistInfo[i].timeSlot);         sql_ret += sqlite3_get_str_ex(res, i, CFG_ARPSAFETY_COL_PORTID,     &tmpstr);        arpsendlistInfo[i].portId = ws_strdup(ws_env,tmpstr);        if ( SQLITE_OK != sql_ret )        {            ws_ret = ERR_ARPSAFETY_GET_RES_FAILD;            goto label_ret;        }    }            /* 设置引用返回*/    ret->ret.res_USCOREcount = i;    ret->ret.__size          = i;    /* 设置返回结果集 */    ret->ret.__ptrres        = arpsendlistInfo;label_ret:    /* 释放结果集 */    sqlite3_res_free_ex(res);    /* 关闭数据库连接 */    sqlite3_close_ex(db);	if ( ERROR_SUCCESS != ws_ret )    {       err_info = arpsafety_error_str(ws_ret);	   return  ws_send_soap_error(ws_env,  err_info);    }    return WS_OK;}
开发者ID:millken,项目名称:zhuxianB30,代码行数:98,


示例29: ws__trackIPGetVrf

/*******************************************************************************函数名称  : ws__trackIPGetVrfId功能描述  : 读取所有记录信息,送往前台页面进行动态替换输入参数  : ws_env: web service的环境变量            ret: 要返回的结果集输出参数  : 无返 回 值  : WS_OK:  执行成功--------------------------------------------------------------------------------最近一次修改记录 :修改作者   : zhangxiaoyan修改目的   : 修改日期   : 2013.02.1*******************************************************************************/s32 ws__trackIPGetVrf(WS_ENV* ws_env,struct ws__getTrackIPListResponse *ret){    s8  *name;    s8  *addr;    s8  *interval;     s8  state[TRACKIP_STATE_SIZE]= {0};    s8  *state_buff = NULL;	s32  litevrfid = 0;	s32  vrfid = 0;        s32 result;    s32 num;    s32 i;        sqlite3       *db = NULL;    sqlite3_res   res = NULL;    struct TrackIP *trackip_data;	s32 vrf_sw,litevrf_sw;	vrf_getvrfswitch(&vrf_sw);    vrf_getlitevrfswitch(&litevrf_sw);	vrrp_get_curVrfid(&vrfid , &litevrfid);		    db = sqlite3_open_ex(1, TRACKIP_CFG_DB);    if( NULL == db )    {        goto out;    }    if(litevrf_sw)    {    	snprintf (g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), "select count(*) as count from tb_trackip_config where litevrfid= %d and vrfid=0;", litevrfid);        result = sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res);    }    else    {        snprintf (g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), "select count(*) as count from tb_trackip_config where vrfid= %d and litevrfid=0;", vrfid);        result = sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res);    }    if(SQLITE_OK != result)    {        goto close_db;    }    num = 0;    sqlite3_get_s32_ex(res, 0, "count", &num);    sqlite3_res_free_ex(res);    res = NULL;    /* 将获取的行数赋给返回给web的结构体ws__getTrackIPListResponse */    ret->ret.sum = num;    ret->ret.__size = num;    ret->ret.res_USCOREcount =  (int)num;    /* 为结果集分配空间 */    trackip_data = ws_malloc(ws_env, (u32)num*sizeof(struct TrackIP));    if( NULL == trackip_data )    {        goto close_db;    }    memset(trackip_data, 0, (u32)num*sizeof(struct TrackIP));    /* 执行查询语句,取结果集 */    if(litevrf_sw)    {        snprintf (g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), "select * from tb_trackip_config where litevrfid= '%d' and vrfid=0 order by name ;", litevrfid);        result = sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res);    }    else    {        snprintf (g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), "select * from tb_trackip_config where vrfid= '%d' and litevrfid=0 order by name ;", vrfid);        result = sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res);    }    if(SQLITE_OK != result)    {        goto close_db;    }    ret->ret.__ptrres = trackip_data;    for( i = 0; i < num; i++ )    {        sqlite3_get_str_ex(res, i, "name", &name);        trackip_data[i].name = ws_strdup(ws_env, name);        sqlite3_get_str_ex(res, i, "addr", &addr);//.........这里部分代码省略.........
开发者ID:millken,项目名称:zhuxianB30,代码行数:101,


示例30: pdf_get_policy

s32 pdf_get_policy(WS_ENV *soap, struct PdfPolicyInfo *policy_info_list, sqlite3 *db){    s32 sql_ret                             = SQLITE_OK;    sqlite3_res res                         = NULL;    s32 res_row;	struct tm *ptr;	struct tm *ptr1;	char s[32];	char s1[32];	s32 start,end;	s32 max = 32;	snprintf(g_sqlite_sql_buf, sizeof(g_sqlite_sql_buf), "SELECT * FROM tb_pdf_policy_cfg");    sql_ret = sqlite3_exec_query_ex(db, g_sqlite_sql_buf, &res);    if ( SQLITE_OK != sql_ret )    {        goto label_ret;    }        /* 循环获取每一行的值 */    while ( SQLITE_OK == (sql_ret = sqlite3_res_next_ex(res, &res_row)) && SQLITE_RES_END != res_row )    {                sql_ret += sqlite3_get_s32_ex(res, res_row, "id", &(policy_info_list[res_row].policyId));        sql_ret += sqlite3_get_str_ex(res, res_row, "policyname", &(policy_info_list[res_row].policyName));        sql_ret += sqlite3_get_str_ex(res, res_row, "business_eth", &(policy_info_list[res_row].businessEth));            sql_ret += sqlite3_get_str_ex(res, res_row, "business_service", &(policy_info_list[res_row].businessService));            sql_ret += sqlite3_get_s32_ex(res, res_row, "group_group", &(policy_info_list[res_row].groupGroup));            sql_ret += sqlite3_get_str_ex(res, res_row, "group_service", &(policy_info_list[res_row].groupService));		sql_ret += sqlite3_get_str_ex(res, res_row, "single_ip", &(policy_info_list[res_row].singleGroup));            sql_ret += sqlite3_get_str_ex(res, res_row, "single_service", &(policy_info_list[res_row].singleService));        sql_ret += sqlite3_get_s32_ex(res, res_row, "top_group", &(policy_info_list[res_row].topGroup));        sql_ret += sqlite3_get_str_ex(res, res_row, "top_service", &(policy_info_list[res_row].topService));        sql_ret += sqlite3_get_s32_ex(res, res_row, "cur_graph", &(policy_info_list[res_row].curGraph));        sql_ret += sqlite3_get_s32_ex(res, res_row, "cur_mlist", &(policy_info_list[res_row].curMlist));        sql_ret += sqlite3_get_s32_ex(res, res_row, "graph_type", &(policy_info_list[res_row].graphType));            sql_ret += sqlite3_get_s32_ex(res, res_row, "cycle", &(policy_info_list[res_row].cycle));        sql_ret += sqlite3_get_s32_ex(res, res_row, "start_time", &start);		sql_ret += sqlite3_get_s32_ex(res, res_row, "end_time", &end);        sql_ret += sqlite3_get_str_ex(res, res_row, "receivers", &(policy_info_list[res_row].receives));		sql_ret += sqlite3_get_str_ex(res, res_row, "pdf_report_name", &(policy_info_list[res_row].pdfName));		        if ( SQLITE_OK != sql_ret )        {            goto label_ret;        }				if(policy_info_list[res_row].cycle == 3)		{			 ptr = gmtime((time_t*)(&start));			 strftime(s, max,"%F %H:%M",ptr);    		     policy_info_list[res_row].startTime = ws_strdup(soap, s);			 ptr1 = gmtime((time_t*)(&end));			 strftime(s1, max,"%F %H:%M",ptr1);    		     policy_info_list[res_row].endTime = ws_strdup(soap, s1);			 		}		else		{			policy_info_list[res_row].startTime = ws_strdup(soap,"");			policy_info_list[res_row].endTime = ws_strdup(soap,"");					}		        /* 字符串使用的是结果集中的字符串指针,需要复制一份作为返回结果 */        policy_info_list[res_row].policyName = ws_strdup(soap, policy_info_list[res_row].policyName); 		if(0 != strcmp(policy_info_list[res_row].businessService,""))		{			 policy_info_list[res_row].businessEth = ws_strdup(soap, policy_info_list[res_row].businessEth);			 policy_info_list[res_row].businessService = ws_strdup(soap, policy_info_list[res_row].businessService); 		}        else        {			policy_info_list[res_row].businessEth = ws_strdup(soap,"all_eth");			policy_info_list[res_row].businessService = ws_strdup(soap,"");		}				if(0 != strcmp(policy_info_list[res_row].groupService,""))		{			policy_info_list[res_row].groupService= ws_strdup(soap, policy_info_list[res_row].groupService);		}        else        {        	policy_info_list[res_row].groupService= ws_strdup(soap,"");					}		if(0 != strcmp(policy_info_list[res_row].singleService,""))		{			policy_info_list[res_row].singleService= ws_strdup(soap, policy_info_list[res_row].singleService);			policy_info_list[res_row].singleGroup= ws_strdup(soap, policy_info_list[res_row].singleGroup);		}        else        {        	policy_info_list[res_row].singleService= ws_strdup(soap,"");			policy_info_list[res_row].singleGroup= ws_strdup(soap,"");					}				if(0 !=strcmp(policy_info_list[res_row].topService,""))//.........这里部分代码省略.........
开发者ID:millken,项目名称:zhuxianB30,代码行数:101,



注:本文中的ws_strdup函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ wsa_assert函数代码示例
C++ ws_malloc函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。