mirror of
https://github.com/lammertb/libhttp.git
synced 2025-08-16 11:21:57 +03:00
57 lines
1.3 KiB
Lua
57 lines
1.3 KiB
Lua
-- Open database
|
|
local db = sqlite3.open('requests.db')
|
|
|
|
if db then
|
|
db:busy_timeout(200);
|
|
-- Create a table if it is not created already
|
|
db:exec([[
|
|
CREATE TABLE IF NOT EXISTS requests (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
timestamp NOT NULL,
|
|
method NOT NULL,
|
|
uri NOT NULL,
|
|
addr
|
|
);
|
|
]])
|
|
end
|
|
|
|
|
|
|
|
local function logDB(method)
|
|
-- Add entry about this request
|
|
local r;
|
|
--repeat
|
|
r = db:exec([[INSERT INTO requests VALUES(NULL, datetime("now"), "]] .. method .. [[", "]] .. mg.request_info.uri .. [[", "]] .. mg.request_info.remote_port .. [[");]]);
|
|
--until r~=5;
|
|
|
|
---[[
|
|
-- alternative logging (to a file)
|
|
local f = io.open("R:\\log.txt", "a");
|
|
f:write(os.date() .. " - " .. method .. " - " .. mg.request_info.uri .. " - " .. mg.request_info.remote_port .. " <" .. r .. ">\n")
|
|
f:close()
|
|
--]]
|
|
end
|
|
|
|
|
|
-- Callback for "Websocket ready"
|
|
function ready()
|
|
logDB("WEBSOCKET READY")
|
|
end
|
|
|
|
-- Callback for "Websocket received data"
|
|
function data(bits, content)
|
|
logDB(string.format("WEBSOCKET DATA (%x)", bits))
|
|
return true;
|
|
end
|
|
|
|
-- Callback for "Websocket is closing"
|
|
function close()
|
|
logDB("WEBSOCKET CLOSE")
|
|
-- Close database
|
|
db:close()
|
|
end
|
|
|
|
|
|
logDB("WEBSOCKET PREPARE")
|
|
return true; -- could return false to reject the connection before the websocket handshake
|