zoukankan      html  css  js  c++  java
  • libevent evbuffer bug

    今天发现 libevent 2.0.22 一个坑爹的bug,导致消息混乱。查找问题浪费一天,复现代码如下

    #include <event2/buffer.h>
    #include <stdio.h>
    #include <string.h>
    
    // libevent-2.0.22-stable bug, but libevent 2.0.21 worked well
    int main(int argc, char **argv)
    {
        evbuffer *buf = evbuffer_new();
        evbuffer_expand(buf, 12);
        evbuffer_add(buf, ": first line 
    ", 14);
    
        // force to add a new chain
        evbuffer_expand(buf, 2048);
        // add always add to the last chain, but last_with_datap is not changed accordingly
        evbuffer_add(buf, ": second line 
    ", 15);
    
        //evbuffer_expand(buf, 30);
        // printf try expand buffer and return the first chain, then add to the first chain
        evbuffer_add_printf(buf, ": last line
    ");
    
        fprintf(stdout, "%*s
    ", evbuffer_get_length(buf), evbuffer_pullup(buf, -1));
    
    
        return 0;
    }

    结果在 libevent 2.0.22 输出

    : first line
    : last line
    : second line

    libevent 2.0.21 正常

    : first line
    : second line
    : last line

  • 相关阅读:
    JQuery 练习题解析
    php 分页
    php批量删除
    PHP 多条件查询之简单租房系统
    php MySQLi数据库操作 封装类
    PHP MySQLi 增删改查
    jquery Deferred使用经验
    http2.0笔记
    window.name 跨域
    浏览器缓存读取机制大解底
  • 原文地址:https://www.cnblogs.com/JesseFang/p/5262807.html
Copyright © 2011-2022 走看看