From: Aurelien DARRAGON Date: Wed, 29 Mar 2023 08:49:30 +0000 (+0200) Subject: MINOR: hlua_fcn: add Server.is_dynamic() X-Git-Tag: v2.8-dev10~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a03dee36f5ae46094ef4a391b5512431480f291;p=thirdparty%2Fhaproxy.git MINOR: hlua_fcn: add Server.is_dynamic() This function returns true if the current server is dynamic, meaning that it was instantiated at runtime (ie: from the cli) --- diff --git a/doc/lua-api/index.rst b/doc/lua-api/index.rst index deef2618d1..5c05871aa1 100644 --- a/doc/lua-api/index.rst +++ b/doc/lua-api/index.rst @@ -1166,6 +1166,14 @@ Server class server. :returns: a boolean +.. js:function:: Server.is_dynamic(sv) + + Return true if the server was instantiated at runtime (e.g.: from the cli) + + :param class_server sv: A :ref:`server_class` which indicates the manipulated + server. + :returns: a boolean + .. 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 dc9ded4aa0..61eb580f35 100644 --- a/src/hlua_fcn.c +++ b/src/hlua_fcn.c @@ -1086,6 +1086,20 @@ int hlua_server_is_backup(lua_State *L) return 1; } +int hlua_server_is_dynamic(lua_State *L) +{ + struct server *srv; + + srv = hlua_check_server(L, 1); + if (srv == NULL) { + lua_pushnil(L); + return 1; + } + + lua_pushboolean(L, (srv->flags & SRV_F_DYNAMIC)); + return 1; +} + int hlua_server_set_maxconn(lua_State *L) { struct server *srv; @@ -1437,6 +1451,7 @@ int hlua_fcn_new_server(lua_State *L, struct server *srv) hlua_class_function(L, "get_rid", hlua_server_get_rid); 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, "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);