Ejemplo n.º 1
0
void ping_store::insert_one(acl::db_handle& db, const host_status* status)
{
    acl::string sql;

    sql.format("insert into host_status_tbl(ip, sent, received, lost,"
               " loss, minimum, maximum, average) values('%s', %d, %d,"
               " %d, %0.2f, %0.2f, %0.2f, %0.2f)",
               status->get_ip(), status->get_sent(), status->get_received(),
               status->get_lost(), status->get_loss(),
               status->get_minimum(), status->get_maximum(),
               status->get_average());
    if (db.sql_update(sql.c_str()) == false)
        logger_error("sql(%s) error", sql.c_str());
    else
        logger("insert ip %s to host_status_tbl ok", status->get_ip());

    const std::vector<PING_PKT*>& pkt_list = status->get_pkt_list();
    std::vector<PING_PKT*>::const_iterator cit = pkt_list.begin();
    for (; cit != pkt_list.end(); ++cit)
    {
        sql.format("insert into ping_status_tbl(ip, rtt, ttl, bytes,"
                   "seq, status) values('%s', %0.2f, %d, %d, %d, %d)",
                   status->get_ip(), (*cit)->rtt_, (*cit)->ttl_,
                   (*cit)->bytes_, (*cit)->seq_, (*cit)->status_);
        if (db.sql_update(sql.c_str()) == false)
            logger_error("sql(%s) error", sql.c_str());
    }
    logger("ok, insert ip %s, pkt count: %d",
           status->get_ip(), (int) pkt_list.size());
}
Ejemplo n.º 2
0
// 添加表数据
static bool tbl_insert(acl::db_handle& db, int n)
{
    const char* sql_fmt = "insert into group_tbl('group_name', 'uvip_tbl')"
                          " values('中国人-%d', 'test')";

    acl::string sql;
    sql.format(sql_fmt, n);
    if (db.sql_update(sql.c_str()) == false)
        return (false);

    const acl::db_rows* result = db.get_result();
    if (result)
    {
        const std::vector<acl::db_row*>& rows = result->get_rows();
        for (size_t i = 0; i < rows.size(); i++)
        {
            const acl::db_row* row = rows[i];
            for (size_t j = 0; j < row->length(); j++)
                printf("%s, ", (*row)[j]);
            printf("\r\n");
        }
    }

    db.free_result();
    return (true);
}
Ejemplo n.º 3
0
// 删除表数据
static bool tbl_delete(acl::db_handle& db, int n)
{
    const char* sql_fmt = "delete from group_tbl where group_name='中国人-%d'";

    acl::string sql;
    sql.format(sql_fmt, n);

    if (db.sql_update(sql.c_str()) == false)
    {
        printf("delete sql error\r\n");
        return (false);
    }

    for (size_t i = 0; i < db.length(); i++)
    {
        const acl::db_row* row = db[i];
        for (size_t j = 0; j < row->length(); j++)
            printf("%s, ", (*row)[j]);
        printf("\r\n");
    }
    // 释放查询结果
    db.free_result();

    return (true);
}
Ejemplo n.º 4
0
void pop3_store::insert_tbl(acl::db_handle& db)
{
	acl::string sql;

	sql.format("insert into pop3_tbl(user, pop3_ip, nslookup_elapsed, "
		"connect_elapsed, banner_elapsed, "
		"auth_elapsed, uidl_elapsed, "
		"list_elapsed, recv_elapsed, "
		"quit_elapsed, total_elapsed, "
		"total_list, total_uidl, total_size, "
		"recved_count, recved_size, recved_speed)"
		"values('%s', '%s', %0.2f, %0.2f, %0.2f, %0.2f, "
		"%0.2f, %0.2f, %0.2f, %0.2f, %0.2f, %d, %d, %d, "
		"%d, %d, %d)",
		user_, pop3_ip_, meter_->pop3_nslookup_elapsed,
		meter_->pop3_connect_elapsed, meter_->pop3_banner_elapsed,
		meter_->pop3_auth_elapsed, meter_->pop3_uidl_elapsed,
		meter_->pop3_list_elapsed, meter_->pop3_recv_elapsed,
		meter_->pop3_quit_elapsed, meter_->pop3_total_elapsed,
		(int) meter_->total_list, (int) meter_->total_uidl,
		(int) meter_->total_size, (int) meter_->recved_count,
		(int) meter_->recved_size, (int) meter_->recved_speed);

	if (db.sql_update(sql.c_str()) == false)
		logger_error("sql(%s) error", sql.c_str());
	else
		logger("insert into pop3_tbl OK!");
}
Ejemplo n.º 5
0
bool ping_store::create_tbl(acl::db_handle& db)
{
    if (db.tbl_exists("host_status_tbl"))
        logger("host_status_tbl exist");
    else if (db.sql_update(CREATE_HOST_STATUS_TBL) == false)
    {
        logger_error("sql(%s) error", CREATE_HOST_STATUS_TBL);
        return (false);
    }
    else
        logger("create table host_status_tbl ok");

    if (db.tbl_exists("ping_status_tbl"))
        logger("ping_status_tbl exist");
    else if (db.sql_update(CREATE_PING_STATUS_TBL) == false)
    {
        logger_error("sql(%s) error", CREATE_PING_STATUS_TBL);
        return (false);
    }
    else
        logger("create table ping_status_tbl ok");
    return (true);
}
Ejemplo n.º 6
0
static bool tbl_create(acl::db_handle& db)
{
	if (db.tbl_exists("group_tbl"))
		return (true);
	if (db.sql_update(CREATE_TBL) == false)
	{
		printf("sql error\r\n");
		return (false);
	}
	else
	{
		printf("create table ok\r\n");
		return (true);
	}
}
Ejemplo n.º 7
0
bool pop3_store::create_tbl(acl::db_handle& db)
{
	if (db.tbl_exists("pop3_tbl"))
	{
		logger("pop3_tbl table exist");
		return (true);
	}
	else if (db.sql_update(CREATE_TBL) == false)
	{
		logger_error("sql(%s) error", CREATE_TBL);
		return (false);
	}
	else
	{
		logger("create table pop3_tbl ok");
		return (true);
	}
}
Ejemplo n.º 8
0
void dns_store::insert_one(acl::db_handle& db, const domain_info* info)
{
	const std::vector<IP_INFO*>& ip_list = info->get_ip_list();
	std::vector<IP_INFO*>::const_iterator cit = ip_list.begin();
	acl::string sql;
	for (; cit != ip_list.end(); ++cit)
	{
		sql.format("insert into dns_tbl(domain, ip, ttl, spent)"
			" values('%s', '%s', '%d', '%.2f')",
			info->get_domain(), (*cit)->ip, (*cit)->ttl,
			info->get_spent());
		if (db.sql_update(sql.c_str()) == false)
			logger_error("sql(%s) error", sql.c_str());
		else
			logger("add ok, domain: %s, ip: %s, ttl: %d, spent: %0.2f",
				info->get_domain(), (*cit)->ip, (*cit)->ttl,
				info->get_spent());
	}
}