diff --git a/doc/lua-api/index.rst b/doc/lua-api/index.rst index 66d5da67f..deef2618d 100644 --- a/doc/lua-api/index.rst +++ b/doc/lua-api/index.rst @@ -1158,6 +1158,14 @@ Server class server. :returns: a boolean +.. js:function:: Server.is_backup(sv) + + Return true if the server is a backup server + + :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 639a1ef01..dc9ded4aa 100644 --- a/src/hlua_fcn.c +++ b/src/hlua_fcn.c @@ -1072,6 +1072,20 @@ int hlua_server_is_draining(lua_State *L) return 1; } +int hlua_server_is_backup(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_BACKUP)); + return 1; +} + int hlua_server_set_maxconn(lua_State *L) { struct server *srv; @@ -1422,6 +1436,7 @@ int hlua_fcn_new_server(lua_State *L, struct server *srv) hlua_class_function(L, "get_puid", hlua_server_get_puid); 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, "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);