Releases: swoole/swoole-src
Releases · swoole/swoole-src
v4.8.6
v4.8.5
v4.8.4
v4.8.3
- Fixed compatibility of curl native hook with PHP-8.1
- Fixed compatibility of sockets hook with PHP-8
- Fixed the return value error of sockets hook function
- Added Coroutine\Socket::isClosed()
- Fixed Http2Server sendfile cannot set content-type
- Optimize performance of HttpServer date header
中文
- 修复 curl native hook 在 php8.1 版本下的兼容性问题
- 修复 sockets hook 在 php8 下的兼容性问题
- 修复 sockets hook 函数返回值错误
- 增加 Coroutine\Socket::isClosed() 方法
- 修复 Http2Server sendfile 无法设置 content-type
- 优化 HttpServer date header 的性能,增加了 cache
v4.8.2
- Fixed memory leak of
proc_open
hook - Fixed compatibility of curl native hook with PHP-8.0 and PHP-8.1
- Fixed connection cannot be closed normally in the Manager process
- Fixed Manager process cannot use
sendMessage
- Fixed
Coroutine\Http\Server
received abnormally large POST data parsing - Fixed cannot exit directly when a fatal error occurs in PHP8 environment
- Adjust coroutine max_concurrency option, only allowed to be used in
Co::set()
- Adjust
Coroutine::join()
to ignore non-exists coroutine
中文
- 修复 proc_open hook 内存泄露的问题
- 修复 curl native hook 与 PHP-8.0、PHP-8.1 的兼容性问题
- 修复 Manager 进程中无法正常关闭连接的问题
- 修复 Manager 进程无法使用 sendMessage 的问题
- 修复
Coroutine\Http\Server
接收超大 POST 数据解析异常的问题 - 修复 PHP8 环境下致命错误时进行不能直接退出的问题
- 调整 coroutine
max_concurrency
配置项,只允许在Co::set()
中使用 - 调整
Coroutine::join()
忽略不存在的协程
v4.8.1
New APIs
Enhancement
- Migrate admin api from ext-swoole_plus to swoole-src (#4441) (@matyhtf)
- Added get_composer_packages command for admin server (swoole/library@07763f46) (swoole/library@8805dc05) (swoole/library@175f1797) (@sy-records) (@yunbaoi)
- Added POST method request restrictions for write operations (swoole/library@ac16927c) (@yunbaoi)
- Supported to get the method information of the class by get_function_info (swoole/library@690a1952) (@djw1028769140) (@sy-records)
- Optimized admin server code (swoole/library#128) (swoole/library#131) (@sy-records)
- Supported to request multiple groups of server information for admin server (swoole/library#124) (@sy-records)
- Supported to get interface info for admin server (swoole/library#130) (@sy-records)
- Supported CURLOPT_HTTPPROXYTUNNEL for SWOOLE_HOOK_CURL (swoole/library#126) (@sy-records)
Fixed
- Prohibit coroutine concurrent join (#4442) (@matyhtf)
- Fixed init_row, don't clear lock_ and lock_pid (#4446) (@Txhua) (@matyhtf)
- Fixed missing helper options (swoole/library#123) (@sy-records)
- Fixed get_static_property_value command error (swoole/library#129) (@sy-records)
v4.8.0
Backward compatibility Break
- In base mode, the onStart callback is always called back when the first worker process (worker ID is 0) starts, before onWorkerStart callback. The coroutine API can always be used in the onStart callback, and onStart is called back again when worker-0 restarts with a fatal error (#4389) (@matyhtf)
- In versions prior to 4.8.0, onStart is called back in worker-0 when there is only one worker process, and called back in the Manager process when there are multiple worker processes.
New APIs
- Added Co::getStackUsage() (#4398) (@matyhtf) (@twose)
- Added Coroutine\Redis some api (#4390) (@chrysanthemum)
- Added Table::stats() (#4405) (@matyhtf)
- Added Coroutine::join() (#4406) (@matyhtf)
New feature
- Supported server command (#4389) (@matyhtf)
- Supported Server::onBeforeShutdown callback (#4415) (@matyhtf)
Enhancement
- Set error code when websocket pack fails (d27c5a5) (@matyhtf)
- Added Timer::exec_count field (#4402) (@matyhtf)
- Supported for hooked mkdir using open_basedir ini config (#4407) (@NathanFreeman)
- Added vendor_init.php (swoole/library@6c40b02) (@matyhtf)
- Supported CURLOPT_UNIX_SOCKET_PATH for SWOOLE_HOOK_CURL (swoole/library#121) (@sy-records)
- Supported ssl_ciphers config for client (#4432) (@amuluowin)
- Added some new information for Server::stats() (#4410) (#4412) (@matyhtf)
Fixed
- Fixed unnecessary URL decode of file names when uploading files (a73780e) (@matyhtf)
- Fixed HTTP2 max_frame_size error (#4394) (@twose)
- Fixed curl_multi_select bug #4393 (#4418) (@matyhtf)
- Fixed missing coroutine options (#4425) (@sy-records)
- Fixed connection cannot be forcibly closed when the send buffer is full (2198378) (@matyhtf)
v4.7.1
New feature
- Introduce a new concurrency mode (#4330) (@doubaokun)
Enhancement
- Supported query /etc/hosts for System::dnsLookup (#4341) (#4349) (@zmyWL) (@NathanFreeman)
- Supported boost context support for mips64 (#4358) (@dixyes)
- Supported CURLOPT_RESOLVE option for SWOOLE_HOOK_CURL (swoole/library#107) (@sy-records)
- Supported CURLOPT_NOPROGRESS for SWOOLE_HOOK_CURL (swoole/library#117) (@sy-records)
- Supported boost context support for riscv64 (#4375) (@dixyes)
Fixed
- Fixed memory error on shutdown (PHP-8.1) (#4325) (@twose)
- Fixed not serializable classes for 8.1.0beta1 (#4335) (@remicollet)
- Fixed multiple coroutines recursively creating directories (#4337) (@NathanFreeman)
- Fixed native curl bugs (#4360) (@matyhtf)
- Fixed PDOStatement::bindParam() expects parameter 1 to be string (swoole/library#116) (@sy-records)
v4.7.0
New APIs
- Added Process\Pool::detach() (#4221) (@matyhtf)
- Added onDisconnect callback for Swoole\Server (#4230) (@matyhtf)
- Added Coroutine::cancel() (#4247) (#4249) (@matyhtf)
- Added http_compression/body_decompression options for Http Client (#4299) (@matyhtf)
Enhancement
- Supported mysql client prepare field type identification (#4238) (@Yurunsoft)
- Supported c-ares, Refactor DNS (#4275) (@matyhtf)
- Supported setting different idle time for each port (#4290) (@matyhtf)
- Supported SW_DISPATCH_CO_CONN_LB and SW_DISPATCH_CO_REQ_LB for Swoole\Server dispatch_mode (#4318) (@matyhtf)
- Supported timeout for Swoole\ConnectionPool::get (swoole/library#108) (@leocavalcante)
- Supported CURLOPT_PRIVATE for Hook Curl (swoole/library#112) (@sy-records)
- Optimized PDOStatementProxy::setFetchMode function prototype (swoole/library#109) (@yespire)
Fixed
- Fixed uncaught thread creation exception when creating a large number of coroutines (8ce5041) (@matyhtf)
- Fixed the "make install" missing php_swoole.h header file (#4239) (@sy-records)
- Fixed EVENT_HANDSHAKE BC (#4248) (@sy-records)
- Fixed SW_LOCK_CHECK_RETURN (#4302) (@zmyWL)
- Fixed problems with Swoole\Atomic\Long M1 chip (e6fae2e) (@matyhtf)
- Fixed missing return value of Coroutine\go (swoole/library@1ed49db) (@matyhtf)
- Fixed StringObject consistency between other methods and its immutability (swoole/library#111) (@leocavalcante)
- Fixed StringObject substr error (swoole/library#113) (@sy-records)
Kernel
Test
- Added Cygwin build (#4222) (@sy-records)
- Added alpine 3.13 and 3.14 into building test (#4309) (@limingxinleo)
v4.6.7
Enhancement
Fixed
- Fixed signal cannot be registered repeatedly (#4170) (@matyhtf)
- Fixed build on OpenBSD/NetBSD (#4188) (#4194) (@devnexen)
- Fixed special case OnClose event missing while listening for writable events (#4204) (@matyhtf)
- Fixed native curl with Symfony HttpClient (#4208) (@matyhtf)
- Fixed Http\Response::end() always return true (66fcc35) (@matyhtf)
- Fixed PDOException generated by PDOStatementProxy (swoole/library#104) (@twose)
Kernel
- Refactored worker buffer, add msg id for the event data (#4163) (@matyhtf)
- Changed the log level of "Request Entity Too Large" to warning (#4175) (@sy-records)
- Deleted inet_ntoa and inet_aton calls (#4199) (@remicollet)
- Adjusted output_buffer_size value to UINT_MAX (46ab345) (@matyhtf)