|
42 | 42 |
|
43 | 43 | <active>yes</active>
|
44 | 44 | </developer>
|
45 |
| - <date>2020-09-09</date> |
46 |
| - <time>20:00:00</time> |
| 45 | + <date>2020-09-15</date> |
| 46 | + <time>19:00:00</time> |
47 | 47 | <version>
|
48 | 48 | <release>4.5.4</release>
|
49 | 49 | <api>4.0</api>
|
|
54 | 54 | </stability>
|
55 | 55 | <license uri="http://www.apache.org/licenses/LICENSE-2.0.html">Apache2.0</license>
|
56 | 56 | <notes>
|
| 57 | + Backward compatibility Break |
| 58 | + --- |
| 59 | + * Modify SWOOLE_HOOK_ALL to contain SWOOlE_HOOK_CURL (#3606) (@matyhtf) |
| 60 | + * Enable SWOOLE_HOOK_ALL by default (#3607) (@matyhtf) |
| 61 | + * Remove ssl_method and Support ssl_protocols (#3639) (@Yurunsoft) |
| 62 | + |
57 | 63 | New APIs
|
58 | 64 | ---
|
59 |
| - + Added `Swoole\Process\ProcessManager` (swoole/library#88f147b) (@huanghantao) |
60 |
| - + Added ArrayObject::append, StringObject::equals (swoole/library#f28556f) (@matyhtf) |
61 |
| - + Added Coroutine::parallel (swoole/library#6aa89a9) (@matyhtf) |
62 |
| - + Added Coroutine\Barrier (swoole/library#2988b2a) (@matyhtf) |
| 65 | + + Added firstKey and lastKey (swoole/library#51) (@sy-records) |
63 | 66 |
|
64 | 67 | Enhancement
|
65 | 68 | ---
|
66 |
| - + Added usePipelineRead to support streaming call-in http2 client (#3354) (@twose) |
67 |
| - + Do not create the file before receive body when a download (#3381) (@twose) |
68 |
| - + Added `bind_address` and `bind_port` setting for coroutine http client (#3390) (@huanghantao) |
69 |
| - + Added `lowercase_header` option for HttpClient (#3399) (@matyhtf) |
70 |
| - + Added `tcp_user_timeout` option for `Swoole\Server` (#3404) (@huanghantao) |
71 |
| - + Added `Coroutine\Socket` event barrier (#3409) (@matyhtf) |
72 |
| - + Added specify swString memory allocator (#3418) (@matyhtf) |
73 |
| - + Support cURL `__toString` (swoole/library#38) (@twose) |
74 |
| - + Added `lowercase_header` to fix cURL header name (swoole/library#e7c2a82) (@twose) |
75 |
| - + Set wait count directly in WaitGroup constructor (swoole/library#2fb228b8) (@matyhtf) |
76 |
| - + Added `CURLOPT_REDIR_PROTOCOLS` (swoole/library#46) (@sy-records) |
77 |
| - + Support trailer for HTTP 1.1 (#3485) (@huanghantao) |
78 |
| - + Support yield when sleeping less 1ms (#3487) (@Yurunsoft) |
79 |
| - + Support get soft link file in the static handler (#3569) (@LeiZhang-Hunter) |
80 |
| - + Close WebSocket connection immediately after the server call close method (#3570) (@matyhtf) |
81 |
| - + Support hook stream_set_blocking (#3585) (@Yurunsoft) |
82 |
| - + Support HTTP2 flow control in async HTTP2 Server (#3486) (@huanghantao) (@matyhtf) |
83 |
| - + Support free socket buffer after onPackage is called (#3551) (@huanghantao) (@matyhtf) |
| 69 | + + Added open_websocket_ping_frame, open_websocket_pong_frame (#3600) (@Yurunsoft) |
84 | 70 |
|
85 | 71 | Fixed
|
86 | 72 | ---
|
87 |
| - * Fixed WebSocket coredump, handle protocol status error (#3359) (@twose) |
88 |
| - * Fixed swSignalfd_setup and fix possible nullptr error in wait_signal (#3360) (@twose) |
89 |
| - * Fixed `Swoole\Server::close` throw a error when set dispatch_func (#3365) (@twose) |
90 |
| - * Fixed format_buffer init problem when use `Swoole\Redis\Server::format` (#3369) (@matyhtf) (@twose) |
91 |
| - * Fixed get mac address in MacOS (#3372) (@twose) |
92 |
| - * Fixed MySQL test case (#3374) (@qiqizjl) |
93 |
| - * Fixed PHP8 compatibility (#3384) (#3458) (#3578) (#3598) (@twose) |
94 |
| - * Fixed missing php_error_docref, timeout_event and return value in hook socket write and read (#3383) (@twose) |
95 |
| - * Fixed the server could not be stopped during the `WorkerStart` phase (#3382) (@huanghantao) |
96 |
| - * Fixed coredump because of heart thread operate conn->socket (#3396) (@huanghantao) |
97 |
| - * Fixed send yield logic bug (#3397) (@twose) (@matyhtf) |
98 |
| - * Fixed compile problem in Cygwin64 (#3400) (@twose) |
99 |
| - * Fixed WebSocket finish property invalid (#3410) (@matyhtf) |
100 |
| - * Fixed build error when losing sys/random.h (#3427) (@huanghantao) |
101 |
| - * Fixed missing MySQL transaction error, update the test (#3429) (@twose) |
102 |
| - * Fixed the result of `stream_select` (#3440) (@Yurunsoft) |
103 |
| - * Fixed lose `SIGCHLD` when use `Coroutine\System` to create the child process (#3446) (@huanghantao) |
104 |
| - * Fixed sendwait not support SSL mode (#3459) (@huanghantao) |
105 |
| - * Fixed `ArrayObject` and `StringObject` bug (swoole/library#44) (@matyhtf) |
106 |
| - * Fixed mysqli error, typo (swoole/library#45) (@sy-records) |
107 |
| - * Fixed can not get correct Swoole\Client::errCode if `open_eof_check` is set (#3478) (@huanghantao) |
108 |
| - * Fixed fix atomic->wait()/wakeup() in MacOS (#3476) (@Yurunsoft) |
109 |
| - * Fixed Client::connect return 0 when serve refused (#3484) (@matyhtf) |
110 |
| - * Fixed nullptr_t is not declared in alpine (#3488) (@limingxinleo) |
111 |
| - * Fixed fix HTTP Client download filename bug, double-free memory (#3489) (@Yurunsoft) |
112 |
| - * Fixed fix memory leak of Server\Port (#3507) (@twose) |
113 |
| - * Fixed fix mqtt parse protocal error (318e33a) (84d8214) (80327b3) (efe6c63) (@GXhua) (@sy-records) |
114 |
| - * Fixed Coroutine\Http\Client->getHeaderOut coredump (#3534) (@matyhtf) |
115 |
| - * Fixed missing error info of SSL verify (#3535) (@twose) |
116 |
| - * Fixed update Swoole benchmark link in README (#3536) (@sy-records) (@santalex) |
117 |
| - * Fixed fix HTTP header/cookie injection when using CRLF (#3539) (#3541) (#3545) (chromium1337) (@huanghantao) |
118 |
| - * Fixed fix the typo variable in #3463 (#3547) (chromium1337) (@huanghantao) |
119 |
| - * Fixed the typo introduced in pull request #3463 (#3547) (@deminy) |
120 |
| - * Fixed set coroutine WebSocket server frame->fd (#3549) (@huanghantao) |
121 |
| - * Fixed connection leak when heart thread check the connection status (#3534) (@matyhtf) |
122 |
| - * Fixed don't need block signals in the process pool (#3582) (@huanghantao) (@matyhtf) |
123 |
| - * Fixed don't send headers by SAPI (#3571) (@twose) (@sshymko) |
124 |
| - * Fixed set error code and error message when curl execution fails (swoole/library#1b6c65e) (@sy-records) |
125 |
| - * Fixed swoole_socket_coro accept bug when call setProtocol function will cause coredump (#3591) (@matyhtf) |
| 73 | + * Fixed fseek ftell file larger than 2G bug (#3619) (@Yurunsoft) |
| 74 | + * Fixed Socket barrier bug (#3627) (@matyhtf) |
| 75 | + * Fixed http proxy handshake bug (#3630) (@matyhtf) |
| 76 | + * Fixed a problem with parsing the HTTP header when send chunk data (#3633) (@matyhtf) |
| 77 | + * Fixed zend_hash_clean assertion failure (#3634) (@twose) |
| 78 | + * Fixed can't remove broken fd from event loop (#3650) (@matyhtf) |
| 79 | + * Fixed crash when receiving invalid packet (#3653) (@matyhtf) |
| 80 | + * Fixed array_key_last (swoole/library#46) (@sy-records) |
126 | 81 |
|
127 | 82 | Kernel
|
128 | 83 | ---
|
129 |
| - * Use the CPP style (#3349) (#3351) (#3454) (#3479) (#3490) (@huanghantao) (@matyhtf) |
130 |
| - * Added Swoole known strings to improve PHP object property reading (#3363) (@huanghantao) |
131 |
| - * Improve code (#3350) (#3356) (#3357) (#3423) (#3426) (#3461) (#3463) (#3472) (#3557) (#3583) (@huanghantao) (@twose) (@matyhtf) |
132 |
| - * Optimize tests (#3416) (#3481) (#3558) (@matyhtf) |
133 |
| - * Simplify table int type (#3407) (@matyhtf) |
134 |
| - * Added sw_memset_zero and replace bzero (#3419) (@CismonX) |
135 |
| - * Optimize log module (#3432) (@matyhtf) |
136 |
| - * Refactor libswoole (#3448) (#3473) (#3475) (#3492) (#3494) (#3497) (#3498) (#3526) (@matyhtf) |
137 |
| - * Refactor header deps (#3457) (@matyhtf) (@huanghantao) |
138 |
| - * Added `Channel::count()` and `Channel::get_bytes()` (f001581) (@matyhtf) |
139 |
| - * Added scope guard (#3504) (@huanghantao) |
140 |
| - * Added libswoole coverage test (#3431) (@huanghantao) |
141 |
| - * Added lib-swoole/ext-swoole MacOS test (#3521) (@huanghantao) |
142 |
| - * Added lib-swoole/ext-swoole Alpine test (#3537) (@limingxinleo) |
| 84 | + * Code optimization (#3615) (#3617) (#3622) (#3635) (#3640) (#3641) (#3642) (#3645) (#3658) (@matyhtf) |
| 85 | + * Reduce unnecessary memory operation to improve write performance (#3620) (@matyhtf) |
| 86 | + * Refactor aio (#3624) (@Yurunsoft) |
| 87 | + * Added readlink/opendir/readdir/closedir hook (#3628) (@matyhtf) |
| 88 | + * Improve swMutex_create, add SW_MUTEX_ROBUST (#3646) (@matyhtf) |
143 | 89 | </notes>
|
144 | 90 | <contents>
|
145 | 91 | <dir name="/">
|
|
1077 | 1023 | <file role="test" name="tests/swoole_event/defer.phpt" />
|
1078 | 1024 | <file role="test" name="tests/swoole_event/defer_with_sleep.phpt" />
|
1079 | 1025 | <file role="test" name="tests/swoole_event/defer_without_io.phpt" />
|
| 1026 | + <file role="test" name="tests/swoole_event/del_after_close.phpt" /> |
1080 | 1027 | <file role="test" name="tests/swoole_event/dispatch.phpt" />
|
1081 | 1028 | <file role="test" name="tests/swoole_event/swoole_event.phpt" />
|
1082 | 1029 | <file role="test" name="tests/swoole_event/swoole_event_del.phpt" />
|
|
1352 | 1299 | <file role="test" name="tests/swoole_library/string_object/base.phpt" />
|
1353 | 1300 | <file role="test" name="tests/swoole_library/wait_group/normal.phpt" />
|
1354 | 1301 | <file role="test" name="tests/swoole_library/wait_group/timeout.phpt" />
|
| 1302 | + <file role="test" name="tests/swoole_lock/mutex.phpt" /> |
| 1303 | + <file role="test" name="tests/swoole_lock/mutex_robust.phpt" /> |
1355 | 1304 | <file role="test" name="tests/swoole_mysql_coro/abandon_prepare_dtor.phpt" />
|
1356 | 1305 | <file role="test" name="tests/swoole_mysql_coro/aborted_clients.phpt" />
|
1357 | 1306 | <file role="test" name="tests/swoole_mysql_coro/another_coroutine.phpt" />
|
|
1628 | 1577 | <file role="test" name="tests/swoole_server/length/01.phpt" />
|
1629 | 1578 | <file role="test" name="tests/swoole_server/length/02.phpt" />
|
1630 | 1579 | <file role="test" name="tests/swoole_server/length/03.phpt" />
|
| 1580 | + <file role="test" name="tests/swoole_server/length/length_func.phpt" /> |
1631 | 1581 | <file role="test" name="tests/swoole_server/listen_fail.phpt" />
|
1632 | 1582 | <file role="test" name="tests/swoole_server/max_queued_bytes.phpt" />
|
1633 | 1583 | <file role="test" name="tests/swoole_server/max_request.phpt" />
|
|
1637 | 1587 | <file role="test" name="tests/swoole_server/mqtt/length_offset.phpt" />
|
1638 | 1588 | <file role="test" name="tests/swoole_server/mqtt/recv_fail.phpt" />
|
1639 | 1589 | <file role="test" name="tests/swoole_server/mqtt/send_big_pack.phpt" />
|
| 1590 | + <file role="test" name="tests/swoole_server/new_twice.phpt" /> |
1640 | 1591 | <file role="test" name="tests/swoole_server/object/getManagerPid.phpt" />
|
1641 | 1592 | <file role="test" name="tests/swoole_server/object/getMasterPid.phpt" />
|
1642 | 1593 | <file role="test" name="tests/swoole_server/object/getWorkerId.phpt" />
|
|
1681 | 1632 | <file role="test" name="tests/swoole_server/ssl/verify_01.phpt" />
|
1682 | 1633 | <file role="test" name="tests/swoole_server/ssl/verify_02.phpt" />
|
1683 | 1634 | <file role="test" name="tests/swoole_server/ssl/verify_03.phpt" />
|
| 1635 | + <file role="test" name="tests/swoole_server/start_twice.phpt" /> |
1684 | 1636 | <file role="test" name="tests/swoole_server/stats.phpt" />
|
1685 | 1637 | <file role="test" name="tests/swoole_server/stop.phpt" />
|
1686 | 1638 | <file role="test" name="tests/swoole_server/stop_in_workerStart.phpt" />
|
|
1691 | 1643 | <file role="test" name="tests/swoole_server/task/finish_timeout.phpt" />
|
1692 | 1644 | <file role="test" name="tests/swoole_server/task/huge_data.phpt" />
|
1693 | 1645 | <file role="test" name="tests/swoole_server/task/idle_worekr_num.phpt" />
|
| 1646 | + <file role="test" name="tests/swoole_server/task/invalid_packet.phpt" /> |
1694 | 1647 | <file role="test" name="tests/swoole_server/task/kill_01.phpt" />
|
1695 | 1648 | <file role="test" name="tests/swoole_server/task/kill_02.phpt" />
|
1696 | 1649 | <file role="test" name="tests/swoole_server/task/kill_task_worker_02.phpt" />
|
|
0 commit comments