Commit Graph

600 Commits

Author SHA1 Message Date
zsx
7fba2fbcce format code style 2018-10-08 15:36:12 +08:00
zhengshuxin
b46fea21d4 add end_with in acl::string 2018-10-07 21:35:46 +08:00
zsx
44e0948aec bugfix: ssize_t redefined to long to avoid error on vc in x64 2018-10-04 22:53:44 +08:00
zsx
3217e70bb5 use acl_socket_alive as the new method for checking the socket's aliving status. 2018-09-29 11:30:42 +08:00
郑树新
c0c1b22e69 add acl_socket_alive for checking if the given socket is aliving. 2018-09-29 11:03:35 +08:00
zsx
97fddf37a2 bugfix: acl_inet_connect_ex of acl_inet_connect.c should support domain:port format 2018-09-28 17:52:18 +08:00
zhengshuxin
8ed2885098 Merge branch 'master' of github:zhengshuxin/acl 2018-09-26 11:24:31 +08:00
zsx
b2df701b1f fixed one bug in acl_cache2_update of acl_cache2.c 2018-09-22 13:46:11 +08:00
zsx
a4bb891b53 In acl_cache2_enter of acl_cache2.c the elder elements will be removed according LRU. 2018-09-22 10:48:50 +08:00
zsxxsz
cb218497b6 add new flag to control if disable SO_REUSEADDR when binding the local
listening addr.
2018-09-22 09:40:33 +08:00
zsx
8f5aa2129a don't use ":" as the seperator in ipv6_clone of acl_sane_inet.c 2018-09-22 08:53:11 +08:00
zsx
608cc2a229 acl_inet_ntop should not add "%ifname" for local IPV6 2018-09-21 22:04:36 +08:00
zsx
7847375f25 The acl_inet_ntop should use ':' as the seperate for IPV4, or the acl_udp_server.c will mismatch the changed IPV4 addrs;
The sstreams_ in master_udp.cpp should be protected by mutex avoiding multipule-threads change it in the same time.
2018-09-21 21:56:21 +08:00
郑树新
e6cead0a67 fixed one problem in getaddrinfo of lib_fiber; 2018-09-19 18:36:05 +08:00
zsx
1a3faee6ab fixed one compiling problem on vc 2018-09-19 17:52:09 +08:00
zhengshuxin
955af9d1d4 addrs matching in acl_master 2018-09-19 16:48:40 +08:00
zsx
f53fcb5ab3 bugfix: acl_ifconf_search in acl_ifconf.c can't handle some addr pattern 2018-09-19 15:52:59 +08:00
zsx
bf184fbfea add some useful methods in acl_cache2.cpp 2018-09-18 15:04:23 +08:00
zsx
5177e4f43e optimize acl_valid_unix API in acl_valid_hostname.c 2018-09-17 18:59:25 +08:00
zsx
de4805a6c8 fixed one bug in acl_ifconf.c for checking the UNIX path for matching. 2018-09-17 18:44:27 +08:00
zsx
4e393625c0 delete unused files. 2018-09-17 14:26:46 +08:00
zsx
f15c17ae29 build ok for Mac 2018-09-17 14:20:45 +08:00
zhengshuxin
b4bb083bdd build ok by gcc7.1.0 2018-09-17 13:33:34 +08:00
zsx
4969d4bed9 using if_nametoindex in acl_inet_pton 2018-09-17 13:11:47 +08:00
zsx
e08c37d23d add one test 2018-09-16 23:14:36 +08:00
zsx
75a4cbf1e2 test IPV6 supporting 2018-09-16 22:19:40 +08:00
zsx
f27af8b424 acl support IPV6 is OK now! 2018-09-16 21:49:58 +08:00
zsx
afa223c6b3 fixed Linux's bug in acl_inet_pton of IPV6 addrs that using getaddrinfo other than inet_pton 2018-09-14 23:33:23 +08:00
zhengshuxin
1103ae73bc build ok for Centos5.x 2018-09-14 10:24:47 +08:00
zsx
4a3ec4a288 supporting IPV6 2018-09-13 18:38:03 +08:00
zsx
828610b2d7 acl_ifconf.c is supporting IPV6 2018-09-13 15:14:58 +08:00
zsx
050da06552 supporting IPV6 2018-09-12 19:03:32 +08:00
zsx
9986105018 supporting IPV6 2018-09-12 17:43:46 +08:00
zsx
9498838177 supporting IPV6 2018-09-11 19:07:43 +08:00
zsx
cbf202d1b1 supporting IPV6 2018-09-10 18:30:54 +08:00
郑树新
6772f92d9b !1 修复在 FreeBSD 8.x 上编译的一个错误
Merge pull request !1 from lsgx/fix-freebsd8-error
2018-08-24 17:40:43 +08:00
zsx
2b8a99dd3f merge acl_mem_slice.c 2018-08-24 17:38:37 +08:00
zsxxsz
c9e5e010a7 fixed compiling warning on VC 2018-08-19 23:11:36 +08:00
zsx
03480089bc fixed some comiling errors. 2018-08-19 15:55:54 +08:00
zsx
6f18301ac8 add token_tree class for 256-fork matching tree;
format the files with DOS format.
2018-08-19 15:31:26 +08:00
zsx
fd30abd5f3 modify Makefile 2018-08-08 14:08:43 +08:00
zhengshuxin
155fc3ba7f CMakeLists in lib_acl adding gcc version checking. 2018-08-08 14:05:29 +08:00
zsx
e8fad9062a fixed some compiling warning 2018-08-08 11:45:37 +08:00
zhengshuxin
99aec2e3ea optimize the space using for ACL_JSON, ACL_VSTRING, ACL_VBUF 2018-08-06 23:16:00 +08:00
zsx
4dc4e2cb18 bugfix: json parse should not ignore string value begin with space 2018-08-03 11:04:36 +08:00
zsx
9d1c2e850b bugfix: json parser gson serialization can't handle empty array object. 2018-08-02 23:00:22 +08:00
Charlie Root
82708780d8 fixed one compiling error for freebsd8 by jjx 2018-07-01 22:09:12 +08:00
zsx
ac7a0d4c5b fixed bugs in acl_write_wait.c: when POLLHUP and POLLERR returned, don't return -1 2018-05-17 16:45:15 +08:00
zsx
175623b306 acl 3.4.1 released! 2018-05-07 14:59:52 +08:00
zsx
1f6afe2a74 acl 3.4.0 released! 2018-04-29 20:37:22 +08:00
zsxxsz
b7bd271ca4 build ok by vc2010 2018-04-25 23:25:59 +08:00
zhengshuxin
7647c210b7 acl build without ACL_PREPARE_COMPILE defined 2018-04-17 16:42:26 +08:00
zsx
83519e38c9 bugfix: acl_xml_parse.c 宏 IS_CDATA 判断有误 2018-04-08 14:09:11 +08:00
郑树新
534eefd4bc cmake building DLLs are ok for Windows 2018-03-30 14:35:34 +08:00
zsx
efbba7ff99 merge from libfiber 2018-03-05 14:11:12 +08:00
zsx
e22b24942f acl_unix_listen.c: won't fatal when binding UNIX addr error 2018-02-24 09:19:01 +08:00
zhengshuxin
7670fca314 compiling for FreeBSD ok 2017-09-22 19:22:26 +08:00
郑树新
87b2fd1508 redis_client.cpp: add authing_ for authing in dead loop. 2018-02-05 12:04:35 +08:00
zsxxsz
6d9add27bd bugfix in lib_acl: POLLHUP | POLLERR should not be set as input parameters. 2018-02-03 21:27:21 +08:00
zhengshuxin
69bd929c34 master tools: fixed some problems on Cendos5.x 2018-01-31 12:31:12 +08:00
郑树新
fa7a71f2fb fiber: add iocp event 2018-01-30 19:57:51 +08:00
zsx
1dbc76dbec fixed one bug in ipc_monitor.cpp. 2018-01-30 10:02:27 +08:00
zsx
21119f88a0 master_guard: add all info for version 2018-01-23 19:48:45 +08:00
zsx
ea244a6673 master & master tools can display the version of all services 2018-01-23 18:57:29 +08:00
zsxxsz
66c05c16cb fiber for windows: client2 and server2 run very well:) 2018-01-22 22:01:12 +08:00
郑树新
49a92e9348 fiber io can also stop automaticly when no IO and no timers been set. 2018-01-22 18:38:50 +08:00
zsxxsz
521cdffe83 build ok for vc2003 2018-01-21 18:13:48 +08:00
zsxxsz
400904dccf add error handling in acl_vstream.c & poll.c when operation timeout;
in fiber_win.c when calling CreateFiberEx, using size as the parameter
dwStackReserveSize;
2018-01-20 21:57:39 +08:00
郑树新
4afcac70a0 improve fiber IO performance when using timedwait read/write. 2018-01-16 18:24:13 +08:00
郑树新
0244606e67 remove FIBER_API in channel.hpp for compiling with no error on Windows & Unix 2018-01-16 14:28:42 +08:00
zsx
e9606ac8bc acl_ifconf_search can match TCP/UDP/UNIX domain socket addr automaticly 2018-01-16 13:55:55 +08:00
zsx
e7adfbb169 bugfix: fixed bugs in acl_ifconf.c's acl_ifconf_search and acl_udp_server.c 2018-01-16 11:43:35 +08:00
zsx
a004efcd70 acl_udp_server: fixed one bug for monitoring the network changing 2018-01-15 19:26:19 +08:00
zsx
bc845a5dcd fiber for windows OS can use IO read/write with timed waiting by using select/poll;
ACL_VSTREAM's NETWORK IO read/write interface can be hooked by user's IO API.
2018-01-14 23:08:04 +08:00
zsxxsz
768d30a56c fiber for windows OS can use IO read/write with timed waiting by using select/poll;
ACL_VSTREAM's NETWORK IO read/write interface can be hooked by user's IO API.
2018-01-14 22:54:44 +08:00
zsxxsz
ebf0361142 fiber event optimize 2018-01-13 09:37:57 +08:00
zsxxsz
6b20f28844 add function giving the events count in one event loop 2018-01-09 23:37:23 +08:00
root
01be5a98c6 acl_udp_server: can exit gracefully 2018-01-03 02:54:53 +08:00
zsx
5ab9024ae1 udp server: add gracefully exiting process 2018-01-02 15:21:37 +08:00
zhengshuxin
b698693b3c build ok for FreeBSD 2016-01-14 14:45:37 +08:00
zsxxsz
c7fc99f2d8 fiber for windows can run:) 2018-01-01 00:10:00 +08:00
zsx
d33548f291 one compiling warning on macos 2017-12-25 15:04:45 +08:00
zsx
96cf502095 fixed samples compiling error 2017-12-25 13:01:46 +08:00
zsx
4f0e2cc8dd feature: master can bind udp with unix domain path 2017-12-12 19:18:33 +08:00
zsx
c10ef0b4d5 bugfix: fixed bug in acl_ifconf_search function. 2017-12-12 16:33:46 +08:00
zsx
f0c52f92f1 acl_mbox supports eventfd as notify handle 2017-12-12 14:02:25 +08:00
zsx
fa113a12e7 acl stream and servers support UNIX domain socket in UDP packet mode 2017-12-10 22:23:37 +08:00
zsx
aa3e355225 compile: fixed one compile error 2017-12-08 10:03:00 +08:00
zsx
68dfbb4de8 workaroud: function acl_res_lookup of acl_res.c will not call fatal when domain invalid 2017-12-08 09:52:48 +08:00
ruki
987385ea6e add xmake.lua 2017-11-30 10:04:15 +08:00
zsx
a8d8f40b52 master: can start & restart one service with different extname that maybe be used for different service version 2017-11-21 16:46:39 +08:00
郑树新
ad96211014 vc projects: remove private_global.h and add acl_define_macosx.h 2017-11-21 10:58:44 +08:00
郑树新
23f1915473 compiling: support vc2017 2017-11-20 12:15:19 +08:00
zhengshuxin
b2b6521a75 compiling error on CentOS6.x 2017-11-16 11:37:57 +08:00
zhengshuxin
f931680917 bugfix: don't notify master in alone running mode. 2017-11-13 21:21:26 +08:00
zhengshuxin
314e08b9f0 compiling: fixed one compiling error on FreeBSD 2017-11-13 09:26:48 +08:00
zhengshuxin
ef7e4495ac master: can start services specified in configure file. 2017-11-12 00:20:15 +08:00
zhengshuxin
41ce67f000 bugfix: acl_udp_server rebinding addrs 2017-11-10 22:36:03 +08:00
zhengshuxin
65a5b15315 acl_udp_server: add/del ip auto 2017-11-10 14:43:21 +08:00
zhengshuxin
8b4d78198e bugfix: fxied deadlock in acl_mylog.c 2017-11-10 12:57:18 +08:00
zhengshuxin
acb6358d13 bugfix: fixed dead lock in acl_mylog.c 2017-11-10 12:00:43 +08:00
zhengshuxin
037d5d8994 format code style 2017-11-10 10:08:34 +08:00
zhengshuxin
519a42f9c2 compiling: fxied compiling error on FreeBSD 2017-11-09 19:16:51 +08:00
zhengshuxin
4d43fc5ae7 acl_udp_server: can find ip addrs changing automaticlly 2017-11-09 18:58:42 +08:00
zhengshuxin
c9267f4d93 master template: remove unused args 2017-11-07 17:08:54 +08:00
zhengshuxin
46cc12739f compiling: fixed compiling error on vc 2017-10-27 16:33:56 +08:00
zhengshuxin
db886f9d62 master: all server template support waiting the service starting status 2017-10-27 11:38:10 +08:00
zhengshuxin
52e401c142 event: events_epoll_thr.cpp, fixed one bug in event_enable_write function 2017-10-27 11:37:28 +08:00
zhengshuxin
bc4f60a2d3 acl_master: when starting services remotely, users can wait the result of the services' starting status or not. 2017-10-27 00:00:41 +08:00
centos6.9-32
70f510b33f remove debug info 2017-10-16 22:46:30 -07:00
zhengshuxin
7749e15bcc fiber: test 2017-10-12 18:59:50 +08:00
zhengshuxin
b998731976 building: modify Makefiles to build more quickly on multi-cores CPU 2017-10-10 10:19:59 +08:00
zsxxsz
607905bfec compile: There's one compiling error in acl_atomic_int64_cas. 2017-10-01 13:59:02 +08:00
zhengshuxin
3d71e10668 fiber: fiber_lock can trigger immediately with IO event 2017-10-01 13:54:57 +08:00
郑树新
5bda421b74 mbox: add debug info 2017-09-28 16:57:15 +08:00
郑树新
868bef0fb9 compile: one compiling warning by vc 2017-09-28 14:27:44 +08:00
zhengshuxin
83724d3e8a valgrind: free global objects when process exiting to avoid valgrind reporting error. 2017-09-28 12:29:20 +08:00
zsx
ea61c76939 build ok on MacOSX by xcode 2017-09-19 10:49:13 +08:00
郑树新
0bf16cd1f8 build ok on windows by vc 2017-09-21 17:34:25 +08:00
zhengshuxin
70f4b50ee1 fixed bugs in event timer module 2017-09-21 16:00:44 +08:00
zhengshuxin
fd66d9bbc4 fixed one bug in acl_udp_server.c when sending status to master 2017-09-19 17:16:36 +08:00
郑树新
de4ec340a4 compiling ok on Android Studio 2017-09-13 11:30:27 +08:00
zhengshuxin
d5119d3ca1 Merge branch 'master' of https://github.com/zhengshuxin/acl into github-zsx-master 2017-09-13 11:26:28 +08:00
zhengshuxin
52b692221a merge acl 2017-09-13 11:25:39 +08:00
zhengshuxin
8ada09778c fixed bugs in acl_dlink.c for adding continuous integers;
acl_dlink.c supports for adding negative integers.
2017-09-13 11:17:00 +08:00
zhengshuxin
70957fad04 invalid date submit from FreeBSD 2017-09-11 13:57:59 +08:00
zsx
cb1c642461 build ok for Macosx 2017-07-17 17:53:56 +08:00
zhengshuxin
b9283ffbf5 build ok on FreeBSD 2017-07-11 17:44:14 +08:00
zhengshuxin
d5fe28dd8f compile ok for centos5.x 2017-09-11 11:38:06 +08:00
郑树新
4ac182fdce fixed compiling error on Windows by vc 2017-09-11 08:49:07 +08:00
zhengshuxin
a67e6a6338 sighup's result status from children can be got by acl_master 2017-09-09 00:30:39 +08:00
zhengshuxin
7d94dd5a04 let mbox::pop be blocked when timeout < 0 2017-09-08 19:18:49 +08:00
zhengshuxin
025a9b29f2 make master's reload safety 2017-09-06 13:19:49 +08:00
zhengshuxin
296d5a995d master can wait until the children exited 2017-09-05 23:47:48 +08:00
zhengshuxin
3d02c72328 all master templates support handling SIGTERM signal. 2017-09-05 10:58:55 +08:00
zhengshuxin
7dadf786df add test code in mbox.hpp 2017-09-02 17:59:32 +08:00
zhengshuxin
2af766fb6e make acl::mbox generic with c++ template method. 2017-09-01 23:14:20 +08:00
zhengshuxin
5291cd0c7a test only 2017-09-01 18:59:42 +08:00
zhengshuxin
3191bf51db there's one bug in acl_aqueue_pop_timedwait when computing timeout for waiting 2017-08-29 17:46:41 +08:00
zhengshuxin
85b55d4e4e acl_mbox_read's timeout use millisecond precision 2017-08-29 11:32:07 +08:00
zhengshuxin
2016e3b46a fiber_server.c can support reuseport when running alonely. 2017-08-21 17:39:48 +08:00
zhengshuxin
be7629ced2 add acl_read_xxx_wait with milliseconds;
icmp ping supports timeout and delay with milliseconds;
2017-08-15 12:17:57 +08:00
zsxxsz
b1fe62649f change charset of comments from utf-8 to gbk. 2017-08-13 22:53:52 +08:00
zhengshuxin
db7ca4ff38 add comments in acl_atomic.h 2017-08-13 22:41:35 +08:00
zhengshuxin
8bb4c91b58 add return value to show the result of acl_chroot_uid than just broken when error happened. 2017-08-11 21:41:26 +08:00
zhengshuxin
5ebdc5e223 SO_REUSEPORT not used in Centos5.x 2017-08-11 09:20:44 +08:00
zhengshuxin
fe44b078fc TCP_FASTOPEN can be used by setting the master_fastopen item in servers' configure files 2017-08-10 11:46:02 +08:00
zhengshuxin
1915852bd9 SO_REUSEPORT can be used in master server framework by setting configure item 2017-08-10 11:35:52 +08:00
zhengshuxin
3203318ea9 when user's input is NULL in acl_vstring_sprintf, etc, null will be handled safely. 2017-08-07 11:09:00 +08:00
zsxxsz
e17f78dcec fixed one bug in acl_threads_server.c when serv_timeout was called the sequence of args was invalid. 2017-07-31 17:19:35 +08:00
zhengshuxin
0b9f6bd0a8 fixed bugs in server templates for windows. 2017-07-31 16:08:01 +08:00
zhengshuxin
443e94d3d9 fixed one bug in trigger server template that __conf_file should be used than conf_file_ptr. 2017-07-24 22:04:08 +08:00
zhengshuxin
93b3250ca5 add methods that get configure path 2017-07-22 21:32:21 +08:00
郑树新
e397581179 fixed compiling warning for Android Studio 2017-07-21 16:05:45 +08:00
郑树新
5b406b6115 building for Android studio 2.3.3 2017-07-20 10:59:28 +08:00
zhengshuxin
6a6616a590 remove master/framework dir from CMakeLists.txt 2017-07-19 17:46:50 +08:00
zhengshuxin
66a35c5837 add configure item in master's protocol;
fixed warning on MACOSX
2017-07-17 15:30:52 +08:00
zsx
b1dfd6bdd3 fixed some compiling error&warning on xcode. 2017-07-17 15:06:02 +08:00
zhengshuxin
8a80dce9bb On MacOS, let POLLIN checking first in acl_read_wait.c. 2017-07-17 11:03:42 +08:00
zsx
975767b856 disable reseting optind, optarg, opterr on MacOS 2017-07-17 10:29:20 +08:00
zhengshuxin
ddee9c8d69 invalid charset in acl_vstream.h 2017-07-11 18:03:45 +08:00
zhengshuxin
eab3f85c17 fixed one net bug in FreeBSD 2017-07-11 15:58:21 +08:00
zhengshuxin
75095f5227 fixed some building error in FreeBSD with cmake 2017-07-11 15:18:41 +08:00
zhengshuxin
3709d8c88b can be build on gcc4.1 or gcc7.1 2017-07-10 19:20:50 +08:00
zhengshuxin
9ac697ecbe build acl project successfully by gcc7.1.0 2017-07-10 15:26:12 +08:00
zhengshuxin
88eb449328 udp server template can be created with joinable mode. 2017-07-10 12:22:09 +08:00
郑树新
97a16bfc39 compiling warning by gcc7.1 2017-07-10 10:47:56 +08:00
郑树新
2b38278ca9 change STACK_SIZE from 64K to 128K;
let acl_var_fiber_stack_size can control fiber_sleep's stack size in lib_fiber/c/src/master/fiber_server.c
2017-07-07 10:24:38 +08:00
郑树新
677b7ad053 delete samples. 2017-07-06 10:14:13 +08:00
zhengshuxin
1acef3bc6e udp server will call bind callback. 2017-07-05 15:16:30 +08:00
zhengshuxin
99660d0734 add proc_on_bind in master_udp class 2017-07-05 14:31:18 +08:00
zhengshuxin
98d11361bb test sighup callback ok for all server template. 2017-07-05 10:27:33 +08:00
zhengshuxin
643609a33a fixed some compile error 2017-07-05 00:01:22 +08:00
zsxxsz
a8ffa2a556 compile on vc 2017-07-04 23:55:29 +08:00
zhengshuxin
88d6f6c44f all server templates support SIGHUP callback. 2017-07-04 23:33:28 +08:00
郑树新
25a6e4cf15 add dist/lib/win32 path for win32. 2017-07-03 18:17:03 +08:00
zhengshuxin
4b3d13b670 acl_atomic_int64_add_fetch can support Windows 2017-07-03 17:49:51 +08:00
zhengshuxin
128df49e08 fixed bugs in acl_atomic.c 2017-07-03 17:42:55 +08:00
zhengshuxin
d6385832d6 add ACL_ATOMIC_CLOCK object for statics of running status 2017-07-03 14:40:06 +08:00
zhengshuxin
23080968f0 fiber_server.c supports running in multi-threads mode. 2017-07-02 23:10:17 +08:00
zhengshuxin
fda8a3077e don't compile samples written with multi-server template. 2017-07-02 20:24:14 +08:00
Zheng Shuxin
f8cb1566ca init getopt's variables for multi-call. 2017-06-27 17:07:57 +08:00
Zheng shuxin
d9fbd9c650 changed the web protocol for management 2017-06-26 12:34:23 +08:00
zhengshuxin
47e38ca99f netdb.h should be included for getaddrinfo. 2017-06-24 22:37:35 +08:00
Zheng shuxin
259a06a799 modify Makefile 2017-06-22 18:57:00 +08:00
Zheng shuxin
e1b8776136 acl_udp_server.c: how to solve exiting? 2017-06-22 14:37:40 +08:00
Zheng Shuxin
b2c2cd4a1c acl_udp_server.c is OK! 2017-06-22 12:40:57 +08:00
郑树新
ce8d5cda9c acl_udp_server.c can be compiled on vc 2017-06-22 12:26:14 +08:00
Zheng Shuxin
3c86372490 modify acl_udp_server.c 2017-06-22 12:21:54 +08:00
郑树新
109b498110 add atomic add 2017-06-22 11:03:07 +08:00
zhengshuxin
3442778120 add acl_sane_bind.c into xcode project. 2017-06-21 22:41:50 +08:00
ubuntu14
7ed6180b33 udp server support multi threads mode 2017-06-21 18:31:37 +08:00
ubuntu14
dc2a42c0e6 valgrind can also check master_udp's samples in alone running mode. 2017-06-21 12:43:53 +08:00
郑树新
64afad5c42 master_udp.cpp using acl_udp_server.c in alone mode. 2017-06-21 12:27:41 +08:00
ubuntu14
3a863cc238 add acl_host_addrinfo for resovle domain 2017-06-21 11:10:49 +08:00
ubuntu14
85f1db0b38 acl_udp_sever.c can bind addrs matching some pattern 2017-06-20 14:07:45 +08:00
ubuntu14
dfbb553f01 adding http interface for acl_master 2017-06-15 11:28:01 +08:00
郑树新
f676d1d861 move acl_master from lib_acl for xcode project 2017-06-14 11:13:59 +08:00
郑树新
050e37c071 modify vc project 2017-06-13 18:06:17 +08:00
zhengshuxin
311ceb0cf8 remove acl_master's module from lib_acl's vc projects. 2017-06-13 16:20:45 +08:00