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 fd3d47c..42c7fa6 100644
--- a/doc/lua-api/index.rst
+++ b/doc/lua-api/index.rst
@@ -1174,6 +1174,22 @@
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 7150b0c..3540cbd 100644
--- a/src/hlua_fcn.c
+++ b/src/hlua_fcn.c
@@ -1119,6 +1119,34 @@
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 @@
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);