]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/test/filehandler.lua
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / third_party / prometheus-cpp / 3rdparty / civetweb / test / filehandler.lua
diff --git a/ceph/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/test/filehandler.lua b/ceph/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/test/filehandler.lua
new file mode 100644 (file)
index 0000000..57bf411
--- /dev/null
@@ -0,0 +1,93 @@
+function send_ok()\r
+       mg.write("HTTP/1.0 200 OK\r\n")\r
+       mg.write("Connection: close\r\n")\r
+       mg.write("Date: " .. os.date("%a, %d %b %Y %H:%M:%S GMT") .. "\r\n")\r
+end\r
+\r
+\r
+function send_not_found()\r
+       mg.write("HTTP/1.0 404 Not Found\r\n")\r
+       mg.write("Connection: close\r\n")\r
+       mg.write("Date: " .. os.date("%a, %d %b %Y %H:%M:%S GMT") .. "\r\n")\r
+end\r
+\r
+\r
+handler = "filehandler.lua"\r
+sub_uri = mg.request_info.uri:sub(#handler+2)\r
+filename = "D:\\civetweb\\civetweb" .. sub_uri\r
+attr = lfs.attributes(filename)\r
+\r
+--[[\r
+if not attr then\r
+       send_not_found()\r
+       mg.write("\r\n")\r
+       mg.write("File " .. sub_uri .. " not available")\r
+       return\r
+end\r
+]]\r
+\r
+if mg.request_info.request_method == "GET" then\r
+       -- send_file will handle 404 internally\r
+       mg.send_file(filename)\r
+       return\r
+\r
+elseif mg.request_info.request_method == "HEAD" then\r
+       -- send_file can handle "GET" and "HEAD"\r
+       mg.send_file(filename)\r
+       return\r
+\r
+elseif mg.request_info.request_method == "PUT" then\r
+       local f = io.open(filename, "w")\r
+       if (not f) then\r
+               mg.write("HTTP/1.0 500 Internal Server Error\r\n")\r
+               mg.write("Connection: close\r\n")\r
+               mg.write("Date: " .. os.date("%a, %d %b %Y %H:%M:%S GMT") .. "\r\n")\r
+               mg.write("\r\n")\r
+               return\r
+       end\r
+\r
+       mg.write("HTTP/1.0 201 Created\r\n")\r
+       mg.write("Connection: close\r\n")\r
+       mg.write("Date: " .. os.date("%a, %d %b %Y %H:%M:%S GMT") .. "\r\n")\r
+       mg.write("\r\n")\r
+       repeat\r
+               local buf = mg.read();\r
+               if (buf) then\r
+                       f:write(buf)\r
+               end\r
+       until (not buf);\r
+       f:close()\r
+\r
+       mg.write("HTTP/1.0 201 Created\r\n")\r
+       mg.write("Connection: close\r\n")\r
+       mg.write("Date: " .. os.date("%a, %d %b %Y %H:%M:%S GMT") .. "\r\n")\r
+       mg.write("\r\n")\r
+       return\r
+\r
+elseif mg.request_info.request_method == "DELETE" then\r
+       if not attr then\r
+               send_not_found()\r
+               mg.write("\r\n")\r
+               mg.write("File " .. sub_uri .. " not available")\r
+               return\r
+       end\r
+       os.remove(filename)\r
+       mg.write("HTTP/1.0 204 No Content\r\n")\r
+       mg.write("Connection: close\r\n")\r
+       mg.write("Date: " .. os.date("%a, %d %b %Y %H:%M:%S GMT") .. "\r\n")\r
+       mg.write("\r\n")\r
+       return\r
+\r
+elseif mg.request_info.request_method == "OPTIONS" then\r
+       send_ok()\r
+       mg.write("Allow: GET, HEAD, PUT, DELETE, OPTIONS\r\n")\r
+       mg.write("\r\n")\r
+       return\r
+\r
+else\r
+       mg.write("HTTP/1.0 405 Method Not Allowed\r\n")\r
+       mg.write("Connection: close\r\n")\r
+       mg.write("Date: " .. os.date("%a, %d %b %Y %H:%M:%S GMT") .. "\r\n")\r
+       mg.write("\r\n")\r
+       return\r
+end\r