-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
93 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,10 +36,10 @@ | |
<email>[email protected]</email> | ||
<active>yes</active> | ||
</developer> | ||
<date>2019-01-22</date> | ||
<time>18:00:00</time> | ||
<date>2019-02-02</date> | ||
<time>22:00:00</time> | ||
<version> | ||
<release>4.2.12</release> | ||
<release>4.2.13</release> | ||
<api>4.0</api> | ||
</version> | ||
<stability> | ||
|
@@ -48,16 +48,59 @@ | |
</stability> | ||
<license uri="http://www.apache.org/licenses/LICENSE-2.0.html">Apache2.0</license> | ||
<notes> | ||
+ Implement RFC-1014, add `task_enable_coroutine`, remove `task_async` (13ab0f8) | ||
+ Support `gethostbyname` timeout, add async task thread pool (#2256) | ||
+ `Co\PostgreSQL` supports process-oriented prepare (#2223) (#2258) | ||
+ `Co\Redis` client adds getOptions method (#2279) | ||
* Fixed non-coroutine after server reload (#2262) (3ac2337) | ||
* Fixed wrong data in `Table` (#2263) (872e99d) | ||
* Fixed `Co\Http\Client:addFile` error when optional parameter is null (#2270) | ||
* Fixed optional parameter problem for `Co::getaddrinfo` (#2273) | ||
* Fixed timers in user processes (#2274) | ||
* Fixed the availability of gdb debugging tools in C++ (90d148b) (b12f62f) | ||
Fixed (incompatible changes to be noted) | ||
--- | ||
* Fixed a problem with Redis subscribe API design issues that caused duplicate subscriptions and subscription messages to be lost (see: [Subscription Mode Documentation](https://wiki.swoole.com/wiki/page/1041.html)) (#2305) (@windrunner414) | ||
* After using coroutine, you can no longer use the traditional connection multiplexing method such as `pconnect`, otherwise it will generate the problem of multi-coroutine handle the same Socket at the same time (7b1e786) (@shiguangqi) | ||
|
||
Enhancement | ||
--- | ||
+ Coroutine client re-supports full duplex (#2350) (@twosee) | ||
+ Support for secure cross-coroutine socket close (#2327) (@twosee) | ||
+ [RFC-1015](https://github.com/swoole/rfc-chinese/issues/38): Non-Worker Process Allows One-Way Delivery Task (222043a) (@matyhtf) | ||
+ `swoole_strerror` supports automatic convert system error code and Swoole error code to text, no need to specify parameters (c92f444) (@twosee) | ||
+ GDB trace tool supports viewing timer and reactor and hashmap information (2beb563) (@shiguangqi) | ||
+ When MOVED and ASK errors occurred when using Redis cluster, it will be automatically transferred to the corresponding server (#2299) (@windrunner414) | ||
+ Underlying code optimization, reducing memory copy when receiving packages (@matyhtf) | ||
+ Now calling `Co\Socket->close()` will immediately close the fd instead of waiting for the object to be destructed, after closed, use any other API will return a BADF error (consistent with the system API) (7a61963) (@Twosee) | ||
+ Some illegal parameters no longer cause fatal errors but generate a warning, because external parameters are sometimes uncontrollable and there is a certain risk (cd432d3) (@twosee) | ||
+ API compatibility enhancement after use coroutine mode (consistent with sync mode) (36687e8) (@matyhtf) | ||
+ Now swoole\src can be used as a C\C++ library at the same time (libswoole) | ||
|
||
Fixed | ||
--- | ||
* Fixed a possible coredump problem when there were a large number of objects before the extension load (4ddeedb) (@twosee) | ||
* Fixed coredump caused by attempting to clear the uninitialized DNS cache (#2288) (@mabu233) | ||
* When `task_enable_coroutine` is enabled, incorrectly calling `Server->finish` will trigger a fatal error (156ede6) (@twosee) | ||
* The php.ini configuration now displays `On` and `Off` correctly (instead of 0 and 1) (fe25982) (@twosee) | ||
* Fixed the `Co::getaddrinfo` parameter parser bug (#2273) (@mabu233) | ||
* Fixed fd error when using dispatch_func in UDP mode (#2306) (@mabu233) | ||
* Fixed the bug that dispatch_func does not work when specifying the function name, optimization for reducing memory copy (2bc49e4) (@twosee) | ||
* PHP warnings will no longer be triggered when the task expires (but the underlying log warning of swoole) (54eee5e) (@matyhtf) | ||
* Fixed enable coroutine states after process restarts (#2310) | ||
* Fixed the user process id property (#2313) (@junwei-qu) | ||
* Fixed the bug caused by incorrectly using the asynchronous API in the onStart callback in BASE mode (#2308) (@matyhtf) | ||
* Fixed incorrect manager_id in BASE mode (e18e013) (@matyhtf) | ||
* Fixed mmap using SEEK_END offset error (#2314) (@junwei-qu) | ||
* Fixed getSocket memory leak (ec8c4b2) (@twosee) | ||
* Optimized stream mode (47e0e9e) (@matyhtf) | ||
* Fixed BUG caused by connection multiplexing in sync client with KEEP mode under certain conditions (4c5728b) (@matyhtf) | ||
* Fixed an issue with `Atomic` multiple `wait` and `wakeup` overflows on MacOS (fbccb25) (@twosee) | ||
* Fixed the problem of opening the static_handler directory traversal attack risk, this is a convenient debugging feature, please do not use for production (#2323) (@windrunner414) | ||
* Fixed unchecked return value of futex_wait system call (#2351) (@junwei-qu) | ||
* Fixed bugs in Redis::ZAdd API parsing parameters, and fix other potential type conversion problems (#2321) (21e0497) (a0e612f) (00134cf) (f5a331e) (5f87f17) (a15f094) (67f3285) (808f578) (d118fe3) (5294473) (48f6790) (0105c7f) (ba6c8b4) (@matyhtf) | ||
* Fixed a third-party hook failure that could result from not using function pointers when sending data (89ba2da) (@matyhtf) | ||
* Fixed a memory leak in the Timer::tick method when passing arguments (7e15141) (@mabu233) | ||
* Fixed user process does not exit automatically (2901ce0) (@matyhtf) | ||
* Fixed read operation timeout config (a990540) (@shiguangqi) | ||
* Fixed the problem that the parameter timeout time does not take effect after the `Co\Client` open the package length check (#2346) (@twosee) | ||
* Server is no longer in the control of `buffer_output_size` in BASE mode, only limited by `socket_buffer_size` (#2326) (@matyhtf) | ||
* Fixed compilation error under FREEBSD (#2325) (@matyhtf) | ||
* Compatibility: When the Mysql escape method fails, it will return an empty string instead of FALSE | ||
|
||
Others | ||
--- | ||
* Swoole\Serialize is now supported for PHP73, but it is still marked as a deprecated feature | ||
</notes> | ||
<contents> | ||
<dir name="/"> | ||
|
@@ -437,6 +480,8 @@ | |
<file role="doc" name="examples/websocket/client.html" /> | ||
<file role="doc" name="examples/websocket/client.php" /> | ||
<file role="doc" name="examples/websocket/server.php" /> | ||
<file role="doc" name="examples/wrapper/CMakeLists.txt" /> | ||
<file role="doc" name="examples/wrapper/server.cpp" /> | ||
<file role="doc" name="gdbinit" /> | ||
<file role="src" name="include/array.h" /> | ||
<file role="src" name="include/asm_context.h" /> | ||
|
@@ -562,6 +607,10 @@ | |
<file role="src" name="src/server/reactor_thread.c" /> | ||
<file role="src" name="src/server/task_worker.c" /> | ||
<file role="src" name="src/server/worker.c" /> | ||
<file role="doc" name="src/wrapper/README.md" /> | ||
<file role="src" name="src/wrapper/client.cc" /> | ||
<file role="src" name="src/wrapper/server.cc" /> | ||
<file role="src" name="src/wrapper/timer.cc" /> | ||
<file role="src" name="swoole.c" /> | ||
<file role="src" name="swoole_async.cc" /> | ||
<file role="src" name="swoole_atomic.c" /> | ||
|
@@ -758,7 +807,7 @@ | |
<file role="test" name="tests/swoole_buffer/buffer_substr.phpt" /> | ||
<file role="test" name="tests/swoole_buffer/construct_buffer.phpt" /> | ||
<file role="test" name="tests/swoole_channel/basic.phpt" /> | ||
<file role="test" name="tests/swoole_channel/pusu_pop_stats.phpt" /> | ||
<file role="test" name="tests/swoole_channel/push_pop_stats.phpt" /> | ||
<file role="test" name="tests/swoole_client_async/big_package_memory_leak.phpt" /> | ||
<file role="test" name="tests/swoole_client_async/buffer_full.phpt" /> | ||
<file role="test" name="tests/swoole_client_async/connect_dns.phpt" /> | ||
|
@@ -778,6 +827,7 @@ | |
<file role="test" name="tests/swoole_client_async/sendfile.phpt" /> | ||
<file role="test" name="tests/swoole_client_async/sleep_wake.phpt" /> | ||
<file role="test" name="tests/swoole_client_async/swoole_client.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/bug_2346.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/close.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/close_in_other_co.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/close_resume.phpt" /> | ||
|
@@ -786,10 +836,13 @@ | |
<file role="test" name="tests/swoole_client_coro/connect_with_dns.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/eof.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/eof_02.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/fixed_package.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/length_01.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/length_02.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/length_03.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/length_04.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/length_protocol_func.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/length_types.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/recv_timeout.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/recv_timeout2.phpt" /> | ||
<file role="test" name="tests/swoole_client_coro/recvfrom.phpt" /> | ||
|
@@ -846,11 +899,13 @@ | |
<file role="test" name="tests/swoole_coroutine/exception/nested.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/exception/yield.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/exception/yield1.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/exists.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/exit.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/exit_exception_backtrace.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/forbidden_case/array_map.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/forbidden_case/call_user.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/forbidden_case/invoke.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/getPcid.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/gethostbyname.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/list_and_backtrace.phpt" /> | ||
<file role="test" name="tests/swoole_coroutine/max_num.phpt" /> | ||
|
@@ -944,12 +999,16 @@ | |
<file role="test" name="tests/swoole_event/swoole_event_write.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/client.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/client_by_server.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/full_duplex.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/full_duplex_by_server.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/http.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/http_by_server.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/redis.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/redis_by_server.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/stream.phpt" /> | ||
<file role="test" name="tests/swoole_feature/cross_close/stream_by_server.phpt" /> | ||
<file role="test" name="tests/swoole_feature/full_duplex/client.phpt" /> | ||
<file role="test" name="tests/swoole_feature/full_duplex/socket.phpt" /> | ||
<file role="test" name="tests/swoole_function/swoole_clear_dns_cache.phpt" /> | ||
<file role="test" name="tests/swoole_function/swoole_cpu_num.phpt" /> | ||
<file role="test" name="tests/swoole_function/swoole_get_local_ip.phpt" /> | ||
|
@@ -1252,11 +1311,14 @@ | |
<file role="test" name="tests/swoole_runtime/gethostbyname.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/pdo.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/persistent.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/redis_connect.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/redis_pconnect.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/sento.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/sleep.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/ssl_client.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/ssl_server.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/stream_context.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/stream_get_meta_data.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/tcp-c10k.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/tcp.phpt" /> | ||
<file role="test" name="tests/swoole_runtime/udg.phpt" /> | ||
|
@@ -1303,6 +1365,7 @@ | |
<file role="test" name="tests/swoole_server/dispatch_func_discard.phpt" /> | ||
<file role="test" name="tests/swoole_server/dispatch_mode_1.phpt" /> | ||
<file role="test" name="tests/swoole_server/dispatch_mode_3.phpt" /> | ||
<file role="test" name="tests/swoole_server/duplicate_registered.phpt" /> | ||
<file role="test" name="tests/swoole_server/enable_coroutine.phpt" /> | ||
<file role="test" name="tests/swoole_server/eof_protocol.phpt" /> | ||
<file role="test" name="tests/swoole_server/eof_server.phpt" /> | ||
|
@@ -1320,6 +1383,7 @@ | |
<file role="test" name="tests/swoole_server/kill_user_process_02.phpt" /> | ||
<file role="test" name="tests/swoole_server/kill_worker_01.phpt" /> | ||
<file role="test" name="tests/swoole_server/kill_worker_02.phpt" /> | ||
<file role="test" name="tests/swoole_server/length/02.phpt" /> | ||
<file role="test" name="tests/swoole_server/length_protocol.phpt" /> | ||
<file role="test" name="tests/swoole_server/listen_fail.phpt" /> | ||
<file role="test" name="tests/swoole_server/max_request.phpt" /> | ||
|
@@ -1336,6 +1400,10 @@ | |
<file role="test" name="tests/swoole_server/sendfile_02.phpt" /> | ||
<file role="test" name="tests/swoole_server/sendfile_ssl.phpt" /> | ||
<file role="test" name="tests/swoole_server/shutdown.phpt" /> | ||
<file role="test" name="tests/swoole_server/shutdown_in_base.phpt" /> | ||
<file role="test" name="tests/swoole_server/shutdown_in_base_single.phpt" /> | ||
<file role="test" name="tests/swoole_server/shutdown_in_master.phpt" /> | ||
<file role="test" name="tests/swoole_server/shutdown_in_process.phpt" /> | ||
<file role="test" name="tests/swoole_server/slow_client.phpt" /> | ||
<file role="test" name="tests/swoole_server/ssl.phpt" /> | ||
<file role="test" name="tests/swoole_server/ssl_verify_01.phpt" /> | ||
|
@@ -1369,6 +1437,7 @@ | |
<file role="test" name="tests/swoole_server/use_process.phpt" /> | ||
<file role="test" name="tests/swoole_server/wrong_eof_setting.phpt" /> | ||
<file role="test" name="tests/swoole_server/z_conn_10k.phpt" /> | ||
<file role="test" name="tests/swoole_server_port/duplicate_registered.phpt" /> | ||
<file role="test" name="tests/swoole_server_port/heartbeat.phpt" /> | ||
<file role="test" name="tests/swoole_server_port/http.phpt" /> | ||
<file role="test" name="tests/swoole_server_port/multi_port.phpt" /> | ||
|
@@ -1391,6 +1460,7 @@ | |
<file role="test" name="tests/swoole_table/int.phpt" /> | ||
<file role="test" name="tests/swoole_table/key_value.phpt" /> | ||
<file role="test" name="tests/swoole_table/row.phpt" /> | ||
<file role="test" name="tests/swoole_timer/bug_2342.phpt" /> | ||
<file role="test" name="tests/swoole_timer/call_private.phpt" /> | ||
<file role="test" name="tests/swoole_timer/callback_bug_with_array.phpt" /> | ||
<file role="test" name="tests/swoole_timer/enable_coroutine.phpt" /> | ||
|