X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FHTTPD.pm;h=e531ee707e6d0a81cd85dd8eee6e31f399105c3f;hb=c38111d6f3877cf31d28b0a0339d063df0fa58f6;hp=bcdbb9f9aa2b360cc6c4640b726e48b8f46d73e3;hpb=a55a38db0276a8ce1a09392573af6e1305cbaba9;p=public-inbox.git diff --git a/lib/PublicInbox/HTTPD.pm b/lib/PublicInbox/HTTPD.pm index bcdbb9f9..e531ee70 100644 --- a/lib/PublicInbox/HTTPD.pm +++ b/lib/PublicInbox/HTTPD.pm @@ -16,7 +16,7 @@ sub pi_httpd_async { PublicInbox::HTTPD::Async->new(@_) } # we have a different env for ever listener socket for # SERVER_NAME, SERVER_PORT and psgi.url_scheme # envs: listener FD => PSGI env -sub new { bless { envs => {} }, __PACKAGE__ } +sub new { bless { envs => {}, err => \*STDERR }, __PACKAGE__ } # this becomes {srv_env} in PublicInbox::HTTP sub env_for ($$$) { @@ -28,7 +28,7 @@ sub env_for ($$$) { SERVER_PORT => $port, SCRIPT_NAME => '', 'psgi.version' => [ 1, 1 ], - 'psgi.errors' => \*STDERR, + 'psgi.errors' => $self->{err}, 'psgi.url_scheme' => $client->can('accept_SSL') ? 'https' : 'http', 'psgi.nonblocking' => Plack::Util::TRUE, @@ -53,8 +53,9 @@ sub env_for ($$$) { sub refresh_groups { my ($self) = @_; my $app; - if (@main::ARGV) { - eval { $app = Plack::Util::load_psgi(@ARGV) }; + $self->{psgi} //= $main::ARGV[0] if @main::ARGV; + if ($self->{psgi}) { + eval { $app = Plack::Util::load_psgi($self->{psgi}) }; die $@, <