Skip to content
Snippets Groups Projects
Select Git revision
  • 68e8d3257076def393d75d988588e4c9d01eb7d3
  • experimental
  • master
  • v2021.1.2-ffs
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • v2020.2.3-ffs
  • nrbffs/fastd-remove-delay
  • v2020.2.2-ffs
  • v2020.2.1-ffs
  • v2020.2-ffs
  • v2020.2.x
  • v2020.1.3-ffs
  • v2020.1.1-ffs
  • v2020.1-ffs
  • v2019.1.2-ffs
  • v2019.1.1-ffs
  • nrb/test-radv-filter
  • v2019.1-ffs
  • nrbffs/netgear-ex6120
  • v2021.1.2-ffs0.2
  • v2021.1.2-ffs0.1
  • v2021.1.1-ffs0.4
  • v2021.1.1-ffs0.3
  • v2021.1.1-ffs0.2
  • v2021.1.1-ffs0.1
  • v2021.1-ffs0.1
  • v2020.2.3-ffs0.3
  • v2020.2.3-ffs0.2
  • v2020.2.3-ffs0.1
  • v2020.2.2-ffs0.1
  • v2020.2.1-ffs0.1
  • v2020.2-ffs0.1
  • v2020.2
  • v2020.2.x-ffs0.1
  • v2020.1.3-ffs0.1
  • v2020.1.1-ffs0.1
  • v2020.1-ffs0.1
  • v2019.1.2-ffs0.1
  • v2019.1.1-ffs0.1
41 results

dispatcher.lua

Blame
  • Forked from firmware / FFS Gluon
    Source project has a limited visibility.
    • Matthias Schiffer's avatar
      f3960eeb
      gluon-web: improve error handling of parse_message_body() · f3960eeb
      Matthias Schiffer authored
      Actually raise an error and turn it into an HTTP 400 return code when
      something goes wrong, rather than ignoring the error.
      
      We also improve the conditions under which errors are thrown before
      pump() is called: We don't need to check for the multipart/form-data
      content-type twice, and a POST without this content-type is now always
      an error.
      f3960eeb
      History
      gluon-web: improve error handling of parse_message_body()
      Matthias Schiffer authored
      Actually raise an error and turn it into an HTTP 400 return code when
      something goes wrong, rather than ignoring the error.
      
      We also improve the conditions under which errors are thrown before
      pump() is called: We don't need to check for the multipart/form-data
      content-type twice, and a POST without this content-type is now always
      an error.
    feature_lib.lua 989 B
    local M = {}
    
    local function to_keys(t)
    	local ret = {}
    	for _, v in ipairs(t) do
    		ret[v] = true
    	end
    	return ret
    end
    
    local function collect_keys(t)
    	local ret = {}
    	for v in pairs(t) do
    		table.insert(ret, v)
    	end
    	return ret
    end
    
    function M.get_packages(file, features)
    	local feature_table = to_keys(features)
    
    	local funcs = {}
    
    	function funcs._(feature)
    		if feature_table[feature] then
    			return feature
    		end
    	end
    
    	local nodefault = {}
    	local packages = {}
    	function funcs.feature(match, options)
    		if not match then
    			return
    		end
    
    		if options.nodefault then
    			nodefault[match] = true
    		end
    		for _, package in ipairs(options.packages or {}) do
    			packages[package] = true
    		end
    	end
    
    	-- Evaluate the feature definition file
    	local f = loadfile(file)
    	setfenv(f, funcs)
    	f()
    
    	-- Handle default packages
    	for _, feature in ipairs(features) do
    		if not nodefault[feature] then
    			packages['gluon-' .. feature] = true
    		end
    	end
    
    	return collect_keys(packages)
    end
    
    return M