޸ʷб

-----------------------------------------------------------------------
433) 2016.8.14
433.1) feature: Makefile ѡڱʱ make polarssl=on
ʽ POLARSSL ȥ
 
432) 2016.7.29
432.1) feature: mime  get_plain_body/get_html_body ȡͬ͵
432.2) feature: json Ӷ double ͵֧


431) 2016.7.7
431.1) bugfix: mime::body_node ȡ

430) 2016.6.7
430.1) bugfix: string Ӧָֻ룬Ӧմ

429) 2016.5.30
429.1) safety: string ָ˰ȫԼ

428) 2016.5.10
428.1) bugfix: http_request get_bodyУ ps Ϊֲ
Ȼʹö±

427) 2016.5.5
427.1) feature: xml/xml1/xml2 еķ update ʣ xml 

426) 2016.5.2
426.1) bugfix: http ģõĶʱ stream Ķʱͻ

425) 2016.4.27
425.1) feature: http_header еķ set_url Ӳ encodingò
ǷԳ url еĲ url 
425.2) feature: dbuf_guard ཫ dbuf_obj װУ


424) 2016.4.26
424.1) feature: xml/xml1/xml2 ڽжʱʼ dbuf Ĳ

423) 2016.4.19
423.1) bugfix: thread Уڴ̺߳ thread_id_ ֵʱܻΪ߳
㹻ûǰͷ̶߳ڴǷ

-----------------------------------------------------------------------
422) 2016.4.16
422.1) compile:  VC2012 ʹ x64 ʽʱһЩ뾯

421) 2016.4.14
421.1) feature: string ޸ split/split2 lib_acl C 
ַָ(õַ)зװ

420) 2016.4.6
420.1) feature&safety: redis_command::run е used_ > 0 ʱǿƵ clear
ͷϴβʱʱڴ棬ûʹøʱǵ clear

419) 2016.4.2
419.1) feature: redis_server ӽӿ info ȡϢ

418) 2016.4.1
418.1) feature: redis_command ֱ֧װ redis Э鷽ʽ

417) 2016.3.30
417.1) bugfix: session::set_ttl  redis ʱ⣬ȥ sid_saved_ ж

416) 2016.3.24
416.1) safety: master_threads е service_main УӦ÷ true ʱ
ҪһǷѾ쳣쳣Ӧõķֵʼ
Ĺرչ̣ԷֹӦõ

415) 2016.3.18
415.1) bugfix: json е reset  json ʱΪ json  C 
ڲؽ root ڵ㣬Ҫ json ָ root ڵ

414) 2016.3.17
414.1) bugfix: redis_client_cluster е set_password üȺнڵ
ʱ÷ĵӼȺڵķ(set)˳أЧ

413) 2016.3.16
413.1) feature: queue_file::create ڲΨһ  ID ʱֳ̺
ԱڵԼ鵱ǰļĽ

412) 2016.3.11
412.1) bugfix: json_node::is_array жϷʽ

411) 2016.3.9
411.1) feature: HttpServletRequest::getParameter ڲҲʱִСд

410) 2016.3.5
410.1) feature: db/query ˴ sql Ľӿ create

409) 2016.2.29
409.1) ӿڵ master_threads  master_threads2 

408) 2016.2.26
408.1) feature: master_threads2 ˼ӿ

407) 2016.2.18
407.1) feature: xml/xml1/xml2 ӷеΪ xml ڵıݣ
ڵıݷǳʱȽ

406) 2016.2.17
406.1) feature: session/redis_session/HttpSession Ựӹܽӿ

405) 2016.2.13
405.1) compile: ʹԤ룬Ż g++ ٶ

404) 2016.2.6
404.1) bugfix: zlib_stream жʣռķӦ string ƥ

403) 2016.1.31
403.1) feature: string ֧ڴӳļʽڴ棬Ӷָ֧ڴռ
403.2) samples: string/string5, ڲڴӳļ
403.3) feature: xml/xml1/xml2 ֧ʹ dbuf_guard Ựڴʱ
ӶڴʹЧ

402) 2016.1.27
402.1) bugfix: charset_conv еķ update m_addInvalid Ϊ falseӦ
˵Чַ
402.2) performance: mime_state_parse.cpp е mime_bound_body Ż˴
ʼ

401) 2016.1.22
401.1) feature: HttpServlet /ӦԱ(req_/res_)Աڽ
ȡ HTTP 
401.2) bugfix: connect_manager ú set_check_inter/set_idle_ttl

400) 2016.1.15
400.1) feature: redis ˳־ʱϢ

399) 2016.1.11
399.1) feature: fstream ˷ remove ɾļ

398) 2016.1.6
398.1) feature:  db_guard ԶͷŴݿӳлȡӶ

397) 2016.1.5
397.1) feature: db_handle/db_mysql ڽвѯǰͷϴεĲѯʹ
ͷŶڴй¶

396) 2016.1.4
396.1) feature: mime.cpp, mime_head.cpp ָ֧ Content-Type 

395) 2016.1.3
395.1) bugfix: db_mysql.cpp е  __mysql_open ʱ־ʱӦж
ÿǷΪ NULL

-----------------------------------------------------------------------
394) 2015.12.29
394.1) bugfix: redis_key е type һ hash 

393) 2015.12.28
393.1) bugfix:  xml1, xml2 еĺ getFirstElementByTag ڲûж NULL
393.2) bugfix: ȡ http_request е acl_assert(client_) ж

392.1) 2015.12.25
392.1) bugfix: dbuf_guard Ӧֹÿڵ create Ĳ
dbuf_guard Ϊ⣬磺
class myobj : public acl::dbuf_obj
{
public:
	myobj(acl::dbuf_guard& dbuf) : dbuf_(dbuf) {}
	~myobj(void) {}
};

acl::dbuf_guard dbuf;
myobj* obj = dbuf.create<myobj, acl::dbuf_guard>(dbuf);

Ȼ myobj 캯һãȻ create ʱγÿӶ
 dbuf ڵĻͷţԽʽǽֹ dbuf_guard ÿ

391.1) 2015.12.22
391.1) compile: polarssl_io.cpp н sys_read_ready Ϊ read_ready

390) 2015.12.20
390.1) feature: aio_handle ˼÷첽в

389) 2015.12.18
389.1) bugfix: http_request ķ request 󷽷ʱ
389.2) feature: http_header ķ get_method ˲ַʾ󷽷

388) 2015.12.14
388.1) bugfix: xml1/xml2 еķ reset Ӧý root_ ڵɾΪ
acl_xml_reset/acl_xml2_reset  xml  root ڵ㱻ͷţʱ root_ ڵ
õĸڵѾ

387) 2015.12.9
387.1) bugfix: db_mysql Уڳʼ mysql ʱΪ libmysqlclient ڲ
ͨ mysql_thread_init ʼÿ̵ֲ߳߳̾ȴ߳˳ǰ
ͷЩֲ߳̾ڶ̻߳»ڴй¶Ϊ db_mysql ڲ
߳˳ǰ mysql_thread_end ͷЩֲ߳̾

386) 2015.12.7
386.1) feature: xml_node ӽӿ detach ڽһ xml ڵ xml 
з

385) 2015.12.3
385.1) feature: xml2 캯ļΪ
385.2) bugfix: polarssl_io::read е ssl_read ݺӦͨú
ssl_get_bytes_avail ж SSL ǷݣУӦ
ACL_VSTREAM::sys_read_ready ־λ

384) 2015.12.2
384.1) ӿڵredis ӿڵֹʹñʱ
384.2) feature:  xml2 캯Ըʹڴļӳ䷽ʽ
ʹ xml Ŀǰ֧ UNIX

383) 2015.11.30
383.1) feature:  xml1.cpp/xml1.hpp Աֵ֧һ xml 
383.2) feature:  xml2.cpp/xml2.hpp Աֵ֧ڶ xml 

382) 2015.11.26
382.1) bugfix: redis_zset::zstore ж aggregate ʱ

381) 2015.11.24
381.1) feature: http_request/http_request_pool/http_request_manager ֧
SSL ͨŷʽ

380) 2015.11.23
380.1) bugfix: zlib_stream ڼ zlib1.dll ʱӦô deflateInit2
Ӧô deflateInit2_ ַΪ deflateInit2 ֻһ궨壬
deflateInit2_ Ƕ̬ĺַ

379) 2015.11.20
379.1) feature: url_coder ̳ dbuf_obj Ӷ dbuf_guard 
379.2) bugfix: dbuf_guard ڵ dbuf_reset ʱӦȽйĶ

379.3) bugfix: dbuf_guard ڴʱҪ dbuf_keep Աڴ
еڴ

378 2015.11.18
378.1 bugfix: istream::readtags һ

377) 2015.11.16
377.1) feature: dbuf_guard ģ庯 createɸӷشκμ̳
 dbuf_obj  --- Thank @īˮ

376) 2015.11.14
376.1) feature: dbuf_guard ˸෽ķͬʱʹҲ
ڴضϴ
376.2) safety: dbuf_guard ˶ dbuf_obj İȫ

375) 2015.11.13
375.1) feature: ӳģ򻯽ӿƣӼȺµӳʱ
óʱʱ䣬ӶʹӳؼȺԲͬķַòͬĳʱʱ䣬
ʹӳģӦ칹绷

374) 2015.11.12
374.1) feature: http_request_manager Ĺ캯 http ĳʱʱ
 IO дʱʱ
374.2) bugfix: ޸ dbuf_obj 캯е BUGӦȽ nrefer_ ʼΪ 0

373) 2015.11.11
373.1) bugfix: mail_message е append_addrs һָ BUG

372) 2015.11.10
372.1) bugfix: redis_command  build ڹʱӦֶ֧Ƹʽ
372.2) feature: dbuf_obj  nrefer_ dbuf_guard аȫԷֹ
dbug_guard ظͷ

371) 2015.11.7
371.1) feature: dbuf_pool.cpp ڴع dbuf_guard ڴض
dbuf_objԷʹ dbuf_pool ڴ
371.2) feature: dbuf_pool ص new ָڴı

370) 2015.11.3
370.1) feature: url_coder ڲ dbuf_pool ڴз
370.2) feature: string ˷ equal Ƚ string 

369) 2015.11.1
369.1) workaround:  json_node 

368) 2015.10.28
368.1) performance: http ģࣨHttpCookie, http_header, HttpServlet,
HttpServletRequest, HttpServerResponseͨỰڴ(dbuf_pool)ڴ
Ӷ˴
368.2) feature: dbuf_pool::dbuf_reset Ӳ reserveӶӦڴ
ʱԱѾĻ

367) 2015.10.27
367.1) bugfix: HttpServletRequest з readHeader ÷
getContentLength ʱ -1 acl_mymalloc((size_t) len + 1)
ʱ getContentLength  -1ʱֱӷ

366) 2015.10.25
366.1) bugfix: db_mysql ڲڳʱûʹóʼʱʹõַ
366.2) ععݿӳģĴ룬ʹ dbopen ʱҪַָ

365) 2015.10.19
365.1) feature: redis_client_cluster/redis_client_pool/redis_client ֧
ɹʹ֤Ӷʹ redis ļȺģ֧֤

364) 2015.10.8
364.1) feature: json з[]ӿڣûõһƥ

363) 2015.10.7
363.1) feature: json · getFirstElementByTagName÷ڱ
еƥ䵽һϵĽڵأЧʱ getElementsByTagName 
363.2) performance: xml::getFirstElementByTag ʹ lib_acl ¼ӵĺ
acl_xml_getFirstElementByTagNameִЧʸ

362) 2015.9.30
362.1) bugfix: string еķ strip в each Ϊ false ʱʽ
362.2) feature: string еķ strip дʱ
362.3) feature: mail_attach ˷ set_filename

361) 2015.9.29
361.1) bugfix: string еķ strip ڵеĲ each Ϊ true ʱ

360) 2015.9.28
360.1) feature: json_node ˽ڵ͵жϷ

359) 2015.9.25
359.1) feature: http ģе HttpServlet  doOther ӿڣӶ
֧δ֪ HTTP 󷽷
359.2) feature: smtp ģװʼĹ
359.3) samples/mime/mail_builder: ʾ

358) 2015.9.22
358.1) feature: json ֧жǷϵĹ

357) 2015.9.21
357.1) bugfixأ: ӳػ connect_pool еķ check_idle 
exclusive Ϊ false ʱǰ;  BUG Ӱиࡣ
357.2) safety: string еĺ MCP ˰ȫԼ

356) 2015.9.18
356.1) feature: connect_pool/connect_manager ӳؼӳع


355) 2015.9.9
355.1) feature: smtp_client ѾԷǳطʼ
355.2) samples/smtp_client: ʼ͹

354) 2015.9.7
354.1) bugfix: geo_member::set_coordinate þγȵĲ
354.2) bugfix: db_row::field_int64 ֮ǰʹõĽַתΪ64λķ32λ
⣬ͳһ acl_atoi64
354.3) feature: smtp ģʼϳɵĹ
354.4) sample: mime_builder ʼϳɹ
354.5) bugfix: mime_stype_name ±ʼλòǴ 0 ʼģҪ
±λüȥʼ±ֵܵõ±ֵ

353) 2015.9.6
353.1) bugfix: redis_zset::zrangebyscore_get е argc 

352) 2015.9.2
352.1) feature:  smtp_client ͵ʼͬʱ֧ SSL ʽʼ

3512015.8.31
351.1) compile: VC2010 δ thread_queue Դļͷļ
351.2) feature: locker  lock_guard Աڼ򻯼/

------------------------------------------------------------------------
350) 2015.8.26
350.1) feature: string ڽ base64 ʱҪԶβ \0 Էֹʹ


349) 2015.8.24
349.1) bugfix: redis_command/redis_key/redis_hash/redis_set/redis_zset 
Уܷ˻᷵ cursor Ϊ > 0 ΪյҪд

348) 2015.8.20
348.1) compile: zlib_stream ڲʹ˶̬ zlib ķʽ

347) 2015.8.19
347.1) feature: db_handle/db_mysql ֧ύӿ

346) 2015.8.18
346.1) feature: http_client/http_request ڶȡѹʱԶ
ʱΪ 0 ԽʹøӶ

345) 2015.8.17
345.1) http_client gzip ѹͨ

344) 2015.8.16
344.1) feature: http_client ֧Ӧ gzip ѹ͵
344.2) feature: HttpServletResponse еͳһ http_client 

343) 2015.8.15
343.1) bugfix: redis_string::incoper ڲ INCR  INCRBY, DECR  DECRBY
ķ

342) 2015.8.13
342.1) feature: http_ctype ֶ֧󿽱
342.2) feature: HttpServletRequest ķ getContentType һ http_ctype
ָ룬ûԻø Content-Type еϢ
342.3) feature: HttpServlet::doRun ڵһ IO ʱŻ doError 
342.4) feature: Ӿ̬ʽ log::debug_init ־¼ӿ

341) 2015.8.12
341.1) mysql_manager: mysql ӳؼȺͨ mysql_conf ࣬
 mysql Ӷ
341.2) feature: mysql_manager ֧ӳÿӵĿ

340) 2015.8.11
340.1) feature: db ģݿӳؼȺ漰޸У
(1) db_handle ̳ connect_clientdb_pool ̳ connect_pool;
(2) ޸ mysql_pool/sqlite_poolʹ֮ʵ˻ connect_pool е鷽
(3) ޸ db_mysql/db_mysqlʹ֮ʵ˻ connect_client е鷽
(4)  mysql_manager/sqlite_managerʹ̳֮ connect_manager

339) 2015.8.9
339.1) bugfix: redis_zset::zrange_get_with_scores ȡýʱ˳

338) 2015.8.6
338.1) feature: ӳ xml/json ģڱʱʱ

337) 2015.8.4
337.1) compile: samples/db µ޷ MACOS ϱ

336) 2015.8.3
336.1) samples/redis: Գط˴ʾ

335) 2015.8.2
335.1) feature: db_handle/db_mysql/db_sqlite ṩ˾̬ö̬⶯̬
صȫ·
335.2) feature: mysql ģ鹦Ĭϱʱ lib_acl_cpp У
 db_mysql ģĬϲö̬طʽ
335.3) samples/db/mysql_query: ʾ
335.4) samples: ʾ samples/db/mysql_poolԶ̻߳µݿ
ӳز

334) 2015.8.1
334.1) feature: Ա׼stdin_stream, stdout_stream
334.2) sample: db/mysql_query 

333) 2015.7.31
333.1) feature: HttpServlet еķ doRun ڲӦͻʱ
ݿͻ˵ͷֶ(Connection) ԶӦͷе Connection ͷֶ

332) 2015.7.30
332.1) bugfix: redis_command::redirect() ڵ cluster->peek()  NULL
ʱӦֱӷ NULL

331) 2015.7.25
331.1) feature: HttpServletRequest ֱ xml  json ķ

330) 2015.7.22
330.1) bugfix: dbuf_pool 붯̬ҪΪ˽з

329) 2015.7.21
329.1) feature: db ģĲѯ query  double/float 
329.2) perfomance: dbuf_pool ҲڴϣӶٴμ malloc/free 

328) 2015.7.19
328.1) bugfix: redis_command.cpp е run(redis_client_cluster*, size_t) 
пܴڵ conn ͷźٴηǷõΣڽöͷŷõĴ֮

327) 2015.7.16
327.1) bugfix: redis_command.cpp е run(redis_client_cluster*, size_t) 
У conf->eof() ʱ conn = peek_conn(xxx)  NULLӦֱӷ NULL
Ŀָ쳣

326) 2015.7.15
326.1) bugfix: redis_script.cpp  eval_cmd  key 㷽ʽ

325) 2015.7.13
325.1) sample: ʾ samples/redis/redis_geo ԵϢģ redis_geo

324) 2015.7.11-12
324.1) feature:  redis_geo ֧࣬ redis λϢ

323) 2015.7.6
323.1) feature: HttpServlet ԶжǷҪͻ˱ֳӵķ

322) 2015.7.4
322.1) feature: http_client  get_range ݶϵ
322.2) feature: HttpServletRequest  getRange ݶϵ

321) 2015.7.2
321.1) bugfix: redis_hash::hexists жϷֵ

320) 2015.7.1
320.1) feature: http_client ˼ HTTP ͷֶ޸ĵķ

319) 2015.6.28
319.1) compile: ֧ VC x64 ±ʹ

318) 2015.6.25
318.1) bugfix: beanstalk::ignore_all ڲڴй¶

317) 2015.6.22
317.1) feature: dbuf_pool  dbuf_reset ظʹø
317.2) performance: redis_command ൱ÿһϺͷڴض
Ǹ֮
317.3) bugfix: redis_zset һڵ sizeof ʱδ -1

316) 2015.6.17
316.1) feature:  thread_queue ߳Ϣ

315) 2015.6.16
315.1) feature: db_handle.cpp е db_row  field_double 
315.2) decprecate:  db_pool е peek עΪڵģʹ peek_open 
ʹ÷ʽΪ

314) 2015.6.15
314.1) bugfix: redis_key.cpp -> randmkey 

313) 2015.6.14
313.1) compile:  MACOSX ϵһЩ

312) 2015.6.12
312.1) compile:  MAXOS ±Ĵ뱨

311) 2015.6.3
311.1) samples/http/http_servlet: ʾʹ redis Ⱥ洢 session 

310) 2015.6.1
310.1) ع session 
310.2) feature:  redis_session 
310.3) bugfix: redis_client_cluster еǰ  redis_pool ӦΪ
redis_client_pool

309) 2015.5.25
309.1) feature: locker.cpp  locker ֧

308) 2015.5.18
308.1) bugfix: redis ģеһЩʹñεķеĵط©˵һ

------------------------------------------------------------------------

307) 2015.5.6
307.1) bugfix: redis_command еķ get_client_addr üȺģʽʱ
ȡõǰӵķ˵ַ

306) 2015.5.3-5.5
306.1) feature: ˷ֲʽϢ disque Ŀͻ˿ģ

305) 2015.4.27
305.1) bugfix: redis_command.cpp е run ڴص ASK ӦӦ
Ŀȷ ASKING ָ

304) 2015.4.25
304.1) bugfix:  aio_timer_callback еķ set_time ڸԱ present_
ֵʱ 32 λϵͳ»ɼֵǰдΪ
present_ = ((unsigned long) now.tv_sec) * 1000000
		+ ((unsigned long) now.tv_usec);
ָĳɣ
present_ = ((long long int) now.tv_sec) * 1000000
		+ ((long long int) now.tv_usec);
ڱʱŻǿƽĽֵ 64 λԴ.

303) 2015.4.23
303.1) bugfix: samples/connect_manager첽ӦǾֲģӦ monitor
һ check_async ص

302) 2015.4.21
302.1) buffix: redis_client::get_redis_string ݳΪ 0 ʱ쳣,
Ӷ redis ֵΪմ

301) 2015.4.19
301.1) feature:  redis_cluster Ⱥ

300) 2015.4.12
300.1) comment:  redis ģӢע

299) 2015.4.8
299.1) comment:  redis ģһЩע

298) 2015.4.7
298.1) bugfix: redis_cluster е reset  redis_command еķ
Ⱦֽ redis_cluster езǰ׺ cluster_
298.2) bugfix: acl::redis Ϊ̳ redis_xxx ࣬޷ͨЩ
Ĺ캯ݸ redis_command Ĺ캯 acl::redis
Ĺ캯ʾؽݸ redis_command Ĺ캯
298.3) feature: acl::redis_cluster е cluster_nodes, cluster_slots,
cluster_slaves, cluster_info ֯õĽ

297) 2015.4.6
297.1) feature:  redis_slot ༰ redis_node 

296) 2015.4.5
296.1) performance: HttpServletResponse::write  chunk ʱԭ
εϵͳ API write ʽΪֻһ writevӶϵͳô

295) 2015.4.4
295.1) feature: connect_monitor ӳԶ֧Ӧ IO ̣Ӷ
ӵͨЭ鴦

294) 2015.4.2
294.1)  redis_pool Ϊ redis_client_pool,  redis_cluster
Ϊ redis_client_cluster
294.2) feature:  redis_clusterֹ֧ٷ¹ CLUSTER ָ
294.3) feature: redis_client_cluster ֧־̬ʼϣĶӦϵ
294.4) samples:  redis CLUSTER ָĲ redis_cluster

293) 2015.3.30
293.1) bugfix: redis_command.cpp  get_strings ȡ rr ±ʱ

------------------------------------------------------------------------
292) 2015.3.27
292.1) feature: redis ͻ˿ṩһͳһ redis̳е
 redis ֻ࣬ʹһִе redis 
292.2) samples/redis:  redis, redis_cluster2 
292.3) workaround: ȥ redis бΪֵ

291) 2015.3.25
291.1) bugfix: server_socket::open() ûĵַΪ ip:0 ʱҪµ
acl_getsocketname ĵַ

290) 2015.3.23
290.1) bugfix: redis_command::scan_keys ڲʹָ count ʱ⣬
л wangsquirrel@gmail.com ִ BUG

289) 2015.3.17
389.1) bugfix: http_header еķ set_method(const char* method) Ҫ
method_s иֵ

288) 2015.3.2
288.1) feature: beanstalk һЩʾ

287) 2015.3.1
287.1) feature: redis ͻ˼ȺǿԷߵݴ
287.2) feature: ḻӳع

286) 2015.2.28
286.1) feature: redis ͻ˿ԼȺʽ𻵽Զɾ
286.2) bugfix: connect_pool еĺ put  delay_destroy_ Ϊ true
ʱ count_ > 0 ʱûжԻ lock_ Ӷʹø
ӳض̵߳ put ʱԶȴ

285) 2015.2.26
285.1) feature: redis ͻ˿ԼȺ汾 redis3.0 ֧

284) 2015.2.14
284.1) workaround:  redis ģعԱڸõ֧ redis3.0 е
Ⱥģʽ
284.2) feature: Ͽ֧ redis Ⱥģʽ
284.3) samples/redis_cluster:  redis Ⱥģʽ

283) 2015.2.11
283.1) samples: Ϊ acl_master ģʽеķ֧ܲ WIN32
 master_xxx ϵеʾ WIN32 ǿƲ alone ģʽ
283.2) performance: redis_key::scan, redis_zset::zscan, redis_set::sscan,
redis_hahs:hscan ֮ǰڱʱܻ洢Ķռ䣬ⲿʱܻɶ
ӰһܣڲԶ̣û

282) 2015.2.10
282.1) feature: redis_command ˼õķʹûͨ
redis_command ֱӵ redis_result еķ
------------------------------------------------------------------------
281) 2015.2.2
281.1) feature: http_client.cpp  sprint_header Խ HTTP Ӧͷ
ڣԱӦýе

280) 2015.2.1
280.1) samples: redis_connection, redis_hyperloglog, redis_transaction 
redis ͻĲӲͨ

279) 2015.1.30
279.1) feature: http_header.cpp е set_method  HEAD/OPTION 󷽷
279.2) samples: redis_zset_pool ӿͨ redis 򼯴洢ݣʽ
ǽзֳСݼϴ洢 redis 򼯶ĳԱ
279.2) redis_zset: redis 򼯹ģͨ

278) 2015.1.25
278.1) feature:  redis ͻ script й

277) 2015.1.23
277.1) bugfix: master_threads2.cpp  run_once()  service_on_accept 
ֱӷʱûͷ󣬵ֺڴй©
277.2) feature: redis ͻ˿ redis_key, redis_hash, redis_set, redis_zset
෽ scan 
277.3) feature:  redis ͻ pubsub й
277.4) feature:  redis ͻ server ļȫ

276) 2015.1.21
276.1) feature: ʵ redis_zset ȫӿ
276.2) samples:  samples/redis/redis_pubsub  redis_pubsub 

275) 2015.1.20
275.1) feature: redis_zset ʵ 10 

274) 2015.1.19
274.1) bugfix: db_mysql.cpp  WIN32 ʹ mysql ˶̬صķʽںָ
ǰӦ STDCALL 궨
274.2) redis: ع redis ͻ˿

273) 2015.1.17-1.18
273.1) feature: ʵ list/pubsub/connection/transaction redist ͻ
273.2) feature: redis ͻ˿е redis_key  migrate/move ֧

272) 2015.1.16
272.1) feature: redis ͻӳؼӳؼȺͨ

271) 2015.1.15
271.1) bugfix: beanstalk ͻ˿⵱óʱʽȡϢʱӦ¼־
271.2) feature: redis ͻ˿ redis_string صĹܲͨ
271.3) feature: redis ͻ˿ redis_hash/redis_key صĹܲͨ

270) 2015.1.7
270.1) feature: socket_stream  get_tcp_non_blocking жϵǰ
׽ǷǷģʽĿǰ֧ UNIX ƽ̨

269) 2015.1.3
269.1) feature:  dbuf_pool ڴ࣬ʺƵСһСڴ
269.2) feature: ԰Ƶ OSSο JAVA SDK  C++ ӿ

268.1) 2014.12.24
268.1) : HttpServlet  doRun 
269) 2015.1.1
269.1) compile: ̿ʹ clang/clang++ ͨ

------------------------------------------------------------------------
267) 2014.12.14
267.1) feature: locker  try_lock 
267.2) feature: xml ˼

266) 2014.12.2
266.1) bugfix: polarssl_io ڷģʽпܻ IO 

265) 2014.12.1
265.1) bugfix: istream е xxx_peek ڶʱûж errno Ϊ ACL_EWOULDBLOCK
ڷʽ£ -1  errno Ϊ ACL_EWOULDBLOCK ʱʾ
265.2) feature: polarssl_io ˷ IO 

264) 2014.11.29
264.1) feature: stream_setup ڿ֧ aio_stream 
264.2) feature: polarssl_io ַ֧ IO ķ

263) 2014.11.25
263.1) feature: string  find_blank_line/find_reset 
ǰвһеλ
263.2) feature: string  substr ӵǰȡ
263.3) samples:  string/blank_line ʾķ
263.4) feature: master_threads2  proc_exit_timer 麯ӽ
Ҫ˳ʱģ彫ص麯ԾӽǷ˳

262) 2014.11.19
262.1) bugfix: http_response е read_header ʱҪԶ
head_sent_ Ϊ falseԱͬһӵһλỰʱȷ HTTP Ӧͷ

261) 2014.11.18
261.1) bugfix: fstream::open ڴļʱȵû stream::open_stream
Ȼຯٵ C  acl_vstream_fdopen ʱû˵ͣڲ
ACL_VSTREAM Ĺرջص
261.2) bugfix: snprintf.cpp к snprintf/vsnprintf ڵ _vsnprintf_s ʱ
ӦΪ _TRUNCATE򵱻ıȽСʱVCṩ API ڲ

260) 2014.11.10
260.1) feature: master_threads2  thread_on_handshake 
 thread_on_accept ߳е thread_on_handshake 
ϳ

259) 2014.11.7
259.1) feature: json ˹첼ͺֵ͵Ľӿ
259.2) samples:  json  json/json7
------------------------------------------------------------------------

258) 2014.10.26
258.1) feature: ḻ SQL ѯ query Ľӿ
258.2) sample: ݿѯʾ samples/db/mysql_query
258.3) feature: string  format_append ˱У鹦
258.4) bugfix: string е operator +=(long n) ı

257) 2014.10.25
257.1) feature: socket_stream  TCP ׽ֵ/ȡserver_socket
÷׽ӳٽѡ
257.2) feature:  query ݿѯ࣬ͨ๹ȫ SQL ѯ䣬ͨ
db_handle ѯ query 󣬴ƽ java hiberate һЩ˼

256) 2014.9.12
256.1) compile: ʹ Makefile.db ʱһЩ

255) 2014.9.11
255.1) bugfix: samples/win_dbservice 첽 DB ǰûд첽Ϣ

254) 2014.9.6
254.1) compile: ʹ VC ʱһЩ뾯
254.2) performance: ڵ delete ǰɾõпղ

253) 2014.8.27
253.1) feature: polarssl_conf ֧ SSL ʱ֤֤ķʽ
ʼʱ֤֤ʽ
253.2) feature: stream_hook  on_close صǷĲ
ɸݴ˲رӵƺ; stream ڹرǰж
Ƿ״̬ͨ on_close ݸʵ

------------------------------------------------------------------------
252) 2014.8.21
252.1) feature: ֧ polarssl.1.2.11  polarssl.1.3.8 汾 polarssl,
 polarssl.1.3.8 汾Զִ֧߳ BUGĬʹ polarssl.1.2.11 汾
252.2) sample:  samples/https_client ̲߳ʾ
https_server 

251) 2014.8.20
251.1) feature:  polarssl  stream Ϲ
251.2) ӿڵhttp_client е open ȥ use_ssl Ӧÿͨ
http_client  stream ʹ stream::setup_hook ʹ֮ SSL ͨŹ
251.3) stream:  setup_hook ʱע ACL_VSTREAM е context 
Ӧóͻʹ ACL_VSTREAM  objs_table ʱΪһϣ
251.4) sample:  samples/https_serveróΪһ֧ HTTPS Э WEB 

250) 2014.8.19
250.1) feature: ֧ʹ polarssl  SSL ˴
250.2) feature: stream У  close ԭ鷽޸Ϊ鷽 stream
ʵ֣ ҿԵ stream_hook  on_close 
250.3) sample: samples/ssl_server ķ SSL ʾ 

249) 2014.8.15
249.1) feature: stream  set_ctx ǷǾɶĹ

248) 2014.7.31
248.1) compile:  FreeBSD9.2(64) ϱͨ

247) 2014.7.29
247.1) feature: socket_stream  alive() ӵĴ̬
247.2) feature: stream չ set_ctx/get_ctx ͨ key /
Ӧ ctx ͬʱ del_ctx ɾ key Ӧ ctx 
247.3) samples:  socket/client, socket/server 
رʱһдȻɹ

246) 2014.7.24
246.1) bugfix: http_request.cpp е÷ write_head ʱ󷽷Ϊ POST 
ЧԻ
246.2) feature: http_mime.cpp δ HTTP MIME ʱû get_nodesڲ
 parsed_ Ϊ true һ᷵ؿսϼ

245) 2014.7.21
245.1) bugfix: header_token.cpp ĺ header_token  WIN32 ·ʱ
⣬˵·еķб '\'

244) 2014.7.16
244.1) feature:  string ֵֵ󣬿ͨ length() ȡݻ
ĳͬʱὫռΪ \0 Ա֤ʹʱİȫԣһ std::string
ͬstd::string  0 Ҳռ
245.2) samples: string3 ʾר string ֵֵ

243) 2014.6.26
243.1) feature: aio_istream/istream ְ֧жʱ󳤶Էֹ
ػ
243.2) feature: string ֧趨󳤶ȣ˳ʱᱨ

242) 2014.6.23
242.1) feature: string.cpp  string ֵֵ֧

------------------------------------------------------------------------
241) 2014.6.18
241.1) master_aio.cpp: вӦٵ __handle->check()
241.2) master_aio.cpp: Ϊ C еĽӿı䣬Ҫȥ run_ctx(ĸ)

240) 2014.6.12
240.1) bugfix: string е trim_left_space/trim_right_space ƶݺû
β '\0'

239) 2014.5.27
239.1) bugfix: scan_dir е curr_path() ȫ·ʱ
239.2) feature: string  scan_line/scan_move Ⱥӻȡ
ݣͬʱ޸ string::c_str(), string::length(), string::size()ʹܹ֮
 scan_xxx ĲΪ

238) 2014.5.26
238.1) sample: samples/scan_dir ӵ acl::scan_dir

237) 2014.5.23
237.1) feature: string Ϊʹ÷㣬ȥ˶ֵе޶ const
237.2) bugfix: scan_dir е curr_path ѭ

236) 2014.5.22
236.1) bufix: http_client Ĺ캯 http_client() ûж buf_  NULL
 http_client::reset ж buf_  reset ʱ˷Ƿָ

235) 2014.5.20
235.1) bugfix: connect_manager ӳؼȺ൱ĳӳʱԶʧܵ
ӳؽлָܻᵼӳز
235.2) feature: connect_manager ӳԶָʱûָʱ
ķset_retry_inter

234) 2014.5.15
234.1) feature:  stdlib/scan_dir ࣬ڴĿ¼ɨ
234.2) sample: ʾ samples/dircopy Ŀ¼ṹڲʹ scan_dir 

233) 2014.5.13
233.1) feature: string/http_client/http_request ˰жݵķ

232) 2014.5.11
232.1) feature: string  scan_line/trim_left_space/trim_right_space/
trim_space/trim_left_line/trim_right_line/trim_line 

231) 2014.5.8
231.1) interface: HttpServletResponse  format/vformat ķֵ bool Ϊ int

230) 2014.5.6
230.1) feature: fstream е fseek/ftell ʱڲԶ eof_ Ƿ״̬

229) 2014.5.5
229.1) feature: fstream  ftell õǰļָļеƫλ

228) 2014.4.23
228.1) bugfix: connect_pool.cpp ʵһset_retry_inter

227) 2014.3.28
227.1) feature: connect_client /ȡӳضĽӿڣ
connect_pool ڴӶʱãӦҵӶӳض

------------------------------------------------------------------------

226) 2014.3.27
226.1) ȥ master_threads ԭʵ֣滻 master_threads2Ϊ
lib_acl ײ acl_threads_server.c ģ幦ܸǿ
227.2) feature: master_aio עرջصӶϿʱ
 lib_acl  acl_aio_server.c->acl_aio_server_on_close() 
¼ӹرյʱ䣬Ӷ master_dispatch ģ


225) 2014.3.21
225.1) bugfix: master_threads2.cppϲֱӵ service_on_close ʱ
ûͷڴй©Ѿ޸ master_threads.cpp 
Ȼ(ཫᱻ)

224) 2014.3.14
224.1) bugfix: md5.cpp  WIN32 ʹ sprintf_s ʱĳȲӦΪ
3 VC ᱨ

223) 2014.3.13
223.1) feature: connect_manager ӳؼȺ˺̨⹦ܣӵ
connect_monitor Ϊһ̣߳ں̨ڼӳؼȺезĶ˿Ƿ


222) 2014.2.27
222.1) bugfix: event_timer.cpp,  32 λ» 64 λת 32 λ
 32 λ⣬Ҫԭ event_timer::set_time и present_
ֵʱָ unsinged long ޶ long  32 λ 32 λ

221) 2014.2.6
221.1) feature:  glib еһЩ궨壬 gcc  vc 
һЩԿ

220) 2014.1.18
220.1) feature: db_pool  peek_open ڻȡݿʱֱӴ
ݿ
220.2) comment: string::strip עͶ each ĽͲ

219) 2014.1.27
219.1) 

------------------------------------------------------------------------
218) 2014.1.21
218.1) bugfix: HttpServletRequest.cpp, HttpServletRequest::readHeader ڽ
POSTеʱҪжͷ Content-Length Ϊ 0 

217) 2014.1.20
217.1) bugfix: http_request.cppõһ캯( socket_stream* 
Ϊ캯Ĳ֮һ)ʱsocket_stream::get_peer(bool full) ĲӦΪ true
Աڻĵַ(ip:port)ʱֻIPPORT޷ӳɹ

216) 2014.1.11
216.1) compile: ֧ vc2008 
216.2) feature: ʹø߰汾 vc_MSC_VER >= 1500, VC9 ϰ汾 ʱ
ʹ _CRT_SECURE_NO_WARNINGS 棬ʹ VC İȫ

215) 2014.1.8
215.1) feature: http_request ˷ set_timeout 糬ʱдʱ

214) 2014.1.6
214.1) bugfix: ̳߳طģ master_threads2 ڵ service_pre_jail
ʱӦͨ acl_threads_server_event ¼ (ԭд acl_ioctl_server_event,
Ǿɵķģȡ¼ķ)

213) 2014.1.5
213) security: ipc ͨŻȫ֤ܣԷֹ

212) 2014.1.4
212.1) bugfix: queue_file.cppqueue_file::create ڳԴļʱ
ܻΪļϵͳѭ̣ͨӱ־λ

211) 2013.12.29
211.1) feature: json ַֽ֧
211.2) samples: json µĲ

210) 2013.12.28
210.1) samples: е json  samples/json Ŀ¼

209) 2013.12.25
209.1) bugfix: json.cpp  json_node::set_text ıֵǩ

208) 2013.12.22
208.1) feature: socket_stream ֧ ssl ( polarssl ); ȥ
ssl_stream 

207) 2013.12.13
207.1) feature: master_threads2˷̳߳ģ

------------------------------------------------------------------------

206) 2013.12.7
206.1) samples/master_udp_threads: еֲ߳̾ľ̬÷ __thread
޷֧ solarisΪ̬ʽʹֲ߳̾ʽ

205) 2013.12.6
205.1) comment:  connect_manager::init ԭĲʽ
205.2) bugfix: connect_pool::put ڹ黹ӸӳʱΪùӾգ
Ҫ push_frontԭ push_back

204) 2013.12.5
204.1) feature: Makefile ֧ solaris(x86) 

203) 2013.12.2
203.1) document: ˼ͷļ doxygen Ĵע

202) 2013.12.1
202.1) feature:  event ģ飬 master_timer ʱΪ event_timer
 event ģ
202.2) feature: ڻ master_base ˷ proc_set_timer ӽ
Ķʱ(ͬʱƳ master_threads е proc_set_timer )
master_base  (master_threads, master_aio, master_proc, master_udp,
master_trigger) ӽ̼Ķʱ

201) 2013.11.29
201.1) feature: master ģ˶ʱ master_timer
201.2) feature: master_threads ģ֧µĶʱ
201.3) workaround: stream ģ첽֣ aio_timer_callback 
aio_handle ƳΪ

200) 2013.11.26
200.1) feature: json.cpp,
200.1.1) json ¹ܺ
a) 캯 json(const json_node&)Ըһ json ĳһ json
㴴һµ json 
b) duplicate_node һ json ĳ json 㸴һµ json 
c) to_string µĽ json תΪַĺ
200.1.2) json_node ¹ܺ
a) to_string  json  json ַĺ
b) set_tag 滻ǩ
c) set_text  json ΪҶʱ滻ǩֵ
200.2) samples:  json  json3/json4

199) 2013.11.23
199.1) feature: http_header ḻ set_url 캯Ĳͣ
 URL кڲԶ url е
199.2) feature: http_header ӷadd_int  add_format
199.3) feature: http_header add_param ֵΪָմ
199.3) feature: http_header::set_host ǽַԱ host_ 
199.4) feature: http_header::set_url  http://www.test.com 
url(ĩβû '/')

198) 2013.11.21
198.1) feature: http_client  chunked ䷽ʽ
198.2) feature: http_request ʽдwrite_head/write_body
198.3) feature: http_response ʽдݷʽ

197) 2013.11.19
197.1) workaround:  http_client е get_respond_head  
get_request_head ķֵƣȥ const ޶
197.2) bugfix: http_header.cpphttp_header::date_format  WIN32 

196) 2013.11.17
196.1) bugfix: json.cpp, json::getElementsByTags() ڲδԿָж
196.2) samples: samples/json2, ڲԼȡݵ

195) 2013.11.13
195.1) bugfix: http_header.cpp, http_header::date_format  UNIX ƽ̨
gmtime ̲߳ȫģҪʹ gmtime_r

194) 2013.11.9
194.1) feature: HttpServletRequest ˼ȡ HTTP ͷķ

193) 2013.11.8
193.1) feature: http_utils::get_addr  url ȿ HTTP Ҳ HTTPS

192) 2013.11.7
192.1) bugfix: http_download.cpp Ĺ캯е ACL_SAFE_STRNCPY ʱ
ĳߴС bug ɸ߰汾 gcc4.8.2 

------------------------------------------------------------------------

191) 2013.11.5
191.1) bugfix: http_header.cpp, http_header::build_common  Content-Length
HTTP ͷֶʱûӷָ ": "

190) 2013.11.1
190.1) feature: ʹ GCC бʱобεĺӿڶ
޶---__attribute__((format(printf, n, m)))ڱھܷ
ʹòµĴ
190.2) bugfix: master_udp.cpp alone ʽʱûн socket_stream
 ACL_VSTREAM::context service_main ʱ´һ

189) 2013.10.31
189.1) bugfix: thread.cpp߳Ϊ뷽ʽʱ thread::thread_run ڵ
麯 run 󲻵̶߳ return_arg_ڴǷ

188) 2013.10.20
188.1) feature: HttpServletResponse ֧ Transfer-Encoding: chunked ䷽ʽ

187) 2013.10.19
187.1) samples: ˲ thread_clientһ߳ͻ˳

186) 2013.10.18
186.1) bugfix: db/db_mysql.cpp, ڴ mysql ʱַжǷ
ɹķ

185) 2013.10.15
185.1) thread һ: thread_jobӶʹ߼Ϊ

184) 2013.10.13
184.1) bugfix: master_udp.cpp, master_udp::service_main() е socket_stream
ʱջûⲿڴǷ

183) 2013.10.12
183.1) samples:  master_udp_threadsӽ̳߳ master_udp ģ

182) 2013.10.11
182.1) feature: connect_manager/connect_pool ̬ӡɾӳض
182.2) feature: ߳(stdlib/thread)̳߳(stdlib/thread_pool)
182.3) samples: ˲ thread Բ߳
182.4) samples: ˲ thread_pool Բ̳߳

181) 2013.10.10
181.1) samples:  master_aio_proxy  TCP 

------------------------------------------------------------------------

180) 2013.10.3
180.1) feature: aio_stream  get_peer/get_local ı
Զ̵ַ

179) 2013.9.30
179.1) feature: master_udp ģ˿ proc_on_init() 麯л
ذ׽󼯺ϵĺ: get_sstreams()
179.2) bugfix: memcache.cpp  open  memcached ʧʱ
valgrind ¼־ʱһδʼı

178) 2013.9.27
178.1) lib_acl  ACL_EVENT_NOTIFY_RDWR/ACL_EVENT_NOTIFY_TIME ӿڶ
޸ģ֮صģ޸
178.2) feature: master  master_udp ģ
178.3) samples:  UDP Ĳ udp_client 

177) 2013.9.22
177.1) Ϊ lib_acl е ACL_VSTREAM дصӿڱ֮ص
ڲӿڣҪӰ쵽 ssl_stream/ssl_aio_stream

176) 2013.9.13
176.1) compile:  Makefile.db ļʹøļҪ mysql/sqlite ;
ҪݿصĹܣʹ Makefile ļб

175) 2013.9.12
175.1) feature: connect_manager ˸ݼֵַĹϣֵȡӳض
麯Ӷڷֲʽʹӳ
175.2) feature: connect_manager/connect_pool ÿӳһ
λӳؼе±

174) 2013.9.10
174.1) feature: http_request::request ԭָֻ GET/POST 󷽷
ָ󷽷
174.2) feature: http_header Զ壨 GET/POST/PUT/CONNECT/PURGE֮
ͷ

173) 2013.9.9
173.1) feature: memcache ֧ʽдݣӶִ֧ value Ĵȡʽ

172) 2013.9.7
172.1) master_threads ڵзʽʹóӽ acl_master µг

171) 2013.9.5
171.1) feature: master_threads/master_aio/master_proc ֧ڵģʽ¼ַ
171.2) feature: acl_cpp_init.cpp  WIN32 ¹ر DOS ڵĺ
171.3) compile: acl_cpp_init.cpp  freopen صļΪδʹöʹ

170) 2013.8.30
170.1) feature: http/memcache ģӳع
170.2) connpool/http_request_pool/memcache_pool: ˹캯ȥһ

169) 2013.8.22
169.1) bugfix: memcache е쳣жʱݱԭ
Ӧͬһ£ֽ󻺳Ӧֿ

168) 2013.8.18
168.1) samples: ˲ http_request_pool  samples/http_request_pool
168.2) samples: ˲ memcache_pool  samples/memcache_pool

167) 2013.8.17
167.1) feature:  HTTP ͻӳ http_request_poolͬʱ http_request
Ϊ connect_client 
167.2) feature: memcache ӳ memcache_poolͬʱ mem_cache Ϊ
memcache

166) 2013.8.13
166.1) mem_cache: ˹캯ӿڣʹ֮ʹ
166.2) feature: ͨõĿͻӳعconnect_client, connect_pool,
connect_managerЩΪֻ࣬Ҫʵֺٵļ麯ɻùܷḻ
ӳع

165) 2013.8.11
165.1) feature: db_pool ֶ֧̬ʱڵݿͷŵӶ
Ժݿѹ

164) 2013.8.9
164.1) bugfix: db/db_mysql.c ڴ mysql ʱԭʵУҪַ
ᵼ±ԭַӴ֮ãԭӴ
ǰõ

163) 2013.7.29
163.1) bugfix: string::split/split2 ڲڵ acl_argv_split ûе
acl_argv_free ͷŶ̬ڴ
 
162) 2013.7.1
162.1) еԴļ

161) 2013.6.25
161.1) compile:  gcc-4.6.3 µһЩ뾯

160) 2013.6.13
160.1) feature:  server_socket 
160.2) socket_stream:  get_ip ĺһ
160.3) samples/benchmark:  client/server ڲ IO ѹĳ

159) 2013.6.6
159.1) feature: HttpServletRequest/http_client ӵ HTTP ͷĺ

158) 2013.5.13
158.1) feature: master_thread ˾̬Ӷʱ

157) 2013.5.2
157.1) feature: ļ첽 IO ࣺaio_fstream
157.2) samples:  aio_fstream Ĳ: fs_benchmark

156) 2013.4.17
156.1) bugfix: master_thread.cpp ڲԻʱmaster_threads::thread_run
˻Ƿпɶݵж

155) 2013.4.5
155.1) bugfix: ipc_service.cpp  thread_pool_main Ӧõ last_serror
Ӧõ last_error
155.2) bugfix:  rpc_request::run зһֲջ߳
 rpc_client::on_message ͨ IO յ˱ʱѾ߳ˣ
ڴǷ⣬ڰѴ˱ڸĳ rpc_request ͬ
Ӷֹ rpc_client::on_message һǰͷŵı

154) 2013.4.1
154.1) HttpServletRequest.cpp: HttpServletRequest::getSession COOKIE
 SESSION ȼ˵

153) 2013.3.28
153.1) feature: beanstalk ͻӳ beanstalk_pool

152) 2013.3.23
152.1) bugfix: HttpServletRequest::getPathInfo У CGI ģʽӦ
ȸ SCRIPT_NAME ȡãȡٸ PATH_INFO ȡ

151) 2013.3.14
151.1) feature: HttpServletRequest::getSession ˲ sid
151.2) feature: memcache_session һ캯

150) 2013.3.11
150.1) bugfix: rpc.cpp, rpc_request::cond_wait ùУ
acl_pthread_cond_wait  acl_pthread_cond_timedwait ط 0 ֵӦ
 rpc_request::cond_signal Ϊ޷

149) 2013.2.25
149.1) bugfix: ipc ģ飬 aio_handle Ϊ WIN32 Ϣ¼ʱӦ
׽ӿڵļ
149.2) feature: ipc ģ˽ӿ
149.3) samples/gui_rpc: ˲ִ

148) 2013.2.24
148.1)  db_pool ɻ࣬ mysql_pool  sqlite_pool 

147) 2013.2.8
147.1) feature:  url_coder ࣬ url ı
147.2) http/:  HttpCookie  http_header ͷļаγɵ

146) 2013.2.5
146.1) feature: beanstalk.cppʱwatch  use ᱻԶ

145) 2013.1.31
145.1) feature: beanstalk ˼
145.2) wizard: ģеģ˼

145) 2013.1.27
145.1) feature: ļеĲ queue/

144) 2013.1.26
144.1) beanstalk: Ż˽ӿʵַ

143) 2013.1.25
143.1) feature:  beanstalkd ͻͨѶЭ֧
143.2) samples: ˲ beanstalk ͻͨѶ

142) 2013.1.13
142.1) lib_acl_cpp: ͷļ˷࣬ʹ֮ģ黯ҲڽͷļϵͳĿ¼

141) 2012.12.31
141.1) feature: master_threads.hpp  thread_on_timeout() 麯

140) 2012.12.28
140.1) bugfix: string.cpp е left()/right() 

139) 2012.12.17
139.1) bugfix: session.cpp, vbuf_new() еȥ assert() 

138) 2012.12.14
138.1) feature: socket_stream.cpp: get_peer()/get_local() һƲ
û IP:PORT  IP ʽĵַ
138.2) feature: socket_stream.cpp,  get_peer_ip/get_local_ip

137) 2012.12.10
137.1) performance: session ˱ضĻƣ˲ѯ//ɾ


136) 2012.12.7
136.1) feature: session ӳٷʽ޸ݣĳһ SID 
޸ġӲʱֻ flush Ӻ˵ cache 
Ӷ
136.2) string: һ¹캯
136.3) samples: samples/session ˶ӳ޸ session Ĳʾ

135) 2012.12.6
135.1) bugfix: db/db_mysql.cpp,  mysql ʱĵַд

134) 2012.11.27
134.1) feature: ˵ģ singleton.hpp
134.2) samples: ˵Ĳʾ samples/singleton

133) 2012.11.8
133.1) class istream: ޸ gets_peek/read_peek Ĳӿڣ readn_peek 

132) 2012.9.7
132.1) Ϊ˱һЩԼ⣬ȥ˴󲿷е noncopyable ̳йϵ

131) 2012.9.6
131.1) feature:  noncopyable ֻ̳࣬иֵֹ
131.2) 󲿷̳ noncopyable ࣬ڱЧֱֹӸֵ

130) 2012.8.21
130.1) feature: stream  set_rw_timeout/get_rw_timeout
130.2) socket_stream: ȥ unbind_vstreamΪ stream ƺ

129) 2012.8.18
129.1) samples/http_client: VC ļж̬ӷʽӿ

*128*) 2012.8.17 1.1.1.2 release 汾ʽ

127) 2012.8.16
127.1) performance: rpc, ipc_service ڲ ipc Ϣóӷʽ
ӶϢݵЧ

126) 2012.8.15
126.1) http_response.cpp: get_body()  < 0  HTTP 󷽷Ϊ GET/CONNECT
ʱҲӦ true
126.2) samples: http_server  rpc ͨѶģʽ°ʽĹ

125) 2012.8.14
125.1) doxygen һЩͷļעͲ׼ȷĵط
125.2) ׼ʽ汾:)

124) 2012.8.13
124.1) feature: Ϊ md5 㷨ᱻʹãԷװһ md5 㷨࣬ md5.cpp
124.2) samples: md5 ʾ md5 

123) 2012.8.2
123.1) aio_handle: ʱĽӿڽӦʹ֮

122) 2012.7.30
122.1) feature: socket_stream  unbind_stream 

121) 2012.7.26
121.1) bugfix: xml.cpp  xml Уദڴй¶ڴǷͷŵ⣬
Щ valgrind 

120) 2012.7.25
120.1) bugfix: rpc.cpp  cond_signal ʱ cond_wait ʱ
Ϊ߳߳δʼӦڹ캯
гʼͬʱ cond_count_ Ϊ cond_wait ǷӦõȴ

119) 2012.7.20
119.1) feature:  http_utilsרһЩõĹ๦
119.2) feature:  http_downloadרֶ֧ϵʽļ

118) 2012.7.19
118.1) feature: http_request/http_header ˶ Range ֧

117) 2012.7.16
117.1) feature: http_request, ˷set_charset/read_bodyӶ
ѭȡصѹݣнѹͬʱתΪַ
117.2) bugfix: http_client, read_response_body(char* buf, size_t size) У
ڶӦͷԶ˽ѹģʱúȴܽнѹ(Ҳ
zlib_stream::unzip_finish ) zlib ڴй¶
117.3) bugfix: rpc.cpp, rpc_request::cond_wait /˳򲻶
117.4) feature: string.cpp,  split2 ڷ vector ʽ

116.1) 2012.7.12
116.1) string е split ķֵԭ std::list Ϊ std::vector
ûʹ

115) 2012.7.10
115.1) compile: еļ

114) 2012.7.5
114.1) feature: rcp.hpp  cond_wait/cond_signal ߳ڵȴ
״̷̬߳Ϣ

113) 2012.7.4
113.1) feature: socket_stream.h  ACL_SOCKET unbind_sock() ׽
󣬴Ӷͷ׽ֵĹرշֿ

112) 2012.7.2
112.1) bugfix: aio_istream.cpp У aio_istream::gets  aio_istream::read
ĳʱʱΪ timeout Ϊ 0 ʱ֮ǰõĳʱʱ䣬Ӧǰѳʱʱ
Ϊ 0
112.2) samples/rpc_download: һŻͬʱʹ valgrind ⱾһЩ
112.3) samples/gui_rpc: Ӳû WIN32 Ϣʽʵʽع
ϢϵĹ

111) 2012.7.1
111.1) bugfix: http_request.cpp/http_response.cpp е get_body(char*, size_t)
һ󣬷ֵĲ
111.2) samples: rpc_download һ HTTP Ϊ rpc 
ģĿ

110) 2012.6.30
110.1) feature: rpc_request õķ: rpc_signal/rpc_wakeup, 
Ӷڵ rpc_run ʱ߳бߴ̷߳
Ϣ߳յϢ rpc_request::rpc_wakeup м
110.2) rpc_request ķ rpc_callback Ϊ rpc_onoverͬʱ rpc_onover 
Ȩ޷Χ޶Ϊ protectedΪ˱֤ rpc_service пԷʣ rpc_service
 rpc_client Ϊ rpc_request Ԫ

109) 2012.6.28
109.1) feature:  ipc/rpc.cppӶһչ IPC ࣬ʹ߳
֮߳ͨŸΪ

108) 2012.6.26
108.1) feature: http_header/HttpCookie Уڹõķ˱
ãԱûԸöò
108.2) bugfix: HttpServletRequest::readHeaderһûжָΪ NULL


107) 2012.6.21
107.1) bugfix: samples/cgi_upload ѭʱڴԽ
107.2) feature: src/http/http_header  set_request_mode ֹ
ͷӦͷ
107.3) HttpServletResponse: ڴ http_header ʱ set_request_mode
ָӦͷʽ
107.4) samples/: cgi, cgi_upload ˵зʽԷе
107.5) feature: HttpServletResponse ˷ setKeepAlive Լ
getHttpHeader()

106) 2012.6.20
106.1) http ģеһЩӿŻһ£漰ļУHttpServlet,
HttpServletRequest, HttpServleResponse, HttpSession
106.2) session һ£Ϊ࣬ memcache_session
࣬ʵֵΪ memcached ʱ session ܣӶredis
֧
106.3) samples: cgi/cgi_upload/http_servlet/session ΢޸һ£Ӧ޸

105) 2012.6.19
105.1) bugfix: master_conf.c  reset Уͷַ͵ıʱ
ñδֵӦͷ
105.2) feature: master_base ˽ӿ daemon_mode жǷ acl_master
Ƶĺ̨ģʽ
105.3) bugfix: http_header::build_request ڲ URL 뷽ʽ
Ӧ URL  URL 룬Ӧÿһֱ URL 
105.4) bugfix: http_request::get_cookie һαʱӦȵһ
http_request::create_cookies

104) 2012.6.15
104.1) samples:  samples/http_request 

103) 2012.6.13
103.1) feature:  http_pipe ࣬Թܵʽ HTTP Э
103.2) feature: http_request/http_response һЩܺ
103.3) samples:  samples/http_response 

102) 2012.6.12
102.1) feature: session/HttpSession  session ڵķ
102.2) ȥЩԴ WIN32 ƽ̨¶ snprintf Ķ壬Ϊ
ͷļ lib_acl.h Ѿ

101) 2012.6.11
101.1) feature: session/HttpSession ȡԶĽӿ

100) 2012.6.8
100.1) feature: session  del ӿ
100.2) feature: HttpServletRequest  setCookie 
100.2) bugfix: HttpSession ڵһ session ʱû session
ʶ session ȡֵΪûǸ session cookie ȡ
100.2) samples:  http_test, session 
99) 2012.6.7
99.1) feature:  session γһ࣬ʹ HttpSession ̳ session 
99.2) locker: ޸صĽӿڣʹ֮
99.3) HttpServlet: ˵δ֪󷽷ʱĴ麯 doUnkown

98) 2012.6.5
98.1) feature: http_request/http_response Ĺܽһõ
98.2) http_header:  reset ڲ״̬
98.3) featur: http_header->HttpCookie  setCookie 
ڷӦ Set-Cookie 

97) 2012.6.3
97.1) feature:  master_conf ڶȡļͬʱ master_base 
йõĲַ master_conf д
97.2) compile:  AS6/CS6 ϱͨ

96) 2012.6.1
96.1) feature: db_handle  escape_string ڽݿֶеַ
תԷֹ SQL ע빥
96.2) feature: db_handle/db_pool ½˶ʵ֮Ĺϵ

95) 2012.5.31
95.1) feature: xml,  getFirstElementByTag/getFirstElementByTagsӶ
û xml 

94) 2012.5.28
94.1) bugfix: mime/internal/mime_state_parse.cpp: Ϊ֮ǰ body_data_end
Ϊĳ MIME Ľβʼ岻 MULTIPART ʽʱbody_data_end Ҳ
ӦøֵŶԡ

93) 2012.5.26
93.1) linux ƽ̨ĬϽ polarssl ȥ

92) 2012.5.18: 1.1.1.0 BETA 汾
92.1) http ģ鹦ѾȽϷḻˣͳ CGI ʽûʹ
ʱʹ java servlet һˣGOOD WORK!

91) 2012.5.17
91.1) ޸ mime/ ģ飬Ӷʹ http_mime ֧ļϴ

90) 2012.5.16
90.1) http/:  http_mime ֧࣬ļϴ

89) 2012.5.15
89.1) http/:  HttpServlet ˶Բȵ֧
89.2) http_client: ڵõڶʱrw_timeout_ ûиʼֵ(valgrind
ô)

88) 2012.5.13
88.1) http/:  CGI Ĳ֧

88) 2012.5.10
88.1) feature:  HttpServlet, HttpServletRequest, HttpServletResponse,
HttpSession ࣬ CGI 
88.2) ȥ HTTP_COOKIE ṹ,  HttpCookie 
88.3)  samples/http_servlet 

87) 2012.5.2
87.1) http_client:  get_ostream/get_istream ӿڣȥ write
ӿڣûֱӵ http_client::get_ostream().write ﵽдĿ

86) 2012.4.26
86.1) feature: xml.hpp  xml_attr ࣬ͬʱ xml_node 
ԵĹ

85) 2012.4.24
85.1) feature: json  get_json() xml  get_xml 
85.2) feature: json/xml  first_child/next_child ĳ
ӽĺͬʱ get_parent() 

84) 2012.4.22
84.1) feature: json/xml һЩǳõĽӿںӶ׵ش
json/xml 󣬿Բοص

83) 2012.4.21
83.1) feature: json/xml ڽ first_node/next_node ӿ
83.2) feature: master/ ܣ acl_cpp ʹ acl е master ʱ
ûĳвҪ lib_acl.h ͷļֻҪ lib_acl.hpp ͷļ
ɣʹûʹ acl_cpp ʱԲ˽ acl ֪ʶͬʱڱ
ʱΪ㣨ֻҪ lib_acl.a ⼴ɣ

82) 2012.4.20
82.1) feature:  json ķװع
82.2) samples: samples/json

81) 2012.4.17
81.1) feature: xml ˴ xml кŵĹ

80) 2012.4.12
80.1) bugfix: master  master_proc, master_trigger ģҪ
 acl_watchdog_pat() ֪ͨ acl_master ӽ̻; 
master_base.hpp һµĳԱdaemon_mode_ ǵ
ģʽĄ̊́ģʽ

79) 2012.4.11
79.1) compile:  WIN32  VC2010 빤

78) 2012.4.3
78.1) feature: http_header Ϊ HTTP ͷֿΪ HTTP Ӧͷ

77) 2012.4.2
77.1) feature: http_client ḻһЩӿڣʹ༴˵
HTTP ͻֿӦ˵ HTTP ͻ

76) 2012.4.1
76.1) bugfix: string.cpp, CS4/AS4 ϵ g++ ޷ֱ͵Ľӿڣ
format(const char* fmt, ...); format(const char* fmt, va_list ap),
Ե string.cpp  format, format_append Ĵƥ䣬
vformat(const char* fmt, va_list ap)

75) 2012.3.18
75.1) Makefile:  samples/ һͳһ Makefile.in, еʾ
Makefile ļ
75.2) bugfix: string.cpp е parse_xxx() ʹʱջͳһ
ĳֲ߳̾洢
75.3) feature:  db_service_mysql ࣬Ӷ˶ mysql ݿ
֧
75.4) db_service:  db_service Ϊ࣬ db_service_sqlite 
֧ sqlite ݿ

74) 2012.3.16
74.1) bugfix: mem_cache.cpp  set ʱиBUG޸

73) 2012.3.13
73.1) Makefile: ָ mysql ͷļ·Ϊ: include/mysql
73.2) feature: db_mysql.cpp ֱַ֧

72) 2012.3.7
72.1) compile: ڱ붯̬ʱָ·÷£
make shared rpath=xxx; 붯̬
 make rpath=xxx; ͬʱ붯̬⼰̬

71) 2012.2.18
71.1) Ŀ¼µ mime Ŀ¼Ƶ src/mime/internal/ Ŀ¼

70) 2012.2.15
70.1) src/stdlib/mem_cache.cpp: ʵ˲ֳõ memcached Э

69) 2012.2.14
69.1) src/ Ŀ¼¹滮Ŀ¼ṹӶԵøΪ

68) 2012.1.19
68.1) feature: http_client/http_header, ڷѹݲнѹ
68.2) samples: http_client2,  http_client 

67) 2012.1.18
67.1) feature: log.hpp: ˽ӿ stdout_open δ־ʱͨ
־Ϣ׼
67.2) log.hpp:  open Ĳȱʡֵ
67.3) feature: zlib_stream  HTTP нѹ gzip ݵ֧

66) 2012.1.10 : 1.1.0.0 汾!!!!!!!
66.1) feature: master_aio.cpp, ÿװ acl_master е
̷߳ģ
66.2) feature: master_proc.cpp, ÿװ acl_master е
̳ģ
66.3) feature: master_trigger.cpp, ÿװ acl_master е
ģ
66.3) samples: samples/master_aio, samples/master_proc, samples/master_trigger

65) 2012.1.8
65.1) feature: master_threads һЩӿڵ

64) 2012.1.6
64.1) feature: master_threads.cpp, ÿװ acl_master еĶ
̴߳ģ
64.2) samples: samples/master_threads

63) 2011.12.21
63.1) feature: db_handle.cppе db_handle û
ݿѯֱӻýget_first_row()/0, get_rows()/2, get_rows()/0

62) 2011.12.7
62.1) feature:  db_mysql.cpp db_handle Ӷʹ db_handle
֧ mysql ˣ WIN32 ʹʱе⣬ΪĿǰûҵʵ
libmysql.lib/libmysql.dll WIN32 ʹøʱʹ acl_cpp ľ̬
62.2) feature:  db_pool.cppʵݿӳصĹ
62.3) samples: samples/mysql¼ӵ db_mysql 

61) 2011.10.5
61.1) feature:  glib ժȡһδ win_iconv.cpp ֧ win32 
ַתܣ win32  acl_cpp ȿʹ iconv.dll ַ
תͬʱҲͨ acl_cpp ı뿪ض USE_WIN_ICONV ʹ win32 ԭ
ַתܡл glib  win_iconv.cpp ʹ win32 ԭ API
ģ iconv Ĺܡ

60) 2011.10.3
60.1) mime.cpp: save_mail, get_image, get_images ˼Ĭϲ

59) 2011.9.15
59.1) malloc.cpp, malloc.hpp new, delete ȥΪ뱣

58) 2011.9.12
58.1) feature:  new, deleteڵ acl ڴƬ

57) 2011.9.5
57.1) string:  push_back Ϊַӣ mime_code 
е push_back ʱͲ

56) 2011.9.4
56.1)  pipe_stream ࣬ԭ push  pop Ϊһ
push_popӦӦ޸
56.2) bugfix: Ϊ string ԶƼַ˴洢֣Ե
 push_back Ⱥĵû mime_code ˶

55) 2011.9.3
55.1) feature: zlib_stream֧ pipe_stream ʽ
55.2) samples: samples/zlib ֧ pipe_stream Ĳ
55.3) bugfix: charset_conv ԴַΪ utf-8 ʱ utf-8 ǰ׺ж


54) 2011.9.2
54.1) feature: zlib˶ zlib ķװ֧ʽѹѹͬʱ
֧һѹѹ WIN32 ƽ̨Ƕ̬ zlib.dll 
54.2) samples: samples/zlib Ϊµ zlib 

53) 2011.8.26
53.1) feature: mime Ϻڴתʼݽԭ
תʱֻǴԴļгȡݣӰ mime_node, mime_body
53.2) samples: mime  53.1) ԵĲ

52) 2011.8.18
52.1) ipc_service ֻ֧ WIN32 Ϣʽ IPC ͨţڴ
ļ̳ dns_service, http_service, db_service ֧ WIN32 Ϣ
 IPC ͨŷʽ; Ȼѡ IPC ͨŷʽǲ IO Ϣʽ
 WIN32 Ϣʽ
52.2) samples: wn_dbservice ʵ db_service ĹԼ db_service
 WIN32 Ϣ IPC ͨŹ
52.3) feature:  iconv.dll, sqlite3.dll õķʽΪ̬ģʽ

51) 2011.8.14
51.1)  db_handle/db_sqlite ࣬ӶԷݿĲ
51.2)  db_service ࣬ӶԽݿ߳д֤
߳ȻΪ

50) 2011.7.22
50.1) final_tpl.hpp:  java  final ܵĽֹ̳еģ

49) 2011.7.19
49.1) ޸ acl::xml й XML ķͬʱһЩעͣûʹ
49.2) feature: ssl_aio_stream/ssl_stream лΪ SSL  SSL 

48) 2011.7.18
48.1)  WIN32 ƽ̨µİ汾Դ

47) 2011.7.16
47.1) 첽IOĻصеĶؼ̳

46) 2011.7.3-7.6
46.1) feature:  ssl_aio_streamֻ֧ polarssl ļ
䣬Ŀǰֿ֧ͻַ֧IOSSL
46.2) bugfix: ssl_stream( polarssl ) ޸˼ܵ

45) 2011.6.29
45.1) aio_stream/aio_istream/aio_ostream: ӻصʱڲᶯ̬
ڴ洢ЩĻصûɾص
ĺЩ̬ڴᱻɾӶԱ֤֮Щ
ķʲڳַǷʵ

44) 2011.6.28
44.1) feature:
aio_stream :  del_close_callback/del_timeout_callback
				/disable_close_callback/disable_timeout_callback
aio_ostream :  del_write_callback/disable_write_callback
aio_istream :  del_read_callback/disable_read_callback

43) 2011.6.24
43.1) http_header: ȥ๹캯õĲ(domain  port)
43.2) http_request: ๹캯 domain, port 

42) 2011.6.23
42.1)  http_stream.c/http_stream.h Ϊ http_client.c/http_client.h

41) 2011.6.22
41.1) ޸ Doxygen һЩͷļеע

40) 2011.6.21
40.1) Ϊ VC ༭ݣеԴļͷļת DOS ʽس
в \r\nҪ VIM ȽܣܸļĻиʽԶѡȡVC
ͱȽȻVCʶ\nӻʱֻ\r\n

39) 2011.6.16
39.1) ޸һ VC Ĺļ
39.2) http_request, dns_result_callback   destroy ӿڣ
Աн
39.3) bugfix: aio_handle.cpp, aio_timer_callback::del_task Ӧڵ
tasks_.erase(it); ֮ѭٴж it == tasks_.end()Ϊ iterator
ɾ it Ҳûκ

38) 2011.6.15
38.1) Ϊ˱ʹ VC ԴıȽ֪ NEW ڴй©òڲ
е new ĳ NEW acl_stafx.hpp  WIN23 µ NEW 궨
38.2) feature: ӿ aio_delay_freeֻҪ̳и࣬Ϳ
첽бӳͷţͬʱ aio_timer_callback Ϊ aio_delay_free 
ࣻ aio_handle е delay_free_timer Ϊ delay_freeӶʹùܳ
ΪһΪͨõĹ

37) 2011.6.13
37.1) HttpClient  vc2010 µĹ

36) 2011.6.10
36.1) һ VC ʼĹ

35) 2011.6.9
35.1) feature:  http_service ࣬ԷHTTP
35.2) ipc_service: ŻһЩ

34) 2011.6.1
34.1) feature: 첽ʱ֧ඨʱöʱϢ¼

33) 2011.5.23
33.1) feature: win32 ֧ iconv 

32) 2011.5.16
32.1) 붨ʱصľ뼶ߵ΢뼶

31) 2011.5.13
31.1) bugfix: aio_ostream.cpp е aio_timer_writer::timer_callback()
ʹһЧ iterator ж
31.2) compile:  acl_stdafx.hpp  src/ Ŀ¼£Ա˽
31.3) compile: VCʱľȥ(/EDITANDCONTINUE, /OPT:ICF)ֻҪ
ӾͿ

30) 2011.5.12
30.1) feature:  rfc822ڽԷ rfc822 淶ʼ(
ʼַ, ) н
30.2) samples: ˲Գ samples/rfc822

29) 2011.5.6
29.1) feature: aio_stream  get_astream() ӿڿԻ ACL_ASTREAM 

28) 2011.5.2
28.1) feature: xml.hpp,  get_xml_node() 
28.2) feature: stream.hpp,  get_vstream() 
28.3) feature: socket_stream.hpp,  open(ACL_VSTREAM*) 

27) 2011.4.21
27.1) mime/header_opts.cpp: ȥ header_opts_begin, header_opts_cleanup
ڲ acl_pthread_once, atexit ϵͳãԱ֤ڲ
ȫ־̬ʼһΣҵ˳ʱԶͷŸö
27.2) mime.cpp: mime::init(), mime::cleanup() Ѿûôˣᱻȥ

26) 2011.4.15
26.1) xml: ˼ܺȡ XML еֵ
26.2) acl_stdafx.hpp: ȥ *.hpp 

25) 2011.4.14
25.1) handlersocket: ˵ hsproto ࣬רЭ鴦

24) 2011.4.9
24.1) handlersocket, hsclient: IOԹ
24.2) ޸ڸ߰汾 gcc ϵı

23) 2011.4.7-4.8
23.1) handlersocket: Ż˴룬޸һЩ⣬ handlersocket Ҫ
hspool, hsclient, hstable, hsrow ĸ

22) 2011.3.31
22.1) bugfix: log.hpp еĺܻ VC2003 ںؽ
ʱֲԤ֪⣬Խ log.hpp еĺֿC++
طʽ

21) 2011.3.28
21.1) aio_xxx: 첽Ĺܣ޸ӳٶ BUG

20) 2011.3.25
20.1) aio_handle.cpp: 첽Ϊ WIN GUI ϢʱûԶϢ

19) 2011.3.16-3.20
19.1) feature: 첽Ļ ipc_xxx ع࣬ЩԱ֤
ڲ̻֮ͬ߳ͬ첽ͨ
19.2) feature:  ipc_xxx  ipc_manager ࣬Ա֤߳Ϊ
̣̣߳߳ͨ ipc ʽ߳̽ͨ
19.3) feature:  ipc_manager Ļ DNS 첽ѯĹ࣬
߳Ƿģѯ߳ģѯ߳ͨ ipc_xxx ʽ
֪ͨ߳

18) 2011.3.14
18.1) feature: aio_ostream/aio_istream ӳд/Ĺܣ

17) 2011.3.13
17.1) aio_handle:  WIN32 Ϣ֧
17.2) aio_handle: ˶ʱ

16) 2011.3.10
16.1) aio_xxx: ϳ죬ʹ:)
16.2) string.cpp: ˶ļֹ

15) 2011.3.8
15.1) aio: 

14) 2011.3.1
14.1) ˷IOĺ

13) 2011.2.26-27
13.1) feature: 첽֧֣¼ļ
aio_stream.cpp, aio_socket_stream.cpp, aio_ostream.cpp,
aio_istream.cpp, aio_listen_stream.cpp

12) 2011.2.25
12.1) ޸ͷļʹ #include İ

11) 2011.2.23
11.1) feature: rfc2047, ˱뺯
11.2) feature: mime_base64, mime_xxcode, mime_uucode, mime_quoted_printable
˾̬뼰̬ĺ
11.3) bugfix: mem_cache,  rfc2047 Эмֵַ

10) 2011.2.22
10.1) mem_cache:  key ֵ˼򵥵ı봦 memcached Э
ָгͻ

9) 2011.2.19
9.1) bugfix: header_opts.cppڲʹһ̲߳ȫľ̬

8) 2011.2.17
8.1) feature: mem_cache, ˸´ڼʱصĽӿ

7) 2011.2.14
7.1) feature: mem_cache װ libmemcached һЩ
7.2) samples: mem_cache/

6) 2011.2.12
6.1) feature: hsclient һЩʹõĺӿ

5) 2011.2.10
5.1) feature: ˶ handlersocket Э֧, hsclient.cpp

4) 2011.1.28
4.1) feature: mime_head.cpp,  header_values()/2, ڻöԾͬ
Ķֶεֵ

3) 2011.1.26
3.1) bugfix: mime.cpp, body_node(), вʼʱHTMLʽ
ʱ

2) 2011.1.14
2.1) bugfix: mime_state_parse.cpp, ʼΪ multipart ʱ
body_end ԣӦǵǰƫֵ curr_off - 1  curr_offΪ
curr_off ָļеһҪλá

1) 2011.1.11
1.1) acl_wrap1.0 release

