diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9d5122d448c..ab643d9d93e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,7 @@
PROJECT(libswoole)
ENABLE_LANGUAGE(ASM)
-SET(SWOOLE_VERSION 4.3.0)
+SET(SWOOLE_VERSION 4.3.1)
SET(SWOOLE_CLFLAGS pthread rt dl ssl crypt crypto)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
diff --git a/include/swoole.h b/include/swoole.h
index f044952c8e2..28d3fdf1d2f 100644
--- a/include/swoole.h
+++ b/include/swoole.h
@@ -89,8 +89,8 @@ int clock_gettime(clock_id_t which_clock, struct timespec *t);
#define SWOOLE_MAJOR_VERSION 4
#define SWOOLE_MINOR_VERSION 3
#define SWOOLE_RELEASE_VERSION 1
-#define SWOOLE_EXTRA_VERSION "alpha"
-#define SWOOLE_VERSION "4.3.1-alpha"
+#define SWOOLE_EXTRA_VERSION ""
+#define SWOOLE_VERSION "4.3.1"
#define SWOOLE_VERSION_ID 40301
#define SWOOLE_BUG_REPORT \
"A bug occurred in Swoole-v" SWOOLE_VERSION ", please report it.\n"\
diff --git a/package.xml b/package.xml
index 4f9750b7268..7fa3dce42f9 100644
--- a/package.xml
+++ b/package.xml
@@ -36,10 +36,10 @@
shenzhe163@gmail.comyes
- 2019-03-05
+ 2019-03-12
- 4.3.0
+ 4.3.14.0
@@ -48,78 +48,26 @@
Apache2.0
- New Features
- ---
- + `Co::getContext` to get the coroutine context object ([RFC-1018](https://github.com/swoole/rfc-chinese/issues/45)) (@twose)
- + `Co::getPcid` to get the parent coroutine ID ([RFC-1017](https://github.com/swoole/rfc-chinese/issues/41)) (@twose)
- + `Co::exists` to know if a coroutine exists (@twose)
- + Runtime Coroutine Hook supports `stream_select` (#2358) (@matyhtf)
- + `max_wait_time` configuration support in BASE mode (#2282) (@shiguangqi)
- + Support for one-way delivery tasks in the `Master/Manager/User` process ([RFC-1015](https://github.com/swoole/rfc-chinese/issues/38)) (@matyhtf)
- + `Co\Socket` has two new APIs `recvAll` and `sendAll` to ensure complete receive/send data until completion or error (3700cbb) (@twose)
- + `Process` supports the coroutine mode, please refer to ([Use Coroutine in Process](https://wiki.swoole.com/wiki/page/p-process_coro.html))
- + `Process->exportSocket` to export `Co\Socket` object (91d3621) (@matyhtf)
- + Added `Server->getCallback` method to get the callback function of the specified name of the Server (@matyhtf)
-
Enhancement
---
- * The default max number of connections is 100K (instead of 10K) now. If the system configuration is less than this number, use the system configuration first (3d2e387) (@twose)
- * Optimize the code for the `Timer` module, which now runs faster and accepts any number of arguments (#2347) (@twose)
- * `Co::stats` will show more information such as the number of events, the number of registered signals, the number of AIO tasks, etc. (@matyhtf)
- * `Co::getBackTrace` with no params is equivalent to `debug_backtrace` (@twose)
- * `Co::listCoroutines` is renamed to `Co::list`, but the original name is still reserved as an alias (Backward compatibility) (@twose)
- * `Table::exist`, `Server::exist` are renamed to `exists`, but the original name is still reserved as aliases (Backward compatibility) (@twose)
- * Redis will automatically authenticate and select the corresponding database when it is automatically reconnected. Add API: `getOptions`, `getAuth`, `getDBNum` (#2303) (fdac8a3) (@windrunner414 & @twose)
- * The default Socket buffer size on FreeBSD should be 2M (750a29c) (@twose)
- * `Server->stats` will show `worker_dispatch_count` which can get the number of requests submitted by the master to the current process. The number of requests in the queue can be got by `worker_dispatch_count - worker_request_count` (a353808) (@matyhtf)
- * Remove `Nghttp2` dependencies, no longer need to install it, configuring compilation parameters to open
- * Coroutines now have no max nesting level limitation (there are no real nesting relations between coroutines) (5458cbc) (@twose)
- * When the coroutine reaches the max limitation, the HTTP server will return a 503 error indicating that the service is temporarily unavailable (ebd377f) (@twose)
- * `defer` will now accept a parameter whose value is the return value at the end of the coroutine ([example](https://github.com/swoole/swoole-src/commit/ef978b3b432615b0f392958145d999f4e66584eb)) (@twose)
+ * After `Server` enabled `ssl_verify_peer`, the client without the certificate will be forcibly disconnected (31a038f) (@shiguangqi)
+ * `MySQL\Statement::execute` can accept null arguments (0207ebc) (@twose)
+ * Now part of the fatal error message caused by illegal code will show the call stack trace, the warning will be more friendly (such as calling the coroutine method outside the coroutine) (@twose)
Fixed
---
- * Fixed error when the task method passed a null argument (#2366) (@twose)
- * Fixed Http client send big data incomplete (#2360) (@twose)
- * Fixed the bug that unprocessed data in the buffer was lost when the TCP client used the eof protocol (a59ae39) (@twose)
- * Fixed async security of Server Reload (022f859) (@matyhtf)
- * Fixed the index value of the connection iterator (b066146) (@twose)
- * Fixed the bug that Set-Cookie special characters are too long to be outputed (#2368) (@mabu233 & @twose)
- * Fixed the bug that Http client did not decode the cookie (duplicated encode when sent) (069ca5d) (@twose)
- * Fixed Http client download with timeout lead to coredump (#2377) (@matyhtf & @twose)
- * Fixed `__call` and `call_user_func*` lead to coredump when calling MySQL client method (#2387) (@matyhtf)
- * Fixed coredump when Http2 client header name passed in a number (#2375) (@mabu233)
- * Fixed `Swoole\Event::dispatch` behavior not as expected (#2390) (@matyhtf)
- * Fixed `Socks5` proxy handshake failed (94ef96c) (@twose)
- * Fixed a memory read error caused by a connection failure in a low-version Linux kernel (5adf625) (@matyhtf & @twose)
- * Fixed the bug that the server used the timer in the BASE single-process mode not work (82eca13) (@twose)
- * Fixed compilation failure due to unstable ZendAPI in low-version (768b8a7) (@shiguangqi)
- * Fixed `EINVAL` when calling `sendto` (#2395) (@junwei)
-
- Unsupported
- ---
- - Create server or customs process after using async file IO are not allowed
- - Create server or customs process in coroutine are not allowed
-
- Removed
- ---
- - `Websocket\Server->exists` only shows if the connection exists. Please use the `isEstablished` method to get if it is a Websocket client.
- - Remove the `swoole.fast_serialize` configuration item
- - Removed the PHP Warning when the `Co\Client` method return failed
- - Remove the `Server->gzip` method
- - Remove `PicoHttpParser` support
-
- Remove async modules
- ---
- Remove all async modules, separate asynchronous extensions to [async-ext](https://github.com/swoole/async-ext):
-
- - Async functions
- - MySQL
- - Redis
- - Http\Client
- - Memory\Pool
- - MsgQueue
- - RingQueue
+ * Fixed`swSignalfd_set` unexpected result (#2397) (@junwei-qu)
+ * Fixed `Socks5`proxy memory error (9dd0b7c) (@twose)
+ * Fixed`Redis` backward compatibility (connect timeou configuration does not work) (21f34cc) (@twose)
+ * Fixed `Server` reload BUG (31a038f) (@shiguangqi)
+ * Fixed `Co\Http\Client` with defer mode and call `recv` with the timeout agrument but timeout does not work (2c1cd83) (@twose)
+ * Fixed call the coroutine method out side the coroutine core dump (2bf6b09) (@twose)
+ * Fixed Swoole + PHP73 with `pcre.jit` on MacOS core dump (17ccaf3) (@twose)
+ * Fixed build failed on 32-bit env (#2411) (@twose)
+ * Fixed `Co\Socket` construct failed (@twose)
+ * Fixed`Process\Pool` system msg queue not work (#2424) (@matyhtf)
+ * Fixed `user` and `group` configurations not work in `Server` with BASE mode (#2402) (@matyhtf)
+ * Fixed `Co\MySQL` connect timeout coredump on low version of Linux (d6736e4) (@twose)
@@ -173,11 +121,14 @@
+
+
+
@@ -351,6 +302,8 @@
+
+
@@ -735,6 +688,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -812,10 +804,10 @@
+
+
-
-
@@ -843,6 +835,7 @@
+
@@ -862,49 +855,11 @@
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -932,7 +887,6 @@
-
@@ -983,6 +937,7 @@
+
@@ -1002,6 +957,7 @@
+
@@ -1010,6 +966,7 @@
+
@@ -1077,10 +1034,10 @@
-
+
@@ -1186,6 +1143,7 @@
+
@@ -1231,6 +1189,7 @@
+
@@ -1240,6 +1199,7 @@
+
@@ -1279,6 +1239,7 @@
+
@@ -1321,13 +1282,16 @@
+
+
+
@@ -1345,6 +1309,7 @@
+
@@ -1365,7 +1330,7 @@
-
+
diff --git a/tests/start.sh b/tests/start.sh
index d22626dca88..aa8e4992741 100755
--- a/tests/start.sh
+++ b/tests/start.sh
@@ -40,7 +40,7 @@ elif [ "${1}"x == "base"x ]; then
\
swoole_coroutine \
swoole_coroutine_util \
- swoole_coroutine_channel \
+ swoole_channel_coro \
swoole_client_coro \
swoole_http_client_coro \
swoole_http2_client_coro \