summaryrefslogtreecommitdiffstats
path: root/src/civetweb/test/page2.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/civetweb/test/page2.lua')
-rw-r--r--src/civetweb/test/page2.lua91
1 files changed, 91 insertions, 0 deletions
diff --git a/src/civetweb/test/page2.lua b/src/civetweb/test/page2.lua
new file mode 100644
index 000000000..9c4a5b776
--- /dev/null
+++ b/src/civetweb/test/page2.lua
@@ -0,0 +1,91 @@
+mg.write("HTTP/1.0 200 OK\r\n")
+mg.write("Content-Type: text/html\r\n")
+mg.write("\r\n")
+mg.write([[<html><body>
+
+<p>This is another example of a Lua server page, served by
+<a href="https://github.com/civetweb/civetweb">CivetWeb web server</a>.
+</p><p>
+The following features are available:
+<ul>
+]])
+
+function print_if_available(tab, name)
+ if tab then
+ mg.write("<li>" .. name .. "</li>\n")
+ end
+end
+
+function recurse(tab, excl)
+ excl = excl or {}
+ mg.write("<ul>\n")
+ for k,v in pairs(tab) do
+ if type(v) == "table" then
+ mg.write("<li>" .. tostring(k) .. ":</li>\n")
+ if excl[v] then
+ -- cyclic
+ else
+ excl[v] = true
+ recurse(v, excl)
+ excl[v] = false
+ end
+ else
+ mg.write("<li>" .. tostring(k) .. " = " .. tostring(v) .. "</li>\n")
+ end
+ end
+ mg.write("</ul>\n")
+end
+
+-- Print Lua version and available libraries
+mg.write("<li>" .. _VERSION .. " with the following standard libraries</li>\n")
+mg.write("<ul>\n")
+libs = {"string", "math", "table", "io", "os", "bit32", "utf8", "package", "coroutine", "debug"};
+for _,n in ipairs(libs) do
+ print_if_available(_G[n], n);
+end
+mg.write("</ul>\n")
+print_if_available(sqlite3, "sqlite3 binding")
+print_if_available(lfs, "lua file system")
+
+--recurse(_G)
+
+-- Print mg library
+libname = "mg"
+print_if_available(_G[libname], libname .. " library")
+recurse(_G[libname])
+
+-- Print connect function
+print_if_available(connect, "connect function")
+
+-- Get all server options
+mg.write("<li>server options</li>\n")
+recurse(mg.get_option())
+
+mg.write("</ul></p>\n");
+mg.write("<p> Today is " .. os.date("%A") .. "</p>\n");
+
+l = mg.request_info.content_length
+if l then
+ mg.write("<p>Content-Length = "..l..":<br>\n<pre>\n")
+ mg.write(mg.read())
+ mg.write("\n</pre>\n</p>\n")
+end
+
+mg.write("<p>\n");
+
+ if lfs then
+ mg.write("Files in " .. lfs.currentdir())
+ mg.write("\n<ul>\n")
+ for f in lfs.dir(".") do
+ local mime = mg.get_mime_type(f)
+ mg.write("<li>" .. f .. " (" .. mime .. ")</li>\n")
+ local at = lfs.attributes(f);
+ recurse(at)
+ end
+ mg.write("</ul>\n")
+end
+
+mg.write([[
+</p>
+</body></html>
+]])