initial commit
Signed-off-by: Christine Dodrill <me@christine.website>
This commit is contained in:
commit
cd8a9a1168
|
@ -0,0 +1,4 @@
|
||||||
|
/luarocks
|
||||||
|
/lua
|
||||||
|
/lua_modules
|
||||||
|
/.luarocks
|
|
@ -0,0 +1,55 @@
|
||||||
|
cqueues = require "cqueues"
|
||||||
|
socket = require "cqueues.socket"
|
||||||
|
ln = require "ln"
|
||||||
|
url = require "net.url"
|
||||||
|
|
||||||
|
srv = socket.listen "127.0.0.1", "58816"
|
||||||
|
|
||||||
|
cq = cqueues.new!
|
||||||
|
|
||||||
|
class ProxyRequestRefusedHandler
|
||||||
|
run: (ctx, conn) =>
|
||||||
|
conn\write "53 Proxy request refused \r\n"
|
||||||
|
ln.log ctx, {status: 53}
|
||||||
|
|
||||||
|
class Server
|
||||||
|
new: (cq, hdlr) =>
|
||||||
|
@cq = cq
|
||||||
|
@hdlr = hdlr
|
||||||
|
|
||||||
|
listen: (srv) =>
|
||||||
|
@cq\wrap ->
|
||||||
|
for conn in srv\clients!
|
||||||
|
@cq\wrap ->
|
||||||
|
with conn
|
||||||
|
_, ip = \peername!
|
||||||
|
request = \read "*l"
|
||||||
|
u = url.parse request
|
||||||
|
ctx =
|
||||||
|
:ip
|
||||||
|
host: u.host
|
||||||
|
path: u.path
|
||||||
|
query: u.query
|
||||||
|
@hdlr\run ctx, conn
|
||||||
|
\close!
|
||||||
|
|
||||||
|
-- cq\wrap ->
|
||||||
|
-- for conn in srv\clients!
|
||||||
|
-- cq\wrap ->
|
||||||
|
-- with conn
|
||||||
|
-- _, ip = \peername!
|
||||||
|
-- request = \read "*l"
|
||||||
|
-- u = url.parse request
|
||||||
|
-- ctx =
|
||||||
|
-- :ip
|
||||||
|
-- host: u.host
|
||||||
|
-- path: u.path
|
||||||
|
-- query: u.query
|
||||||
|
-- ln.log ctx
|
||||||
|
-- \write "53 Proxy request refused\r\n"
|
||||||
|
-- \close!
|
||||||
|
|
||||||
|
with Server cq, ProxyRequestRefusedHandler!
|
||||||
|
\listen srv
|
||||||
|
|
||||||
|
assert cq\loop!
|
|
@ -0,0 +1,60 @@
|
||||||
|
{ pkgs ? import <nixpkgs> { }, fetchurl ? pkgs.fetchurl }:
|
||||||
|
|
||||||
|
with pkgs.lua5_3.pkgs;
|
||||||
|
|
||||||
|
let
|
||||||
|
router = buildLuarocksPackage {
|
||||||
|
pname = "router";
|
||||||
|
version = "2.1-0";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://luarocks.org/router-2.1-0.src.rock";
|
||||||
|
sha256 = "15v2ks5wwv6y7122a1p0r9mh6kfymvh756pb4ax13cy0d0vf362m";
|
||||||
|
};
|
||||||
|
disabled = (luaOlder "5.1");
|
||||||
|
propagatedBuildInputs = [ lua ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/APItools/router.lua";
|
||||||
|
description =
|
||||||
|
"A barebones router for Lua. It matches urls and executes lua functions";
|
||||||
|
license.fullName = "MIT";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
net-url = buildLuarocksPackage {
|
||||||
|
pname = "net-url";
|
||||||
|
version = "0.9-1";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://luarocks.org/net-url-0.9-1.src.rock";
|
||||||
|
sha256 = "12qrb8x95qicq6fp5jfiq6v9h8flngk92bb5vnzph3avpllij3zx";
|
||||||
|
};
|
||||||
|
disabled = (luaOlder "5.1");
|
||||||
|
propagatedBuildInputs = [ lua ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/golgote/neturl";
|
||||||
|
description = "URL and Query string parser, builder, normalizer for Lua.";
|
||||||
|
license.fullName = "MIT/X11";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ln = buildLuarocksPackage {
|
||||||
|
pname = "ln";
|
||||||
|
version = "0.2.1-2";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://luarocks.org/ln-0.2.1-2.src.rock";
|
||||||
|
sha256 = "1hb1vw68w407y05nprp352c0di6iybz4gjdhc0p521cpif4l8i1l";
|
||||||
|
};
|
||||||
|
propagatedBuildInputs = [ lua dkjson ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://tulpa.dev/cadey/lua-ln";
|
||||||
|
description = "The natural log function";
|
||||||
|
license.fullName = "0bsd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in lua.withPackages (ps: with ps; [ cqueues luaossl router net-url ln ])
|
|
@ -0,0 +1,13 @@
|
||||||
|
{ pkgs ? import <nixpkgs> { } }:
|
||||||
|
|
||||||
|
let lua = pkgs.callPackage ./nix/lua.nix { };
|
||||||
|
|
||||||
|
in pkgs.mkShell {
|
||||||
|
buildInputs = with pkgs;
|
||||||
|
with lua53Packages; [
|
||||||
|
luarocks-nix
|
||||||
|
lua
|
||||||
|
busted
|
||||||
|
moonscript
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
*
|
||||||
|
!.gitignore
|
Loading…
Reference in New Issue