diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/civetweb/test/page2.lua | |
parent | Initial commit. (diff) | |
download | ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.tar.xz ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/civetweb/test/page2.lua')
-rw-r--r-- | src/civetweb/test/page2.lua | 91 |
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>
+]])
|