From: Eric Wong Date: Sat, 12 Mar 2016 03:55:20 +0000 (+0000) Subject: http: use Plack::HTTPParser for HTTP parsing X-Git-Tag: v1.0.0~633 X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=commitdiff_plain;h=7dd78012da81d48e5e73e56c3255895dfa9de1f5 http: use Plack::HTTPParser for HTTP parsing This allows us to reduce installation dependencies while retaining performance as it favors HTTP::Parser::XS when it is installed and available. PLACK_HTTP_PARSER_PP may be set to 1 to force a pure Perl parser for testing. --- diff --git a/lib/PublicInbox/HTTP.pm b/lib/PublicInbox/HTTP.pm index 28883114..a5c56e25 100644 --- a/lib/PublicInbox/HTTP.pm +++ b/lib/PublicInbox/HTTP.pm @@ -13,7 +13,7 @@ use warnings; use base qw(Danga::Socket); use fields qw(httpd env rbuf input_left remote_addr remote_port); use Fcntl qw(:seek); -use HTTP::Parser::XS qw(parse_http_request); # supports pure Perl fallback +use Plack::HTTPParser qw(parse_http_request); # XS or pure Perl use HTTP::Status qw(status_message); use HTTP::Date qw(time2str); use IO::File; diff --git a/t/httpd-corner.t b/t/httpd-corner.t index 59f37aa9..b64f334a 100644 --- a/t/httpd-corner.t +++ b/t/httpd-corner.t @@ -7,7 +7,7 @@ use warnings; use Test::More; foreach my $mod (qw(Plack::Util Plack::Request Plack::Builder Danga::Socket - HTTP::Parser::XS HTTP::Date HTTP::Status)) { + HTTP::Date HTTP::Status)) { eval "require $mod"; plan skip_all => "$mod missing for httpd-corner.t" if $@; } diff --git a/t/httpd-unix.t b/t/httpd-unix.t index 13df676b..00adf13c 100644 --- a/t/httpd-unix.t +++ b/t/httpd-unix.t @@ -6,7 +6,7 @@ use warnings; use Test::More; foreach my $mod (qw(Plack::Util Plack::Request Plack::Builder Danga::Socket - HTTP::Parser::XS HTTP::Date HTTP::Status)) { + HTTP::Date HTTP::Status)) { eval "require $mod"; plan skip_all => "$mod missing for httpd-unix.t" if $@; } diff --git a/t/httpd.t b/t/httpd.t index 25b4f418..28f507db 100644 --- a/t/httpd.t +++ b/t/httpd.t @@ -5,7 +5,7 @@ use warnings; use Test::More; foreach my $mod (qw(Plack::Util Plack::Request Plack::Builder Danga::Socket - HTTP::Parser::XS HTTP::Date HTTP::Status)) { + HTTP::Date HTTP::Status)) { eval "require $mod"; plan skip_all => "$mod missing for httpd.t" if $@; }