1
0
mirror of http://git.haproxy.org/git/haproxy.git/ synced 2025-03-25 04:17:42 +00:00
haproxy/reg-tests/lua/set_var.lua
Tim Duesterhus 4e172c93f9 MEDIUM: lua: Add ifexist parameter to set_var
As discussed in GitHub issue  Lua scripts should not use
variables that are never going to be read, because the memory
for variable names is never going to be freed.

Add an optional `ifexist` parameter to the `set_var` function
that allows a Lua developer to set variables that are going to
be ignored if the variable name was not used elsewhere before.

Usually this mean that there is no `var()` sample fetch for the
variable in question within the configuration.
2020-05-25 08:12:35 +02:00

26 lines
693 B
Lua

core.register_service("set_var", "http", function(applet)
local var_name = applet.headers["var"][0]
local result = applet:set_var(var_name, "value")
if result then
applet:set_status(202)
else
applet:set_status(400)
end
applet:add_header("echo", applet:get_var(var_name) or "(nil)")
applet:start_response()
applet:send("")
end)
core.register_service("set_var_ifexist", "http", function(applet)
local var_name = applet.headers["var"][0]
local result = applet:set_var(var_name, "value", true)
if result then
applet:set_status(202)
else
applet:set_status(400)
end
applet:add_header("echo", applet:get_var(var_name) or "(nil)")
applet:start_response()
applet:send("")
end)