From 94e47b2838a88df3ba8e0d1c74746d62bffa9aef Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Wed, 22 Feb 2017 14:44:53 +0000 Subject: Fix error handling in get_config --- freeradius3-model.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/freeradius3-model.lua b/freeradius3-model.lua index c7ac6e7..876ad1f 100644 --- a/freeradius3-model.lua +++ b/freeradius3-model.lua @@ -28,14 +28,15 @@ local is_valid_filename = function(filename) end local get_config = function(filecontent) + local errtxt if not filecontent then + filecontent = {} local res, err = pcall(function() local code, cmdresult = subprocess.call_capture({"radiusd", "-XC"}) if 0 ~= code then - return nil, string.match(cmdresult, "([^\n]+)\n$") + errtxt = string.match(cmdresult, "([^\n]+)\n?$") end - filecontent = {} - for line in string.gmatch(cmdresult, "[^\n]+") do + for line in string.gmatch(cmdresult or "", "[^\n]+") do if string.match(line, "^including") then elseif string.match(line, "^Using") then elseif string.match(line, "^reading") then @@ -112,7 +113,7 @@ local get_config = function(filecontent) return result, i+1 end - return (parselines(1)), nil + return (parselines(1)), errtxt end local function replacetags(configtable, value) -- cgit v1.2.3