]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox-httpd
public-inbox-netd: a multi-protocol superserver
[public-inbox.git] / script / public-inbox-httpd
index a4dd809916c5116db301ec30c65f0919a48517ec..caceae203b894015848d4c48e57b8ff5a5928be3 100755 (executable)
@@ -1,51 +1,8 @@
-#!/usr/bin/perl -w
-# Copyright (C) 2016-2021 all contributors <meta@public-inbox.org>
+#!perl -w
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 #
 # Standalone HTTP server for public-inbox.
-use strict;
-use v5.10.1;
+use v5.12;
 use PublicInbox::Daemon;
-BEGIN {
-       for (qw(Plack::Builder Plack::Util)) {
-               eval("require $_") or die "E: Plack is required for $0\n";
-       }
-       Plack::Builder->import;
-       require PublicInbox::HTTP;
-       require PublicInbox::HTTPD;
-}
-
-my %httpds; # per-listen-FD mapping for HTTPD->{env}->{SERVER_<NAME|PORT>}
-my $app;
-my $refresh = sub {
-       if (@ARGV) {
-               eval { $app = Plack::Util::load_psgi(@ARGV) };
-               if ($@) {
-                       die $@,
-"$0 runs in /, command-line paths must be absolute\n";
-               }
-       } else {
-               require PublicInbox::WWW;
-               my $www = PublicInbox::WWW->new;
-               $www->preload;
-               $app = builder {
-                       eval { enable 'ReverseProxy' };
-                       $@ and warn
-"Plack::Middleware::ReverseProxy missing,\n",
-"URL generation for redirects may be wrong if behind a reverse proxy\n";
-
-                       enable 'Head';
-                       sub { $www->call(@_) };
-               };
-       }
-       %httpds = (); # invalidate cache
-};
-
-PublicInbox::Daemon::run('0.0.0.0:8080', $refresh,
-       sub ($$$) { # Listener->{post_accept}
-               my ($client, $addr, $srv, $tls_wrap) = @_;
-               my $fd = fileno($srv);
-               my $h = $httpds{$fd} //=
-                       PublicInbox::HTTPD->new($srv, $app, $client);
-               PublicInbox::HTTP->new($client, $addr, $h),
-       });
+PublicInbox::Daemon::run('http://0.0.0.0:8080');