From 6590213dc4d84bcfc3126618eec2432e187bece6 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Tue, 29 Jan 2013 16:27:08 +0000 Subject: Better validation of config interfaces --- dnsmasq-model.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dnsmasq-model.lua b/dnsmasq-model.lua index b2a6465..d58753d 100644 --- a/dnsmasq-model.lua +++ b/dnsmasq-model.lua @@ -159,12 +159,20 @@ local function validateconfig(config) success = false end end + + local interfaces = {} + local interfacescontroller = APP:new("alpine-baselayout/interfaces") + local ints = interfacescontroller.model.get_interfaces() + interfacescontroller:destroy() + for i,v in ipairs(ints.value) do + interfaces[v] = i + end testlist(config.value.domain, function(v) return string.find(v, "%s") end, "Cannot contain spaces") - testlist(config.value.interface, function(v) return string.find(v, "%W") end, "Illegal character") + testlist(config.value.interface, function(v) return not interfaces[v] end, "Invalid interface") testlist(config.value.listen_address, function(v) return not validator.is_ipv4(v) end, "Invalid IP Address") testlist(config.value.dhcp_range, function(v) return string.find(v, "%s") end, "Cannot contain spaces") - testlist(config.value.no_dhcp_interface, function(v) return string.find(v, "%W") end, "Illegal character") + testlist(config.value.no_dhcp_interface, function(v) return not interfaces[v] end, "Invalid interface") testlist(config.value.dhcp_host, function(v) return string.find(v, "%s") end, "Cannot contain spaces") testlist(config.value.dhcp_option, function(v) return string.find(v, "%s") end, "Cannot contain spaces") testlist(config.value.mx_host, function(v) return string.find(v, "%s") end, "Cannot contain spaces") -- cgit v1.2.3