Welcome! Log In Create A New Profile

Advanced

[PATCH] BUG/MINOR: lua: Socket.send causing 'close' needs 1 arguments.

Posted by sada 
---
src/hlua.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/hlua.c b/src/hlua.c
index 60cf8f94..0585a1e7 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -1629,14 +1629,12 @@ __LJMP static int hlua_socket_gc(lua_State *L)
/* The close function send shutdown signal and break the
* links between the stream and the object.
*/
-__LJMP static int hlua_socket_close(lua_State *L)
+__LJMP static int hlua_socket_close_helper(lua_State *L)
{
struct hlua_socket *socket;
struct appctx *appctx;
struct xref *peer;

- MAY_LJMP(check_args(L, 1, "close"));
-
socket = MAY_LJMP(hlua_checksocket(L, 1));

/* Check if we run on the same thread than the xreator thread.
@@ -1659,6 +1657,14 @@ __LJMP static int hlua_socket_close(lua_State *L)
return 0;
}

+/* The close function calls close_helper.
+ */
+__LJMP static int hlua_socket_close(lua_State *L)
+{
+ MAY_LJMP(check_args(L, 1, "close"));
+ return hlua_socket_close_helper(L);
+}
+
/* This Lua function assumes that the stack contain three parameters.
* 1 - USERDATA containing a struct socket
* 2 - INTEGER with values of the macro defined below
@@ -1990,7 +1996,7 @@ static int hlua_socket_write_yield(struct lua_State *L,int status, lua_KContext
if (len == -1)
s->req.flags |= CF_WAKE_WRITE;

- MAY_LJMP(hlua_socket_close(L));
+ MAY_LJMP(hlua_socket_close_helper(L));
lua_pop(L, 1);
lua_pushinteger(L, -1);
xref_unlock(&socket->xref, peer);
--
2.17.0
Hi,
Did you get a chance to review the patch.

Thanks,
Sada.

On Fri, Apr 13, 2018 at 4:56 PM, sada <[email protected]> wrote:

> ---
> src/hlua.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/src/hlua.c b/src/hlua.c
> index 60cf8f94..0585a1e7 100644
> --- a/src/hlua.c
> +++ b/src/hlua.c
> @@ -1629,14 +1629,12 @@ __LJMP static int hlua_socket_gc(lua_State *L)
> /* The close function send shutdown signal and break the
> * links between the stream and the object.
> */
> -__LJMP static int hlua_socket_close(lua_State *L)
> +__LJMP static int hlua_socket_close_helper(lua_State *L)
> {
> struct hlua_socket *socket;
> struct appctx *appctx;
> struct xref *peer;
>
> - MAY_LJMP(check_args(L, 1, "close"));
> -
> socket = MAY_LJMP(hlua_checksocket(L, 1));
>
> /* Check if we run on the same thread than the xreator thread.
> @@ -1659,6 +1657,14 @@ __LJMP static int hlua_socket_close(lua_State *L)
> return 0;
> }
>
> +/* The close function calls close_helper.
> + */
> +__LJMP static int hlua_socket_close(lua_State *L)
> +{
> + MAY_LJMP(check_args(L, 1, "close"));
> + return hlua_socket_close_helper(L);
> +}
> +
> /* This Lua function assumes that the stack contain three parameters.
> * 1 - USERDATA containing a struct socket
> * 2 - INTEGER with values of the macro defined below
> @@ -1990,7 +1996,7 @@ static int hlua_socket_write_yield(struct lua_State
> *L,int status, lua_KContext
> if (len == -1)
> s->req.flags |= CF_WAKE_WRITE;
>
> - MAY_LJMP(hlua_socket_close(L));
> + MAY_LJMP(hlua_socket_close_helper(L));
> lua_pop(L, 1);
> lua_pushinteger(L, -1);
> xref_unlock(&socket->xref, peer);
> --
> 2.17.0
>
>
Sorry, only registered users may post in this forum.

Click here to login