summaryrefslogtreecommitdiffstats
path: root/src/civetweb/test/page_keep_alive.lua
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/civetweb/test/page_keep_alive.lua
parentInitial commit. (diff)
downloadceph-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/page_keep_alive.lua')
-rw-r--r--src/civetweb/test/page_keep_alive.lua34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/civetweb/test/page_keep_alive.lua b/src/civetweb/test/page_keep_alive.lua
new file mode 100644
index 000000000..d869ce46f
--- /dev/null
+++ b/src/civetweb/test/page_keep_alive.lua
@@ -0,0 +1,34 @@
+-- Set keep_alive. The return value specifies if this is possible at all.
+canKeepAlive = mg.keep_alive(true)
+
+if canKeepAlive then
+ -- Create the entire response in a string variable first. Content-Length will be set to the length of this string.
+ reply = [[
+ <html><body>
+ <p>This is a Lua script supporting html keep-alive with the
+ <a href="https://github.com/civetweb/civetweb/">CivetWeb web server</a>.
+ </p>
+ <p>It works by setting the Content-Length header field properly.
+ </body></html>
+ ]]
+else
+ reply = "<html><body>Keep alive not possible!</body></html>"
+end
+
+-- First send the http headers
+mg.write("HTTP/1.1 200 OK\r\n")
+mg.write("Content-Type: text/html\r\n")
+mg.write("Date: " .. os.date("!%a, %d %b %Y %H:%M:%S") .. " GMT\r\n")
+mg.write("Cache-Control: no-cache\r\n")
+
+if canKeepAlive then
+ mg.write("Content-Length: " .. tostring(string.len(reply)) .. "\r\n")
+ mg.write("Connection: keep-alive\r\n")
+else
+ mg.write("Connection: close\r\n")
+end
+mg.write("\r\n")
+
+-- Finally send the content
+mg.write(reply)
+