--- 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