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


Reply via email to