From 9f42d98e92205a91dc89450cf8c6e67cb4c4fe1a Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Mon, 17 Oct 2011 18:15:19 +0000 Subject: Added special handling for Linksys files in acf-provisioning-linksys --- cgi-bin/provisioning.cgi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cgi-bin/provisioning.cgi b/cgi-bin/provisioning.cgi index e8af6be..ba8f9a6 100755 --- a/cgi-bin/provisioning.cgi +++ b/cgi-bin/provisioning.cgi @@ -8,6 +8,7 @@ local root = ENV["DOCUMENT_ROOT"] or "" local request_method = ENV["REQUEST_METHOD"] or "" local user_agent = ENV["HTTP_USER_AGENT"] or "" local ip_address = ENV["REMOTE_ADDR"] or "" +local server = ENV["SERVER_NAME"] or "" local log = io.open("/var/log/provisioning.log", "a+") log:write("Running provisioning.cgi ".. os.date() .. "\n") @@ -79,6 +80,19 @@ local basename = posix.basename(path_info) local mac = string.match(basename, "%x%x%x%x%x%x%x%x%x%x%x%x") if ( request_method == "GET" ) then + -- If it's a Linksys and corresponding file exists in /Linksys/ then serve it up, replacing $SERV with SERVER_NAME + if string.match(user_agent, "Linksys") and posix.stat(root.."/Linksys/"..basename) then + local f = io.open(root.."/Linksys/"..basename, "r") + if f then + log:write("Translating local file\n") + io.stdout:write("Content-Type: \n\n") + io.stdout:write((string.gsub(f:read("*a"), "%$SERV", server))) + f:close() + log:close() + os.exit() + end + end + -- don't even bother for files that don't contain a MAC if mac == nil then http_code(404) -- cgit v1.2.3