summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Quantum/Plugin
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2018-05-21 20:14:53 +0200
committerDylan William Hardison <dylan@hardison.net>2018-06-28 22:41:56 +0200
commit3d8dc32afa0131e2ac0cd121b492aed8ad59fc11 (patch)
tree2d3489acbaa726ff7daaee0758c2bbd50c8fe13a /Bugzilla/Quantum/Plugin
parent15661bf793105352c3cf0d84d6c7e790be838a78 (diff)
downloadbugzilla-3d8dc32afa0131e2ac0cd121b492aed8ad59fc11.tar.gz
bugzilla-3d8dc32afa0131e2ac0cd121b492aed8ad59fc11.tar.xz
working more
Diffstat (limited to 'Bugzilla/Quantum/Plugin')
-rw-r--r--Bugzilla/Quantum/Plugin/Glue.pm93
1 files changed, 0 insertions, 93 deletions
diff --git a/Bugzilla/Quantum/Plugin/Glue.pm b/Bugzilla/Quantum/Plugin/Glue.pm
index 17dc443c6..822987ad8 100644
--- a/Bugzilla/Quantum/Plugin/Glue.pm
+++ b/Bugzilla/Quantum/Plugin/Glue.pm
@@ -11,9 +11,6 @@ use Mojo::Base 'Mojolicious::Plugin';
use Try::Tiny;
use Bugzilla::Constants;
use Bugzilla::Quantum::Template;
-use Socket qw(AF_INET inet_aton);
-use Sys::Hostname;
-use IO::String;
sub register {
my ( $self, $app, $conf ) = @_;
@@ -44,99 +41,9 @@ sub register {
or die $template->error;
}
);
-
- $app->hook(
- around_dispatch => sub {
- my ($next, $c) = @_;
- local %ENV = _ENV($c);
- my $stdin = _STDIN($c);
- my $stdout = '';
- try {
- local $CGI::Compile::USE_REAL_EXIT = 0;
- local *STDIN; ## no critic (local)
- local *STDOUT;
- open STDIN, '<', $stdin->path or die "STDIN @{[$stdin->path]}: $!" if -s $stdin->path;
- open STDOUT, '>', \$stdout or die "STDOUT capture: $!";
-
- Bugzilla::init_page();
- Bugzilla->request_cache->{mojo_controller} = $c;
- Bugzilla->template( Bugzilla::Quantum::Template->new( controller => $c, template => $template ) );
- $next->();
- }
- catch {
- die $_ unless ref $_ eq 'ARRAY' && $_->[0] eq "EXIT\n" || /\bModPerl::Util::exit\b/;
- }
- finally {
- if (length $stdout) {
- warn "setting body\n";
- $c->res->body($stdout);
- $c->rendered;
- }
- Bugzilla::_cleanup; ## no critic (private)
- CGI::initialize_globals();
- };
- }
- );
-}
-
-sub _ENV {
- my ($c) = @_;
- my $tx = $c->tx;
- my $req = $tx->req;
- my $headers = $req->headers;
- my $content_length = $req->content->is_multipart ? $req->body_size : $headers->content_length;
- my %env_headers = ( HTTP_COOKIE => '', HTTP_REFERER => '' );
-
- for my $name ( @{ $headers->names } ) {
- my $key = uc "http_$name";
- $key =~ s!\W!_!g;
- $env_headers{$key} = $headers->header($name);
- }
-
- my $remote_user;
- if ( my $userinfo = $c->req->url->to_abs->userinfo ) {
- $remote_user = $userinfo =~ /([^:]+)/ ? $1 : '';
- }
- elsif ( my $authenticate = $headers->authorization ) {
- $remote_user = $authenticate =~ /Basic\s+(.*)/ ? b64_decode $1 : '';
- $remote_user = $remote_user =~ /([^:]+)/ ? $1 : '';
- }
-
- return (
- CONTENT_LENGTH => $content_length || 0,
- CONTENT_TYPE => $headers->content_type || '',
- GATEWAY_INTERFACE => 'CGI/1.1',
- HTTPS => $req->is_secure ? 'YES' : 'NO',
- %env_headers,
- QUERY_STRING => $c->stash('cgi.query_string') || $req->url->query->to_string,
- REMOTE_ADDR => $tx->remote_address,
- REMOTE_HOST => gethostbyaddr( inet_aton( $tx->remote_address || '127.0.0.1' ), AF_INET ) || '',
- REMOTE_PORT => $tx->remote_port,
- REMOTE_USER => $remote_user || '',
- REQUEST_METHOD => $req->method,
- SCRIPT_NAME => $req->env->{SCRIPT_NAME},
- SERVER_NAME => hostname,
- SERVER_PORT => $tx->local_port,
- SERVER_PROTOCOL => $req->is_secure ? 'HTTPS' : 'HTTP', # TODO: Version is missing
- SERVER_SOFTWARE => __PACKAGE__,
- );
}
-sub _STDIN {
- my $c = shift;
- my $stdin;
-
- if ( $c->req->content->is_multipart ) {
- $stdin = Mojo::Asset::File->new;
- $stdin->add_chunk( $c->req->build_body );
- }
- else {
- $stdin = $c->req->content->asset;
- }
- return $stdin if $stdin->isa('Mojo::Asset::File');
- return Mojo::Asset::File->new->add_chunk( $stdin->slurp );
-}
1; \ No newline at end of file