Compare commits
No commits in common. "6b058c1efae2babda4ffa12705df05b4db856e0a" and "022699f899cd0f2004123d35245f9e60455f653d" have entirely different histories.
6b058c1efa
...
022699f899
@ -6,6 +6,5 @@ config.port = 70 -- the external port of the server
|
|||||||
config.bindport = 7000 -- the port to actually bind to
|
config.bindport = 7000 -- the port to actually bind to
|
||||||
config.dirinfo = true -- whether to output some extra info in automatic directory indexes
|
config.dirinfo = true -- whether to output some extra info in automatic directory indexes
|
||||||
config.timer = 0.1 -- main loop timer
|
config.timer = 0.1 -- main loop timer
|
||||||
config.cgi = true -- whether to enable server-side scripts
|
|
||||||
|
|
||||||
return config
|
return config
|
||||||
|
13
gopherd.lua
13
gopherd.lua
@ -8,14 +8,12 @@ local threads = {}
|
|||||||
|
|
||||||
-- initial configuration
|
-- initial configuration
|
||||||
local config = {}
|
local config = {}
|
||||||
config.path = "/var/www/gopher"
|
config.path = "/var/gopher"
|
||||||
config.hostname = "shadowkat.net"
|
config.hostname = "shadowkat.net"
|
||||||
config.port = 70
|
config.port = 70
|
||||||
config.bindport = 7000
|
config.bindport = 7000
|
||||||
config.dirinfo = true
|
config.dirinfo = true
|
||||||
config.timer = 0.1
|
config.timer = 0.1
|
||||||
config.cgi = true
|
|
||||||
--config.cgipattern = ".*" -- todo
|
|
||||||
|
|
||||||
-- load the config as a lua script
|
-- load the config as a lua script
|
||||||
if tArgs[1] then
|
if tArgs[1] then
|
||||||
@ -56,10 +54,9 @@ local function detectft(path) -- tries to detect the file type
|
|||||||
end
|
end
|
||||||
if path:sub(-4) == ".png" or path:sub(-4) == ".jpg" or path:sub(-5) == ".jpeg" or path:sub(-4) == ".bmp" or path:sub(-4) == "gif" then
|
if path:sub(-4) == ".png" or path:sub(-4) == ".jpg" or path:sub(-5) == ".jpeg" or path:sub(-4) == ".bmp" or path:sub(-4) == "gif" then
|
||||||
return "I"
|
return "I"
|
||||||
elseif path:sub(-5) == ".html" or path:sub(-4) == ".htm" then
|
end
|
||||||
|
if path:sub(-5) == ".html" or path:sub(-4) == ".htm" then
|
||||||
return "h"
|
return "h"
|
||||||
elseif path:sub(-10) == ".gopherdir" then
|
|
||||||
return "1"
|
|
||||||
end
|
end
|
||||||
return "0"
|
return "0"
|
||||||
end
|
end
|
||||||
@ -76,7 +73,7 @@ local function handleConnect(client)
|
|||||||
local attr = fs.attributes(path)
|
local attr = fs.attributes(path)
|
||||||
if attr then
|
if attr then
|
||||||
if attr.mode:sub(1,3) == "dir" then
|
if attr.mode:sub(1,3) == "dir" then
|
||||||
if lfs.attributes(path.."/.gopherdir.cgi") and config.cgi then
|
if lfs.attributes(path.."/.gopherdir.cgi") then
|
||||||
local f = io.popen(path.."/.gopherdir.cgi")
|
local f = io.popen(path.."/.gopherdir.cgi")
|
||||||
coroutine.yield()
|
coroutine.yield()
|
||||||
client:send(f:read("*a"))
|
client:send(f:read("*a"))
|
||||||
@ -96,7 +93,7 @@ local function handleConnect(client)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if path:sub(-4) == ".cgi" and config.cgi then
|
if path:sub(-4) == ".cgi" then
|
||||||
local f = io.popen(path)
|
local f = io.popen(path)
|
||||||
coroutine.yield()
|
coroutine.yield()
|
||||||
client:send(f:read("*a"))
|
client:send(f:read("*a"))
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Tiny gopher daemon
|
|
||||||
After=network.target
|
|
||||||
StartLimitIntervalSec=0
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
Restart=always
|
|
||||||
RestartSec=1
|
|
||||||
User=www-data
|
|
||||||
ExecStart=/usr/bin/env lua /var/www//gopherd.lua /etc/tiny-gopherd.cfg
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
Loading…
Reference in New Issue
Block a user