diff options
| author | ruki <[email protected]> | 2019-10-30 00:41:51 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-10-29 22:11:09 +0800 |
| commit | 5f388f24e9c0b2f62101667490a2032306148a35 (patch) | |
| tree | 8527647e2b1ec8d427088f278f0524bc53712831 /core/src | |
| parent | 0ad553e46eb001448cf5acac7ba6d26a11e39eff (diff) | |
fix socket.recv
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/xmake/io/socket_recv.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/core/src/xmake/io/socket_recv.c b/core/src/xmake/io/socket_recv.c index dce4da277..e1f48cf9b 100644 --- a/core/src/xmake/io/socket_recv.c +++ b/core/src/xmake/io/socket_recv.c @@ -34,7 +34,7 @@ * implementation */ -// real, data_or_errors = io.socket_recv(sock, size) +// real, data, errors = io.socket_recv(sock, size, prev_data) tb_int_t xm_io_socket_recv(lua_State* lua) { // check @@ -44,6 +44,7 @@ tb_int_t xm_io_socket_recv(lua_State* lua) if (!lua_isuserdata(lua, 1)) { lua_pushnumber(lua, -1); + lua_pushnil(lua); lua_pushliteral(lua, "invalid socket!"); return 2; } @@ -59,6 +60,7 @@ tb_int_t xm_io_socket_recv(lua_State* lua) if (size < 0) { lua_pushnumber(lua, -1); + lua_pushnil(lua); lua_pushfstring(lua, "invalid size(%ld)!", size); return 2; } @@ -86,5 +88,10 @@ tb_int_t xm_io_socket_recv(lua_State* lua) luaL_pushresult(&result); return 2; } + else if (prev_data && prev_size) + { + lua_pushlstring(lua, prev_data, prev_size); + return 2; + } return 1; } |
