Compare commits

..

No commits in common. "6b058c1efae2babda4ffa12705df05b4db856e0a" and "022699f899cd0f2004123d35245f9e60455f653d" have entirely different histories.

3 changed files with 5 additions and 23 deletions

View File

@ -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

View File

@ -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"))

View File

@ -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