mirror of
				https://git.haproxy.org/git/haproxy.git/
				synced 2025-10-31 00:21:00 +01:00 
			
		
		
		
	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)
 |