From: Aurelien DARRAGON Date: Mon, 3 Apr 2023 08:43:17 +0000 (+0200) Subject: MINOR: hlua_fcn: add Server.get_pend_conn() and Server.get_cur_sess() X-Git-Tag: v2.8-dev10~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fc759b4ac22a3599c308425799af581365e8e248;p=thirdparty%2Fhaproxy.git MINOR: hlua_fcn: add Server.get_pend_conn() and Server.get_cur_sess() Server.get_pend_conn: number of pending connections to the server Server.get_cur_sess: number of current sessions handled by the server Lua documentation was updated accordingly. --- diff --git a/doc/lua-api/index.rst b/doc/lua-api/index.rst index fd3d47c77f..42c7fa65e9 100644 --- a/doc/lua-api/index.rst +++ b/doc/lua-api/index.rst @@ -1174,6 +1174,22 @@ Server class server. :returns: a boolean +.. js:function:: Server.get_cur_sess(sv) + + Return the number of currently active sessions on the server + + :param class_server sv: A :ref:`server_class` which indicates the manipulated + server. + :returns: an integer + +.. js:function:: Server.get_pend_conn(sv) + + Return the number of pending connections to the server + + :param class_server sv: A :ref:`server_class` which indicates the manipulated + server. + :returns: an integer + .. js:function:: Server.set_maxconn(sv, weight) Dynamically change the maximum connections of the server. See the management diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c index 7150b0ca34..3540cbdbb0 100644 --- a/src/hlua_fcn.c +++ b/src/hlua_fcn.c @@ -1119,6 +1119,34 @@ int hlua_server_is_dynamic(lua_State *L) return 1; } +int hlua_server_get_cur_sess(lua_State *L) +{ + struct server *srv; + + srv = hlua_check_server(L, 1); + if (srv == NULL) { + lua_pushnil(L); + return 1; + } + + lua_pushinteger(L, srv->cur_sess); + return 1; +} + +int hlua_server_get_pend_conn(lua_State *L) +{ + struct server *srv; + + srv = hlua_check_server(L, 1); + if (srv == NULL) { + lua_pushnil(L); + return 1; + } + + lua_pushinteger(L, srv->queue.length); + return 1; +} + int hlua_server_set_maxconn(lua_State *L) { struct server *srv; @@ -1515,6 +1543,8 @@ int hlua_fcn_new_server(lua_State *L, struct server *srv) hlua_class_function(L, "is_draining", hlua_server_is_draining); hlua_class_function(L, "is_backup", hlua_server_is_backup); hlua_class_function(L, "is_dynamic", hlua_server_is_dynamic); + hlua_class_function(L, "get_cur_sess", hlua_server_get_cur_sess); + hlua_class_function(L, "get_pend_conn", hlua_server_get_pend_conn); hlua_class_function(L, "set_maxconn", hlua_server_set_maxconn); hlua_class_function(L, "get_maxconn", hlua_server_get_maxconn); hlua_class_function(L, "set_weight", hlua_server_set_weight);