mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-13 06:54:37 +00:00
4e172c93f9
As discussed in GitHub issue #624 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.
26 lines
693 B
Lua
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)
|