From b876d94eaa7dad0ecc5175a3d1b17a6710cd9cd3 Mon Sep 17 00:00:00 2001 From: rf Date: Wed, 26 Apr 2023 08:54:42 -0600 Subject: [PATCH] Change tab size --- http/.perltidyrc | 2 +- http/sakisafe.pl | 140 +++++++++++++++++++++++------------------------ 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/http/.perltidyrc b/http/.perltidyrc index f78423a..ffd9173 100644 --- a/http/.perltidyrc +++ b/http/.perltidyrc @@ -3,7 +3,7 @@ -iob # Ignore old breakpoints -l=120 # 120 characters per line -mbl=2 # No more than 2 blank lines --i=2 # Indentation is 2 columns +-i=5 # Indentation is 2 columns -ci=2 # Continuation indentation is 2 columns -vt=0 # Less vertical tightness -pt=2 # High parenthesis tightness diff --git a/http/sakisafe.pl b/http/sakisafe.pl index c901cff..1d0d98c 100755 --- a/http/sakisafe.pl +++ b/http/sakisafe.pl @@ -35,71 +35,71 @@ # Forward logs to STDERR or STDOUT while also writing to the `sakisafe.log` file. $log->on( - message => sub ($l, $level, @lines) { - my $time = time; - my ($s, $m, $h, $day, $month, $year) = localtime time; - $time = sprintf( - '%04d-%02d-%02d %02d:%02d:%08.5f', - $year + 1900, - $month + 1, $day, $h, $m, "$s." . ((split '.', $time)[1] // 0) - ); - my $log_to_print = '[' . $time . '] ' . '[' . $level . '] ' . join(' ', @lines); - if ($level eq 'trace' || $level eq 'info') { - say $log_to_print; - } - else { - print \*STDERR, $log_to_print . "\n"; - } - } + message => sub ($l, $level, @lines) { + my $time = time; + my ($s, $m, $h, $day, $month, $year) = localtime time; + $time = sprintf( + '%04d-%02d-%02d %02d:%02d:%08.5f', + $year + 1900, + $month + 1, $day, $h, $m, "$s." . ((split '.', $time)[1] // 0) + ); + my $log_to_print = '[' . $time . '] ' . '[' . $level . '] ' . join(' ', @lines); + if ($level eq 'trace' || $level eq 'info') { + say $log_to_print; + } + else { + print \*STDERR, $log_to_print . "\n"; + } + } ); # Function to handle file uploads sub handle_file { - my $c = shift; - my $filedata = $c->param("file"); - if ($filedata->size > $MAX_SIZE) { - return $c->render(text => "Max upload size: $MAX_SIZE", status => 400); - } - - if (List::MoreUtils::any { $c->tx->remote_address } uniq @BANNED) { - $log->info("Attempt to upload by banned IP: " . $c->tx->remote_address); - $c->render( - text => "Hi! Seems like the server admin added your IP address to the banned IP array." - . "As the developer of sakisafe, I can't do anything.", - status => 403 - ); - return; - } - - # Generate random string for the directory - my @chars = ('0' .. '9', 'a' .. 'Z'); - $dirname .= $chars[rand @chars] for 1 .. 5; - my $filename = $filedata->filename; - $log->warn("sakisafe warning: could not create directory: $ERRNO") unless mkdir("f/" . $dirname); - $filename .= ".txt" if $filename eq "-"; - - # TODO: get whether the server is http or https - # There's a CGI ENV variable for that. - my $host = $c->req->url->to_abs->host; - my $ua = $c->req->headers->user_agent; - $filedata->move_to("f/" . $dirname . "/" . $filename); - $link = "http://$host/f/$dirname/$filename"; - $c->stash(link => $link, host => $host, dirname => $dirname); - - $c->res->headers->header('Location' => "$link" . $filename); - - # Only give the link to curl, html template for others. - if ($ua =~ m/curl/) { - $c->render(text => $link . "\n", status => 201,); - - $dirname = ""; - } - else { - $c->render(template => 'file', status => 201,); - } - - $log->info($c->tx->remote_address . " " . $dirname . "/" . $filename); - $dirname = ""; + my $c = shift; + my $filedata = $c->param("file"); + if ($filedata->size > $MAX_SIZE) { + return $c->render(text => "Max upload size: $MAX_SIZE", status => 400); + } + + if (List::MoreUtils::any { $c->tx->remote_address } uniq @BANNED) { + $log->info("Attempt to upload by banned IP: " . $c->tx->remote_address); + $c->render( + text => "Hi! Seems like the server admin added your IP address to the banned IP array." + . "As the developer of sakisafe, I can't do anything.", + status => 403 + ); + return; + } + + # Generate random string for the directory + my @chars = ('0' .. '9', 'a' .. 'Z'); + $dirname .= $chars[rand @chars] for 1 .. 5; + my $filename = $filedata->filename; + $log->warn("sakisafe warning: could not create directory: $ERRNO") unless mkdir("f/" . $dirname); + $filename .= ".txt" if $filename eq "-"; + + # TODO: get whether the server is http or https + # There's a CGI ENV variable for that. + my $host = $c->req->url->to_abs->host; + my $ua = $c->req->headers->user_agent; + $filedata->move_to("f/" . $dirname . "/" . $filename); + $link = "http://$host/f/$dirname/$filename"; + $c->stash(link => $link, host => $host, dirname => $dirname); + + $c->res->headers->header('Location' => "$link" . $filename); + + # Only give the link to curl, html template for others. + if ($ua =~ m/curl/) { + $c->render(text => $link . "\n", status => 201,); + + $dirname = ""; + } + else { + $c->render(template => 'file', status => 201,); + } + + $log->info($c->tx->remote_address . " " . $dirname . "/" . $filename); + $dirname = ""; } # Function to log uploaded files @@ -110,15 +110,15 @@ sub handle_file { # Allow files to be downloaded. get '/f/:dir/#name' => sub ($c) { - my $dir = $c->param("dir"); - my $file = $c->param("name"); - my $ext = $file; - $ext =~ s/.*\.//; - my $path = "f/" . $dir . "/" . $file; - - #carp "sakisafe warning: could not get file: $ERRNO" unless - $c->render(text => "file not found", status => 404) unless -e $path; - $c->render_file(filepath => $path, format => $ext, content_disposition => 'inline'); + my $dir = $c->param("dir"); + my $file = $c->param("name"); + my $ext = $file; + $ext =~ s/.*\.//; + my $path = "f/" . $dir . "/" . $file; + + #carp "sakisafe warning: could not get file: $ERRNO" unless + $c->render(text => "file not found", status => 404) unless -e $path; + $c->render_file(filepath => $path, format => $ext, content_disposition => 'inline'); }; app->log($log);