Add Makefile.PL and allow banned IP's to be derived from a file (#21)

* added perl makefile

* fixup gitignore and eval
master
Rawley 2023-03-13 13:18:46 +00:00 committed by GitHub
parent 9af44501cc
commit deb4318cd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 6 deletions

11
.gitignore vendored
View File

@ -4,3 +4,14 @@ obj/
.clangd
.depend
http/f/*
blib/
pm_to_blib
Makefile
Makefile.old
MANIFEST*
!MANIFEST.SKIP
META.*/
MYMETA.*
pm_to_blib
sakisafe.log
f/

17
http/Makefile.PL Normal file
View File

@ -0,0 +1,17 @@
use v5.36;
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'sakisafe',
PREREQ_PM => {
"Mojolicious" => 0,
"List::MoreUtils" => 0,
"Term::ANSIColor" => 0,
"MIME::Types" => 0,
"Path::Tiny" => 0,
"Mojolicious::Plugin::RenderFile" => 0,
"Mojolicious::Routes::Pattern" => 0
},
EXE_FILES => ['sakisafe.pl']
);

View File

@ -9,21 +9,20 @@ use Carp;
use Term::ANSIColor;
use English;
use MIME::Types;
use Path::Tiny;
use warnings;
use experimental 'signatures';
use feature 'say';
plugin 'RenderFile';
# OpenBSD promises.
my $openbsd = 0;
$openbsd = 1 if $^O eq "openbsd";
pledge("stdio cpath rpath wpath inet flock fattr") if $openbsd;
pledge("stdio cpath rpath wpath inet flock fattr") if $^O eq "openbsd";
# 100 MBs
my $MAX_SIZE = 1024 * 1024 * 100;
my @BANNED = qw(); # Add banned IP addresses here
my @BANNED = eval { path('banned.txt')->slurp_utf8 } or qw(); # Add banned IP addresses here
my $dirname;
my $link;
@ -46,6 +45,7 @@ sub handle_file {
status => 400
);
}
if ( List::MoreUtils::any { /$c->tx->remote_address/ } uniq @BANNED ) {
$c->render(
text =>
@ -119,8 +119,8 @@ get '/f/:dir/#name' => sub ($c) {
content_disposition => 'inline'
);
}
;
};
app->max_request_size( 1024 * 1024 * 100 );
post '/upload' => sub ($c) { handle_file($c) };