💾 Archived View for gemini.conman.org › extensions › GLV-1 › handlers › qotd.lua captured on 2021-12-17 at 13:26:06.

View Raw

More Information

⬅️ Previous capture (2021-12-03)

-=-=-=-=-=-=-

-- ************************************************************************
--
--    QOTD module
--    Copyright 2019 by Sean Conner.  All Rights Reserved.
--
--    This program is free software: you can redistribute it and/or modify
--    it under the terms of the GNU General Public License as published by
--    the Free Software Foundation, either version 3 of the License, or
--    (at your option) any later version.
--
--    This program is distributed in the hope that it will be useful,
--    but WITHOUT ANY WARRANTY; without even the implied warranty of
--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--    GNU General Public License for more details.
--
--    You should have received a copy of the GNU General Public License
--    along with this program.  If not, see <http://www.gnu.org/licenses/>.
--
--    Comments, questions and criticisms can be sent to: sean@conman.org
--
-- ************************************************************************
-- luacheck: globals init handler
-- luacheck: ignore 611

local net    = require "org.conman.net"
local tcp    = require "org.conman.nfl.tcp"

_ENV = {}

-- ************************************************************************

function init(conf)
  if not conf.host then
    conf.host = "127.0.0.1"
  end
  
  if not conf.port then
    conf.port = 'qotd'
  end
  
  conf.addr = net.address2(conf.host,'any','tcp',conf.port)[1]
  return true
end

-- ************************************************************************

function handler(conf,_,_,_,out)
  local ios = tcp.connecta(conf.addr,1)
  if ios then
    out:write("20 text/plain\r\n")
    for line in ios:lines() do
      out:write(line,"\n")
    end
    ios:close()
    return 20
  else
    out:write("40\r\n")
    return 40
  end
end

-- ************************************************************************

return _ENV