diff options
Diffstat (limited to 'www/cgi-bin')
| -rwxr-xr-x | www/cgi-bin/cgi.lua | 52 | ||||
| -rwxr-xr-x | www/cgi-bin/req-params.lua | 38 | ||||
| -rwxr-xr-x | www/cgi-bin/test.lua | 43 |
3 files changed, 0 insertions, 133 deletions
diff --git a/www/cgi-bin/cgi.lua b/www/cgi-bin/cgi.lua deleted file mode 100755 index 5033984..0000000 --- a/www/cgi-bin/cgi.lua +++ /dev/null @@ -1,52 +0,0 @@ -local cgi={} - -cgi.newline=false - -function cgi.tag(key,value,attrib) - local ret_str="<"..key - - if (attrib) then - for a_key,a_val in pairs(attrib) do - ret_str=ret_str.." "..a_key..'="'..a_val..'"' - end - end - - ret_str=ret_str..">" - if cgi.newline==true then ret_str=ret_str.."\n" end - - ret_str=ret_str..value - - if cgi.newline==true then ret_str=ret_str.."\n" end - - ret_str=ret_str.."</"..key..">" - - if cgi.newline==true then ret_str=ret_str.."\n" end - - return ret_str -end - -local function get_phrase(code) - local cases={ - [200]="OK", - [401]="Unauthorized", - } - if(cases[code]) then return cases[code] else return "" end -end - -function cgi.header(code,headers) - print("Status: "..code.." "..get_phrase(code)) - for h_name,header in pairs(headers) do - print(h_name..": "..header) - end - print() -end - -function cgi.render(content,headers,code) - headers["Content-Length"] = tostring(content:len()+1) - cgi.header(code,headers) - print(content); -end - -_G.m = cgi.tag - -return cgi diff --git a/www/cgi-bin/req-params.lua b/www/cgi-bin/req-params.lua deleted file mode 100755 index 077a7e4..0000000 --- a/www/cgi-bin/req-params.lua +++ /dev/null @@ -1,38 +0,0 @@ --- /var/www/cgi-bin/cgi.lua --- Simple Lua CGI helper for GET and POST - -local params = {} - --- Parse URL-encoded query string into a table -local function parse_query(qs) - local t = {} - for k, v in string.gmatch(qs or "", "([^&=]+)=([^&]*)") do - -- URL-decode - k = k:gsub("+", " "):gsub("%%(%x%x)", function(h) return string.char(tonumber(h,16)) end) - v = v:gsub("+", " "):gsub("%%(%x%x)", function(h) return string.char(tonumber(h,16)) end) - t[k] = v - end - return t -end - --- GET parameters -params.get_params = parse_query(os.getenv("QUERY_STRING")) - --- POST parameters -params.post_params = {} -local content_length = tonumber(os.getenv("CONTENT_LENGTH") or 0) -if content_length > 0 then - local body = io.read(content_length) - params.post_params = parse_query(body) -end - --- Convenience functions -function params.get(key) return params.get_params[key] end -function params.post(key) return params.post_params[key] end - --- Combine GET+POST if you want -function params.param(key) - return params.post(key) or params.get(key) -end - -return params diff --git a/www/cgi-bin/test.lua b/www/cgi-bin/test.lua deleted file mode 100755 index c86b3f5..0000000 --- a/www/cgi-bin/test.lua +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env luajit - -local cgi = require("cgi") -local req_params = require("req-params") -local str="" - -if req_params.param("password") and req_params.param("password") == "401" then - cgi.render("401 Unauthorized",{["Content-Type"]="text/html"},401) - return -end - --- Access GET parameters -if next(req_params.get_params) then - str=str..m("h2","GET parameters:") - for k,v in pairs(req_params.get_params) do - str=str..k.." = "..v.."<br>" - end -end - --- Access POST parameters -if next(req_params.post_params) then - str=str..m("h2","POST parameters:") - for k,v in pairs(req_params.post_params) do - str=str..k.." = "..v.."<br>" - end -end - --- Combined helper -local name = req_params.param("name") or "anonymous" -str=str..m("p","Hello, "..name.."!") - -cgi.render(m("html", - m("head", - m("title","ssg test") - ).. - m("body", - m("h1","Hello from Lua CGI").. - m("p", "ssg test").. - m("p",_VERSION).. - str - ) -), -{["Content-Type"]="text/html"},200)
\ No newline at end of file |
