Releases: swoole/swoole-src
Releases Β· swoole/swoole-src
v4.5.0
New APIs
- DTLS supports, we can build WebRTC applications now (#3188) (@matyhtf)
- Built-in
FastCGIclient, we can proxy HTTP request to FPM with one line of code now (swoole/library#17) (@twose) Co::wait,Co::waitPid,Co::waitSignal(#3158) (@twose)Co::waitEvent(#3197) (@twose)Co::set(['exit_condition' => $callable])to exit condition of reactor (#2918) (#3012) (@twose)Co::getElapsedto get the coroutine elapsed time (#3162) (@doubaokun)Socket::checkLiveness,Socket::peek(#3057) (@twose)Socket->setProtocol(['open_fastcgi_protocol' => $bool])(#3103) (@twose)Server::get(Master|Manager|Worker)Pid,Server::getWorkerId(#2793) (#3019) (@matyhtf)Server::getWorkerStatus(SWOOLE_WORKER_BUSY, SWOOLE_WORKER_IDLE) (#3225) (@matyhtf)Server->on('beforeReload', $callable)andServer->on('afterReload', $callable)(Server reload event on manager process) (#3130) (@huanghantao)Http\Serversupporthttp_index_filesandhttp_autoindexwith static handler (#3171) (@huanghantao)Http2\Client->read(float $timeout = -1), support Coroutine\HTTP2\Client read more than once (#3011) (#3117) (@twose)Http\Request->getContent(alias of rawContent) (#3128) (@huanghantao)swoole_mime_type_(add|set|delete|get|exists)(mime APIs) (#3134) (@twose)
Enhancement
- Optimize memory-copy between master and worker (4x faster) (#3075) (#3087) (@huanghantao)
- Optimize websocket dispatch (1x faster) (#3076) (@matyhtf)
- Optimize memory-copy in websocket_construct_frame (1x faster) (#3097) (@matyhtf)
- Optimize SSL validation (#3226) (@matyhtf)
- Separate SSL accept and SSL handshake (#3214) (@twose)
- Support MIPS (#3196) (@ekongyun)
- Resolve the domain name when use udp coroutine client (#3236) (#3239) (@huanghantao)
- Do not close stdout and stderr (show error logs after shutdown) (#3249) (@twose)
- Support some common options for Coroutine\Http\Server (#3257) (@twose)
- Support set cookies when websocket handshake (#3270) (#3272) (@twose)
- Support CURLOPT_FAILONERROR (swoole/library#20) (@sy-records)
- Support CURLOPT_FAILONERROR (swoole/library#20) (@sy-records)
- Support CURLOPT_SSLCERTTYPE, CURLOPT_SSLCERT, CURLOPT_SSLKEYTYPE, CURLOPT_SSLKEY (swoole/library#22) (@sy-records)
- Support CURLOPT_HTTPGET (swoole/library@d730bd08) (@shiguangqi)
Remove
Kernel
- New C++ API:
coroutine::asyncwith lambda (#3127) (@matyhtf) - Refactor event API and reactor fd to swSocket (#3030) (@matyhtf)
- Convert all source files to C++ (#3030) (71f987f) (@matyhtf)
- Code optimizations (#3063) (#3067) (#3115) (#3135) (#3138) (#3139) (#3151) (#3168) (@huanghantao)
- Code optimization for header files (#3051) (@matyhtf)
- Refactor
enable_reuse_portoption (#3192) (@matyhtf) - Reactor Socket API (#3193) (@matyhtf)
- Reduce one system call (3b5aa85) (@matyhtf)
- Remove swServerGS::now (#3152) (@huanghantao)
- Improve protocol setter (#3108) (@twose)
- Use the Better way to init C object on stack (#3069) (@twose)
- Use type
ucharfor bit field (#3071) (@twose) - Support parallel test (#3215) (@twose)
Fixed
v4.4.18
Enhancement
- Resolve the domain name when use udp coroutine client (#3236) (#3239) (@huanghantao)
- Do not close stdout and stderr (show error logs after shutdown) (#3249) (@twose)
- Support some common options for Coroutine\Http\Server (#3257) (@twose)
- Support set cookies when websocket handshake (#3270) (#3272) (@twose)
- Support CURLOPT_FAILONERROR (swoole/library#20) (@sy-records)
- Support CURLOPT_SSLCERTTYPE, CURLOPT_SSLCERT, CURLOPT_SSLKEYTYPE, CURLOPT_SSLKEY (swoole/library#22) (@sy-records)
- Support CURLOPT_HTTPGET (swoole/library@d730bd08) (@shiguangqi)
- Compatible with different versions of Redis extension as much as possible (swoole/library#24) (@twose)
- Disable Cloning of Database Proxy Objects (swoole/library#23) (@deminy)
Fixed
- Fixed SSL handshake failure (dc5ac29) (@twose)
- Fixed memory error when generate error message (#3229) (@twose)
- Fixed empty proxy authorization info (#3243) (@twose)
- Fixed channel unreal memory leak (#3260) (@twose)
- Fixed memory leak of Co\Http\Server (#3271) (@twose)
- Fixed
ConnectionPool->fill(swoole/library#18) (@NHZEX) - Fixed use new client for the redirection requests (swoole/library#21) (@doubaokun)
- Fixed null socket error in ioException (swoole/library@4d15a4c3) (@twose)
- Fixed ConnectionPool@put when error happens (swoole/library#25) (@sinute)
- Fixed mysqli write_property error (swoole/library#26) (@twose)
v4.5.0RC1
New APIs
DTLSsupports, we can build WebRTC applications now (#3188) (@matyhtf)- Built-in
FastCGIclient, we can proxy HTTP request to FPM with one line of code now (swoole/library#17) (@twose) Co::wait,Co::waitPid,Co::waitSignal(#3158) (@twose)Co::waitEvent(#3197) (@twose)Co::set(['exit_condition' => $callable])to set exit condition of reactor (#2918) (#3012) (@twose)Co::getElapsedto get the coroutine elapsed time (#3162) (@doubaokun)Socket::checkLiveness,Socket::peek(#3057) (@twose)Socket->setProtocol(['open_fastcgi_protocol' => $bool])(#3103) (@twose)Server::getInstance,Server::get(Master|Manager|Worker)Pid,Server::getWorkerId(#2793) (#3019) (@matyhtf)Server::getWorkerStatus(SWOOLE_WORKER_BUSY, SWOOLE_WORKER_IDLE) (#3225) (@matyhtf)Server->on('beforeReload', $callable)andServer->on('afterReload', $callable)(Server reload event on manager process) (#3130) (@huanghantao)Http\Serversupporthttp_index_filesandhttp_autoindexwith static handler (#3171) (@huanghantao)Http2\Client->read(float $timeout = -1), support Coroutine\HTTP2\Client read more than once (#3011) (#3117) (@twose)Http\Request->getContent(alias of rawContent) (#3128) (@huanghantao)swoole_mime_type_(add|set|delete|get|exists)(mime APIs) (#3134) (@twose)
Enhancement
- Optimize memory-copy between master and worker (4x faster) (#3075) (#3087) (@huanghantao)
- Optimize websocket dispatch (1x faster) (#3076) (@matyhtf)
- Optimize memory-copy in websocket_construct_frame (1x faster) (#3097) (@matyhtf)
- Optimize SSL validation (#3226) (@matyhtf)
- Separate SSL accept and SSL handshake (#3214) (@twose)
- Support MIPS (#3196) (@ekongyun)
- Support CURLOPT_FAILONERROR (swoole/library#20) (@sy-records)
Remove
Kernel
- New C++ API:
coroutine::asyncwith lambda (#3127) (@matyhtf) - Refactor event API and reactor fd to swSocket (#3030) (@matyhtf)
- Convert all source files to C++ (#3030) (71f987f) (@matyhtf)
- Code optimizations (#3063) (#3067) (#3115) (#3135) (#3138) (#3139) (#3151) (#3168) (@huanghantao)
- Code optimization for header files (#3051) (@matyhtf)
- Refactor
enable_reuse_portoption (#3192) (@matyhtf) - Reactor Socket API (#3193) (@matyhtf)
- Reduce one system call (3b5aa85) (@matyhtf)
- Remove swServerGS::now (#3152) (@huanghantao)
- Improve protocol setter (#3108) (@twose)
- Use the Better way to init C object on stack (#3069) (@twose)
- Use type
ucharfor bit field (#3071) (@twose) - Support parallel test (#3215) (@twose)
Fixed
- Fixed
enable_delay_receive(#3221) (#3224) (@matyhtf) - Fixed
ConnectionPool->fill(swoole/library#18) (@NHZEX) - All other bug fix patches have already been merged into the v4.4.x branch, we will not reiterate them here
v4.4.17
Enhancement
- Improve SSL Server performance (#3077) (85a9a59) (@matyhtf)
- Remove SW_HTTP_HEADER_VALUE_SIZE, SW_HTTP_HEADER_BUFFER_SIZE (#3187) limitation (@twose)
- Support MIPS (#3196) (@ekongyun)
- Support CURLOPT_HTTPAUTH (swoole/library@570318be) (@twose)
Fixed
- Fixed behavior of package_length_func and memory leak (#3111) (@twose)
- Fixed HTTP 304 error (#3118) (#3120) (@twose)
- Fixed incorrect macro expansion (#3142) (@twose)
- Fixed OpenSSL function signature (#3154) (#3155) (@twose)
- Fixed SSL error msg (#3172) (@matyhtf) (@twose)
- Fixed PHP-7.4 compatibility (@twose) (@matyhtf)
- Fixed HTTP chunk length parser (19a1c71) (@twose)
- Fixed chunked multipart parser (3692d9d) (@twose)
- Fixed ZEND_ASSUME failed (fc0982b) (@twose)
- Fixed Socket address error (d72c5e3) (@twose)
- Fixed Socket get name (#3177) (#3179) (@matyhtf)
- Fixed static handler with empty file (#3182) (@twose)
- Fixed upload file handler on Coroutine\Http\Server (#3189) (#3191) (@twose)
- Fixed possible memory error on shutdown (44aef60) (@matyhtf)
- Fixed Server->heartbeat (#3203) (@matyhtf)
- Fixed reactor defer task (only tasks of the current round will be called) (#3207) (@twose)
- Fixed invalid write on immutable array (#3212) (@twose)
- Fixed double wait, improve error message (swoole/library@537a82e1) (@twose)
- Fixed empty header (keep same with cURL) (swoole/library@7c92ed5a) (@twose)
- Fixed non-IO methods error handler (swoole/library@f6997394) (@twose)
- Fixed wrong proxy header (swoole/library@5e94e5da) (@twose)
v4.4.16
Enhancement
- Now you can get Supported Versions of Swoole
- More friendly error messages (0412f44) (09a4883) (@twose)
- Prevent endless loops that may occur in some special systems (069a009) (@matyhtf)
- Add driver in PDOConfig (swoole/library#8) (@jcheron)
Fixed
- Fixed http2_session.default_ctx double free (bddbb9b) (@twose)
- Fixed uninitialized http_context (ce77c64) (@twose)
- Fixed typo in Table (may lead to memory errors) (db4eec1) (@twose)
- Fixed status error when kill USR2 and no set task_num (e437827) (@GXhua)
- Fixed incomplete raw-content of HTTP request (#3079) (#3085) (@hantaohuang)
- Fixed static handler (when the file content is empty, server should not respond 404) (#3084) (@Yurunsoft)
- Fixed http_compression_level not work (16f9274) (@twose)
- Fixed null pointer error of Coroutine HTTP2 Server caused by no handle (ed68098) (@twose)
- Fixed option socket_dontwait not work (2758937) (@matyhtf)
- Fixed double zend::eval (#3099) (@GXhua)
- Fixed HTTP2 Server null pointer error (respond after connection is closed) (#3110) (@twose)
- Fixed PDOStatementProxy::setFetchMode missing arguments (swoole/library#13) (@jcheron)
v4.4.15
Enhancement
- Bad websocket handshake request will respond 400 (fdc1cb6) (@twose)
- Disable accept when have too many connections (dd9fbf2) (@matyhtf)
- Binary security of package_eof (#3054) (@twose)
- Support HTTP chunked request (#3055) (@twose)
- Unified naming style and improve accessibility of Curl\Handler properties (library/curl) (@twose)
Fixed
- Fixed Http\Response->close (d30e326) (@twose)
- Fixed possible memory overflow (2212e09) (@twose)
- Fixed memory error when MSHUTDOWN (undestroyed reactor) (78d6dd7) (@twose)
- Fixed handler of event HUP (#3046) (@matyhtf) (@twose)
- Fixed exit code 1 (f982b81) (@matyhtf) (@twose) (@qiqizjl)
- Fixed missing "unhook curl_multi_getcontent" (7b2e960) (@twose)
- Fixed Coroutine HTTP2 Server memory error (d90eebe) (@twose)
- Fixed http_context_send_data (#3059) (@twose)
- Fixed send_yield in BASE mode (edbb654) (1b8096e) (@twose)
- Refactor HTTP2 Server to fix some bugs (#3061) (@twose)
- Fixed behaviour of CURLOPT_POSTFIELDS, CURLOPT_HTTPHEADER, curl_close (library/curl) (@twose)
v4.4.14
Enhancement
Fixed
- Fixed
Coroutine\HTTP\Servermemory leak and can not handle pipeline request (#3025) (#3029) (@twose) - Fixed compatibility issues with phar (e0558d6) (4bf483f) (4f93b79) (@twose)
- Fixed the concurrency capability of the Coroutine HTTP2 Server (daf45b5) (@twose)
- Fixed
SIGCHLDlistener for manager process (#3017) (@hejingsong) - Fixed warning in Buffer module (161f449) (@twose)
v4.4.13
New API
Enhancement
- Support websocket compression on Coroutine\Http\Server (#2943) (@twose)
- Support
CURLOPT_PUT,CURLOPT_INFILE,CURLOPT_INFILESIZE(#2954) (@twose) - Add error info for bind error (#2972) (@LeiZhang-Hunter) (@twose)
- Update error info if socket call failed (it will not warn anymore if not necessary) (1e9b8cb) (@twose)
- Move the library to a separate repo (@twose)
- Support
CURLOPT_IPRESOLVE(library-12ffb4d6) (@twose) - Support
CURLOPT_PORT,CURLOPT_PROXYPORT,CURLOPT_DNS_USE_GLOBAL_CACHE(library-5a718920) (@twose) - Better
CURLOPT_ENCODINGsupport (library-7b680712) (@twose) - Support
curl_reset,CURLOPT_PROXYTYPE,CURLOPT_PROXYUSERNAME,CURLOPT_PROXYPASSWORD,CURLOPT_PROXYUSERPWD(library-84ce0a04) (@twose)
Fixed
- Fixed gdbinit in docker (missing symbol) (d46dc2d (@twose)
- Fixed compression in POST request (#2947) (@twose)
- Fixed compatibility of
Websocket->pushmethod (ac7dbcb) (@twose) - Fixed
$outputresult inconsistency (@Yurunsoft) (#2955) - Fixed
Coroutine::fread(#2958) (@matyhtf) - Fixed
Coroutine\Servercan not exit normally #2837 (#2962) (@twose) - Fixed memory leak in HTTP2 Server (#2964) (@twose)
- Fixed
unsafe_event(#2970) (@matyhtf) - Fixed illegal call after server start (#2977) (@twose)
- Fixed
WebSocket\Framecan not enable mask (#2982) (#2983) (@twose) - Fixed memory leak of
Processcallback (898894a) (@twose) - Fixed case where minfd is never updated (#2985)
- Fixed HTTP2 module is always enable (3925e21) (@twose)
- Fixed HTTP2 context double free (#2987) (f4cdff1) (@twose)
- Fixed string comparison (#2988) (97c6c42) (9e5eae6) (@twose)
- Fixed HTTP2 pipeline (#2993) (@twose)
- Fixed coroutine context has been destroyed (#2991) (@twose)
- Fixed illegal usage of
Process::daemon(#3005) (@twose) - Fixed compilation without zlib (#3008) (@twose)
Kernel
v4.4.13RC2
New API
Enhancement
- Support websocket compression on Coroutine\Http\Server (#2943) (@twose)
- Support
CURLOPT_PUT,CURLOPT_INFILE,CURLOPT_INFILESIZE(#2954) (@twose) - Add error info for bind error (#2972) (@LeiZhang-Hunter) (@twose)
- Update error info if socket call failed (it will not warn anymore if not necessary) (1e9b8cb) (@twose)
- Move the library to a separate repo (@twose)
- Support
CURLOPT_IPRESOLVE(library-12ffb4d6) (@twose) - Support
CURLOPT_PORT,CURLOPT_PROXYPORT,CURLOPT_DNS_USE_GLOBAL_CACHE(library-5a718920) (@twose) - Better
CURLOPT_ENCODINGsupport (library-7b680712) (@twose) - Support
curl_reset,CURLOPT_PROXYTYPE,CURLOPT_PROXYUSERNAME,CURLOPT_PROXYPASSWORD,CURLOPT_PROXYUSERPWD(library-84ce0a04) (@twose)
Fixed
- Fixed gdbinit in docker (missing symbol) (d46dc2d (@twose)
- Fixed compression in POST request (#2947) (@twose)
- Fixed compatibility of
Websocket->pushmethod (ac7dbcb) (@twose) - Fixed
$outputresult inconsistency (@Yurunsoft) (#2955) - Fixed
Coroutine::fread(#2958) (@matyhtf) - Fixed
Coroutine\Servercan not exit normally #2837 (#2962) (@twose) - Fixed memory leak in HTTP2 Server (#2964) (@twose)
- Fixed
unsafe_event(#2970) (@matyhtf) - Fixed illegal call after server start (#2977) (@twose)
- Fixed
WebSocket\Framecan not enable mask (#2982) (#2983) (@twose) - Fixed memory leak of
Processcallback (898894a) (@twose) - Fixed case where minfd is never updated (#2985)
- Fixed HTTP2 module is always enable (3925e21) (@twose)
- Fixed HTTP2 context double free (#2987) (f4cdff1) (@twose)
- Fixed string comparison (#2988) (97c6c42) (9e5eae6) (@twose)
- Fixed HTTP2 pipeline (#2993) (@twose)
- Fixed coroutine context has been destroyed (#2991) (@twose)
- Fixed illegal usage of
Process::daemon(#3005) (@twose) - Fixed compilation without zlib (#3008) (@twose)
Kernel
v4.4.13RC1
New API
Enhancement
- Support websocket compression on Coroutine\Http\Server (#2943) (@twose)
- Support CURLOPT_PUT, CURLOPT_INFILE, CURLOPT_INFILESIZE (#2954) (@twose)
- Add error info for bind error (@LeiZhang-Hunter) (@twose) (#2972)
- Update error info if socket call failed (it will not warn anymore if not necessary) (1e9b8cb) (@twose)
- Make library submodule (@twose)
Fixed
- Fixed gdbinit in docker (missing symbol) (d46dc2d (@twose)
- Fixed compression in POST request (#2947) (@twose)
- Fixed compatibility of Websocket->push method (ac7dbcb) (@twose)
- Fixed $output result inconsistency (@Yurunsoft) (#2955)
- Fixed Coroutine::fread (#2958) (@matyhtf)
- Fixed Coroutine\Server can not exit normally #2837 (#2962) (@twose)
- Fixed memory leak in HTTP2\Server (#2964) (@twose)
- Fixed unsafe_event (#2970) (@matyhtf)
- Fixed illegal call after server start (#2977) (@twose)
- Fixed WebSocket\Frame can not enable mask (#2982) (#2983) (@twose)
- Fixed memory leak of Process callback (898894a) (@twose)
- Fixed case where minfd is never updated (#2985)
- Fixed HTTP2 module is always enable (3925e21) (@twose)
- Fixed HTTP2 context double free (#2987) (f4cdff1) (@twose)
- Fixed string comparison (#2988) (97c6c42) (9e5eae6) (@twose)
- Fixed HTTP2 pipeline (#2993) (@twose)
- Fixed coroutine context has been destroyed (#2991) (@twose)