acl 3.0.11 版本发布,高级 C++ 网络通信 库

http://www.oschina.net/news/43474/acl-3-0-11

acl (https://sourceforge.net/projects/acl/) 发布了,acl 是 one Advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能;acl 包括以下丰富的常用函数库:
1、常见网络应用库: SMTP 客户端库/PING 库/memcache 客户端库/handlersocket 客户端库/beanstalk 客户端库
2、HTTP 网络库:HTTP 客户端/服务端库,C++版 HttpServlet 类,HTTP COOKIE/HTTP SESSION 等
3、邮件解析库:mime解析库/RFC2047/RFC2048/mime base64/mime qp/mime uucode 等
4、网络通信库:阻塞/非阻塞网络 IO 库
5、服务器框架:包括进程池模式、线程池模式、非阻塞模式及触发器模式
6、事件引擎:支持 select、poll(for unix)、epoll(for linux)、kqueue(for bsd)、devpoll(for solaris)、iocp(for win32)、win32 窗口消息(for win32)事件引擎
7、通用连接池库:高效的连接池基础类库,支持丰富的功能
8、数据库客户端库:对原生的数据库客户端库进行了二次封装,使编程更为简易,功能更为丰富
9、xml/json 流式解析库:区别于网上其它已有的 xml/json 解析库,acl 中的 xml/json 解析库采用有限状态机方式解析数据,处理方式更为灵活

此次新版发布除了修复了已知的 BUG 外,主要提供了通用的连接池基础库,内容如下:
一、lib_acl
1) 2013.8.21
1.1) feature: master 框架允许以非 root 身份启动,需要用户修改 acl_master 的
配置文件 main.cf,添加 set_ugid = 0,默认情况下该值为 1
2) 2013.8.20
2.1) bugfix: acl_json_util.c::json_escape_append, acl_json_parse::json_tag
中需要对特殊控制字符做转义处理(目前在解析时暂不支持 \u 的情况)
3) 2013.8.19
3.1) bugfix: acl_json_util.c::json_escape_append 中不应将 "{}[]" 这些字符作为
特殊字符而转义
4) 2013.8.14
4.1) event: events_select/events_poll/events_kernel/events_iocp 使事件引擎
的时钟更为精确
5) 2013.8.7
5.1) bugfix: 在 iocp 方式下不能通过 getpeername/getsockname 获得
远程/本地的地址,通过在 acl_vstream_accept_ex 中添加 setsockopt 调用,
将监听套接字中的一些属性拷贝至客户端连接中解决了此类问题
二、lib_protocol
1) 2013.7.30
1.1) warning: http_hdr_req.c::http_hdr_req_new() 内部使用了线程局部变量,
当用 valgrind 检查时会报内存泄露警告,通过在主线程中将其释放去掉了此警告
2) 2013.7.23
2.1) bugfix: http_hdr_req.c->http_hdr_req_create() 分离 URL 时有误
三、lib_acl_cpp
1) 2013.8.22
1.1) bugfix: memcache 类中当连接异常中断重试时会因请求数据被清掉而出错,原因
是请求与响应共用同一个缓冲区所致,现将请求缓冲区与响应缓冲区分开
2) 2013.8.18
2.1) samples: 增加了测试 http_request_pool 的例子 samples/http_request_pool
2.2) samples: 增加了测试 memcache_pool 的例子 samples/memcache_pool
3) 2013.8.17
3.1) feature: 增加了 HTTP 客户端连接池类 http_request_pool;同时将
http_request
类变为 connect_client 的子类
3.2) feature: memcache 增加了连接池类 memcache_pool;同时将类 mem_cache 改为
memcache
4) 2013.8.13
4.1) mem_cache: 调整了构造函数接口,使之更容易使用
4.2) feature: 添加了通用的客户端连接池管理对象:connect_client,
connect_pool,
connect_manager,这些类均为纯虚类,但子类只需要实现很少的几个虚函数便可获得功能丰富的
连接池管理功能
5) 2013.8.11
5.1) feature: db_pool 支持动态将空闲时间过期的数据库连接释放掉,从而减少
对后端数据库的压力
6) 2013.8.9
6.1) bugfix: db/db_mysql.c 在打开 mysql 时原来的实现中,如果需要设置字符集,
则会导致崩溃,原因是设置字符集必须是在连接打开之后设置,原来的做法是在连接打开
前设置的
7) 2013.7.29
7.1) bugfix: string::split/split2 内部在调用 acl_argv_split 后没有调用
acl_argv_free 释放动态分配的内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值