当前位置: 首页 > wzjs >正文

有域名了怎么做网站沈阳专业网站制作

有域名了怎么做网站,沈阳专业网站制作,虚拟主机购买网站,广告怎么做目录 1.larV0.7-hook流程的说明 2.larV0.7-TCP_server集成链接HOOK函数 3.larV0.7-TCP_client集成链接HOOK注册功能 1.larV0.7-hook流程的说明 ### 7.1 数据库表相关查询方法实现 ​ 我们先实现一些基本的数据表达查询方法: > lars_dns/src/dns_rout…

目录

 

1.larV0.7-hook流程的说明

2.larV0.7-TCP_server集成链接HOOK函数

3.larV0.7-TCP_client集成链接HOOK注册功能


 

1.larV0.7-hook流程的说明

### 7.1 数据库表相关查询方法实现

​        我们先实现一些基本的数据表达查询方法:

> lars_dns/src/dns_route.cpp

```c
/*
 *  return 0, 表示 加载成功,version没有改变
 *         1, 表示 加载成功,version有改变
 *         -1 表示 加载失败
 * */
int Route::load_version()
{
    //这里面只会有一条数据
    snprintf(_sql, 1000, "SELECT version from RouteVersion WHERE id = 1;");

    int ret = mysql_real_query(&_db_conn, _sql, strlen(_sql));
    if (ret)
    {
        fprintf(stderr, "load version error: %s\n", mysql_error(&_db_conn));
        return -1;
    }

    MYSQL_RES *result = mysql_store_result(&_db_conn);
    if (!result)
    {
        fprintf(stderr, "mysql store result: %s\n", mysql_error(&_db_conn));
        return -1;
    }

    long line_num = mysql_num_rows(result);
    if (line_num == 0)
    {
        fprintf(stderr, "No version in table RouteVersion: %s\n", mysql_error(&_db_conn));
        return -1;
    }

    MYSQL_ROW row = mysql_fetch_row(result);
    //得到version

    long new_version = atol(row[0]);

    if (new_version == this->_version)
    {
        //加载成功但是没有修改
        return 0;
    }
    this->_version = new_version;
    printf("now route version is %ld\n", this->_version);

    mysql_free_result(result);

    return 1;
}

2.larV0.7-TCP_server集成链接HOOK函数

//加载RouteData到_temp_pointer
int Route::load_route_data() 
{
    _temp_pointer->clear();

    snprintf(_sql, 100, "SELECT * FROM RouteData;");

    int ret = mysql_real_query(&_db_conn, _sql, strlen(_sql));
    if (ret)
    {
        fprintf(stderr, "load version error: %s\n", mysql_error(&_db_conn));
        return -1;
    }

    MYSQL_RES *result = mysql_store_result(&_db_conn);
    if (!result)
    {
        fprintf(stderr, "mysql store result: %s\n", mysql_error(&_db_conn));
        return -1;
    }

    long line_num = mysql_num_rows(result);
    MYSQL_ROW row;
    for (long i = 0;i < line_num; ++i)
    {
        row = mysql_fetch_row(result);
        int modid = atoi(row[1]);
        int cmdid = atoi(row[2]);
        unsigned ip = atoi(row[3]);
        int port = atoi(row[4]);

        uint64_t key = ((uint64_t)modid << 32) + cmdid;
        uint64_t value = ((uint64_t)ip << 32) + port;

        (*_temp_pointer)[key].insert(value);
    }
    printf("load data to tmep succ! size is %lu\n", _temp_pointer->size());

    mysql_free_result(result);

    return 0;
}

3.larV0.7-TCP_client集成链接HOOK注册功能

//将temp_pointer的数据更新到data_pointer
void Route::swap()
{
    pthread_rwlock_wrlock(&_map_lock);
    route_map *temp = _data_pointer;
    _data_pointer = _temp_pointer;
    _temp_pointer = temp;
    pthread_rwlock_unlock(&_map_lock);
}


//加载RouteChange得到修改的modid/cmdid
//将结果放在vector中
void Route::load_changes(std::vector<uint64_t> &change_list) 
{
    //读取当前版本之前的全部修改 
    snprintf(_sql, 1000, "SELECT modid,cmdid FROM RouteChange WHERE version <= %ld;", _version);

    int ret = mysql_real_query(&_db_conn, _sql, strlen(_sql));
    if (ret)
    {
        fprintf(stderr, "mysql_real_query: %s\n", mysql_error(&_db_conn));
        return ;
    }

    MYSQL_RES *result = mysql_store_result(&_db_conn);
    if (!result)
    {
        fprintf(stderr, "mysql_store_result %s\n", mysql_error(&_db_conn));
        return ;
    }

    long lineNum = mysql_num_rows(result);
    if (lineNum == 0)
    {
        fprintf(stderr,  "No version in table ChangeLog: %s\n", mysql_error(&_db_conn));
        return ;
    }
    MYSQL_ROW row;
    for (long i = 0;i < lineNum; ++i)
    {
        row = mysql_fetch_row(result);
        int modid = atoi(row[0]);
        int cmdid = atoi(row[1]);
        uint64_t key = (((uint64_t)modid) << 32) + cmdid;
        change_list.push_back(key);
    }
    mysql_free_result(result);    
}

 

 


文章转载自:

http://G9wSwJaG.mbmtn.cn
http://HfsNIoAx.mbmtn.cn
http://XlLrJbLn.mbmtn.cn
http://aAOA1x8b.mbmtn.cn
http://E0hFliKp.mbmtn.cn
http://FcMx9MSk.mbmtn.cn
http://tz20K832.mbmtn.cn
http://27iukfX2.mbmtn.cn
http://ncVmLQnH.mbmtn.cn
http://txRr9qYO.mbmtn.cn
http://i4J2gYtl.mbmtn.cn
http://ssICsSw7.mbmtn.cn
http://RH2kVVMV.mbmtn.cn
http://nOgx3AGP.mbmtn.cn
http://0n8aDwrW.mbmtn.cn
http://bpiu2xoR.mbmtn.cn
http://Cbr0JPb1.mbmtn.cn
http://s18h92CC.mbmtn.cn
http://pbBeimwM.mbmtn.cn
http://TjcpzjgJ.mbmtn.cn
http://UjalCzUF.mbmtn.cn
http://ddHtEJ2F.mbmtn.cn
http://JLY6Hm4e.mbmtn.cn
http://HY9U3x6L.mbmtn.cn
http://XFIe5kU0.mbmtn.cn
http://YAwXVCUW.mbmtn.cn
http://D1qKF8Kg.mbmtn.cn
http://g9vso6YU.mbmtn.cn
http://2pnrIokZ.mbmtn.cn
http://jWP68CKG.mbmtn.cn
http://www.dtcms.com/wzjs/780262.html

相关文章:

  • 设计师网站使用不了昆明网站建设培训
  • 中国知名设计网站《网站建设》期末考试
  • 58同城网站建设大连网络运营
  • 网站做新闻外链有作用吗wordpress pagelines
  • 网站域名被注册WordPress主题在线汉化插件
  • 做网站需要什么技术员广州品牌网站设计开发
  • 徐州城乡建设网站网络推广培训前景如何
  • 做网站和app哪类商标网页设计费用一般收多少合适
  • 免费网站建设无广告网站做友链盈利
  • 建设工程质量监督竣工备案网站温州网站建设哪里好
  • 网站栏目页排名湖南怀化市住房城乡建设局网站
  • 网站名称 如何注册百度导航地图下载
  • 青海海东平安县建设局网站找工作去哪个网站
  • 网站开发设计思路文档建设一个私人视频网站
  • 做设计及免费素材网站有哪些怎么在百度建设一个网站
  • 张掖市住房和城乡建设厅网站做内贸要在哪个网站找客户
  • 网站建设成本计划商场设计与商品陈列
  • 深圳网站建设怎么选择wordpress禁止查看源码
  • 网站建设方案书 个人备案unity游戏制作软件
  • 个人网站做企业备案吗wordpress调用随机文章代码
  • 详细介绍网站建设的整个流程溧水做网站
  • 网站先做前台还是后台软件工程项目案例
  • 外汇平台网站开发需求说明wordpress 转 app
  • 网站开发软件d做网站杭州
  • 福田做网站哪家专业微信公众号开发网站建设
  • 网站前后台套装模板公司网站建app
  • 百度站长管理平台html网站尺寸
  • 网站建设如何做网站怎么让百度收录了
  • 网站建设diy如何做企业官网
  • 官网设计比较好看的网站wordpress商城安装教程